IT

【AWS】EC2サービスとは【初心者向け】

こんにちは!ウマロです。

今回は、現在世界で最も利用されているクラウドサービス、

AWS(Amazon Web Services)で提供されている「EC2」サービスについて、

初心者の方向けに以下の8つのキーワードをもとに解説したいと思います。

キーワード
  • 「EC2」サービス
  • 「インスタンスタイプ」
  • 「AMI(Amazon Machine Image)」
  • 「EBS(Elastic Block Stone)」
  • 「スナップショット」
  • 「キーペア」
  • 「セキュリティーグループ」
  • 「EIP(Elastic IP Address)」

全てを解説しようとすると1つの記事で収まりきれないので、これだけ抑えておけばとりあえずOK!的な部分に絞っての解説となります。

AWSを利用する際、今回取り扱うEC2はほとんどの方が利用するサービスとなると思うので、一体EC2で何ができるのか理解してくださいね!

「EC2」サービス

AWSの公式サイトによれば、EC2サービスは以下のように説明されています。

Amazon Elastic Compute Cloud (Amazon EC2) は、安全でサイズ変更可能なコンピューティング性能をクラウド内で提供するウェブサービスです。ウェブスケールのクラウドコンピューティングを開発者が簡単に利用できるよう設計されています。(引用:AWS公式サイト)

(゚ω゚)「んー、結局何ができるのか、よーわからん」

ちょっと、この説明だとわかりずらいですよね。

EC2は一言で言うならば「AWS上に仮想サーバを作るサービス」と定義できます。

もっと平たく言うなら、「EC2サービスを利用することで、いつでもどこでも簡単に専用のサーバーを立てることができると言うことです。

この際「AWS上」とか「仮想サーバー」と言うキーワードは無視しましょう。

EC2サービスの特徴としては、以下のようなものがあります。

  1. 仮想サーバーを必要なとき必要なだけ調達できる。
  2. サーバー代金は使った分だけ支払えばOK(従量課金制)
  3. アプリケーションの負荷に合わせてスペックアップができる高い柔軟性

また、AWSのアカウントを新規に作成した場合、1年間無料で一部サービスを利用できると言う特典があります。

「インスタンスタイプ」

インスタンスタイプとは「サーバーのスペックを定義するもの」です。

EC2には複数のインスタンスタイプが用意されており、その違いにより主に「CPU」「メモリ」「ストレージ」「ネットワーク帯域」の性能が変わります。

インスタンスタイプには、汎用性の高いもの(いわゆる、オールラウンダーなタイプ)や、メモリ機能が最適なものなど種類が豊富にあります。

気になる方は、こちらの公式サイトチェックしてみてください。

「Amazon EC2 インスタンスタイプ」

インスタンスタイプによって利用料金が変わります。

EC2の利用料金は、以下の式で発生します。

「インスタンスタイプごとの時間単価」×「利用時間」=「EC2利用料金」

基本的には、インスタンスタイプのスペックが高くなるにつれてインスタンスの時間単価も高くなります。

幅広いインスタンスタイプから、サービスの規模や負荷など、用途に合わせたものを選択することで、ラーニングコストを抑えることができます。

作成したインスタンスから後述する「AMI」を作成し、インスタンスのバックアップを取ることができます。

ちなみに、1年間の無料枠として「t2.micro」と言うインスタンスタイプがあります。

サーバーサイドプログラミング言語(PHPなど)の学習などで利用する際は、こちらのインスタンスを利用してみるのもありです。



「AMI(Amazon Machine Image)」

AMIには「インスタンスの起動に必要な情報が用意」されています。

その情報には、OSや通常のデータ(ディレクトリやファイル)とブロックデバイスマッピングと言う特殊な情報があります。

ブロックデバイスマッピング

インスタンスに接続するブロックデバイス(後述のEBSなど)と、OSから見えるデバイス名を定義するもの。

インスタンスを起動するときは、このAMI を指定する必要があります。

また、同じ設定で複数のインスタンスを起動させる場合は、1つのAMIから複数のインスタンスを起動できます。

つまり、簡単に同じ設定のインスタンスをコピーできるのです。

「EBS(Elastic Block Stone)」

EC2では2種類のブロックデバイスがストレージとして利用できます。

タイトルにある「EBS(Elastic Block Stone)」「インスタンスストア」の2種類です。

それぞれの比較は下記表のようになります。

ストレージタイプ
永続性
耐久性
パフォーマンス
用途
費用
EBS高い(スナップショット利用時)99.5~99.999%ランダムアクセスに強いOSやDBなどの永続性と耐久性が必要なストレージ有料
インスタンスストア低いEBSより低いシーケンシャルに強い一時ファイル、キャッシュ、スワップなど、失われても問題がないストレージ無料

WEBアプリケーションなどのサービスを提供する場合は、EBSを選択するのが一般的です。

EBSは「ボリューム」と言う単位で表現されるため、EBSボリュームとも呼ばれます。

EBSボリュームタイプを作成するにはEBSボリュームタイプと容量を指定します。

EBSボリュームタイプによってパフォーマンスが異なるため、システムの役割や用途から必要なものを選択することが重要です。

「スナップショット」

スナップショットは先ほど説明した「EBSボリュームの情報をコピー(バックアップ)する」ものです。

繰り返してスナップショットを取得すると、差分を保存するようにできているため、1回目のスナップショット作成はやや時間がかかり、それ以降はあまり時間がかからないような特性があります。

スナップショットは「S3」と言うサービスにバックアップされます。

しかし、スナップショットには AMI のようなインスタンスを構成するための管理情報は含まれていません。

先ほどインスタンスを起動するためにはAMIを選択する必要があると説明しました。

AMIからインスタンスを作成することはできますが、スナップショットからは基本的にインスタンスを作成することはできません。

AMIとスナップショットの違いは以下となります。

  • スナップショット = 「EBS ボリュームの中のデータ」を特定のタイミングで取得しS3に保存したもの
  • AMI  = 「EBS ボリュームの中のデータ(スナップショット) とインスタンスを構成する管理情報」を含む起動テンプレート

(こちらの記事から引用させていただきました。)

AWS Solutions Architect ブログ

つまり、「スナップショット」は「AMI」に内包されている訳ですね。



「キーペア」

キーペアは「インスタンスへ接続する際に必要」となります。

Linux/UNIXインスタンスの場合、SSH接続の公開鍵認証に使用します。

Windowsインスタンスの場合は、リモートデスクトップ接続での管理者パスワードを取得する際に使用します。

キーペアを作成する際、クライアント側では秘密鍵がダウンロードされ、公開鍵はAWS側で管理されます。

もし、秘密鍵をなくした場合、そのインスタンスには接続できなくなりますので取り扱いには注意が必要です!

「セキュリティーグループ」

セキュリティーグループは「通信の入出力制御の設定」を行うことができます。

基本的にサーバーへ入ってくる通信のポートは最初全て閉じられています。

そこに、特定のIPだけ通信を可能にする設定、いわばトンネルを開けることでインスタンスへの接続が可能になります。

設定はインスタンス単位で行うことができます。

「EIP(Elastic IP Address)」

インスタンスを起動するとパブリックIPが振られますが、実はEIPを使わないでいると、インスタンス起動ごとに毎回パブリックIPは変わってしまいます。

あなたがEC2を使ってホームページを公開したとします。

それを誰かがお気に入り登録しました。

その後、インスタンスを再起動させた場合、お気に入りリンクが無効になってしまうと言うことが起きてしまいます。

それを解決するためにEIPを利用することで、「インスタンスに固定のグローバルIPアドレスを割り当てる」ことができます。



まとめ

以上、今回はAWSで代表的なサービスである「EC2」についての基本的なキーワードを解説しました。

ですが、今回解説したキーワードは「EC2」の一部なので、実際に「EC2」を触ってみて、他にどのような機能があるか確認してみてください!

  • リザーブドインスタンス
  • ロードバランシグ

上記2つについても理解しておくと、EC2サービスを利用する際の幅が広がります。

それでは、今回はここまで!

ではでは〜♪( ´▽`)