AWS -EC2-

今回はAWSのEC2について書いていこうと思います。
自分で復習みたいな感じで書いているので、わかりやすく写真とか図を使った説明じゃなく、ざっとまとめた感じで書いてます。
まず初めにEC2とは、アマゾンが提供している仮想サーバー構築サービスで、EC2を利用することでOSを乗せた仮想環境をクラウドに素早く作成することができます。

インスタンスとは
AWSのEC2はインスタンスという単位でサーバー環境が構築できます。インスタンスとは簡単に言えばOSを乗せた仮想サーバーのことでインスタンスは複数作成して実行することもできます。

EC2のセッティング手順

1 . 利用するAMIイメージ(OSセッティング)を選択
2 . インスタンスタイプの選択
3 . ストレージを選択
4 . セキュリティグループを選択
5 . SSHキーペアの設定

AMI(アマゾンマシーンイメージ)
AMIイメージは、WindowsやLinuxなどの様々なサーバーのOSのセッティングがイメージされたもので、基本はAWSが提供しているAMIを使用するが、第三者が作成したAMIが売られていたり、自作のAMIを作成することが可能。これはS3に保存されている。
AMIは、AMI選択画面から用途に応じて最適なAMIを選択するようにする。

インスタンスタイプの選択
インスタンスタイプの選択は、CPU、メモリ、ネットワークといった主要なキャパシティを選択するようにする。

◯ EC2の料金形態
EC2は従量制で、利用した時間に応じて1秒単位で料金がかかります。そして料金形態にはいくつか種類がある。

・オンデマンドインスタンス
標準の課金形態です。使った分だけ秒単位で料金がかかる。
・リザーブドインスタンス
年単位の契約で、オンデマンドインスタンスより割安になる。定期的に一定量利用するユーザー向け。
・スポットインスタンス
使われていないインスタンスを落札して利用する。割安ですが、インスタンスのスポット価格が入札価格を超えたら停止するリスクがある。
・Dedicated Host
専用の物理EC2サーバーで、利用料に応じて時間単価の料金がかかる。

ストレージ

EC2で利用するストレージは、インスタンスストアとEBS(Elastic Block Store)の2種類があります。

◯ インスタンスストア
・ホストコンピュータに内蔵されたディスクで、EC2と不可分のブロックレベルの物理ストレージ。
・EC2の一時的なデータが保持され、EC2の停止・終了するとデータがクリアされる。
・料金は無料。

インスタンスストアは、EC2のデフォルトで設定されていて、データがクリアされてしまうので一時的な記憶領域のストレージとして使用していくもの。

◯ EBS(Elastic Block Store)
・ネットワークで接続されたブロックレベルのストレージで、EC2とは独立して管理されている。
・EC2を停止してもEBSは保持可能で、SnapshotをS3に保持可能。
・別途EBS料金が必要。

ストレージを選択する場合には基本的にはEBSを使用する。

EBS(Elastic Block Store)

EBSとは、EC2にアタッチされるブロックレベルのストレージサービスです。

【基本】
◯ OSやアプリケーション、データの置き場などの様々な用途で利用されるもの。(いわゆるハードディスクのようなもので、基本的にサーバーに不可欠のものになります。実態は物理的に繋がっているわけではなく、ネットワーク接続型のストレージ。)
◯ 99.999%の可用性で、サイズは1GB~16TBの間で、ユーザー側で設定可能。
◯ サイズと利用期間で課金されるので、大きサイズを選択すると料金が高くなる。

【特徴】
◯ ボリュームデータは、AZ内で複数のHWにデフォルトでレプリケーションされており、冗長化不要。(AWS側で複数の冗長化を勝手にやってくれているので、ユーザー側で冗長化する必要がない)
◯ EC2で、セキュリティグループによる通信制限の対象外で、全ポート閉じてもEBSは利用可能。
◯ データは永続的に保存可能ですが、EC2インスタンスが削除されると同時にEBSのデータも削除されるという設定がデフォルトで設定されている。(インスタンスが削除されても、EBSのデータを残すことも可能。通常はEC2インスタンスを削除するタイミングで、スナップショットというEBSのバックアップを取っておいて、データを削除する)
◯ EC2インスタンスは、他のAZ内のEBSにアクセスすることができない。
◯ EC2インスタンスに複数のEBSを接続することはできるが、EBSを複数のインスタンスに共有することはできない。(基本的にはEC2インスタンス一つに対してEBS一つというセットになっているが、IOPSに対しては一定の条件をクリアすると複数のEC2インスタンスで共有できるという機能が最近追加されたらしく、制限があるもののできないわけではない。基本的にはできないという認識でも大丈夫)
◯ 同じAZ内のインスタンスであれば、別のインスタンスに付け替えが可能。

Snapshot

EBSは、スナップショットを利用してバックアップを作成します。

【特徴】
◯ スナップショットからEBSを復元する際は別のAZに移動することも出来る。
◯ スナップショットは自動的にAWS側で用意されているS3に保存される。(バックアップの形式は、増分バックアップになっていて、2回目以降は追加したデータのみバックアップをとる)
◯ スナップショットの作成時にブロックレベルで圧縮して保管されるため、圧縮後の容量に対して課金が行われる。
◯ スナップショットの形式であれば、スナップショットをコピーしてリージョンを跨いで利用可能。
◯ スナップショット作成時は、データの整合性を保つために静止点を設定することが推奨されている。(インスタンスを起動した状態でもスナップショットは作成可能)
◯ 保存期間や世代数は無制限
◯ 世代管理が必要な場合はAWS CLIやAPIなどで自動化する。

AMIとSnapshot

AMI
・AMIもEC2インスタンスの実質的なバックアップとして使うことが出来る。
・EC2インスタンスのOS設定などのイメージとして保持して、新規インスタンスに転用する役割。

Snapshot
・ストレージ/EBSのその時点の断面のバックアップとして保持するもの。
・ストレージの復元や複製に利用する。

実際にはAMIの中にはスナップショットも含まれています。
EC2インスタンスに接続されているEBSのスナップショットも含めてAMIの中に保存されるので、そういった面でスナップショットはEBSストレージだけのバックアップなのですが、AMIはそれプラスOSのセッティングまで含めている。といった関係性なので、AMIさえ取っていればアタッチされていたEBS含めて復元される。

EBSのボリュームタイプ

EBSのボリュームタイプにはいくつか種類があり、それぞれの特性を見ていきます。

◯ SSD
・汎用SSD
・プロビジョンドIOPS
◯ HDD
・スループット最適化HDD
・コールドHDD
◯ マグネティック

汎用SSD
・汎用SSDを選択した場合、1GBあたり3IOPSのベースパフォーマンスを持つため、IOPSの指定はできませんが容量が増えるごとにIOPSも上がっていきます。また、容量にかかわらず最低100IOPSは保証されます。さらに、ストレージへの読み書きに対しては課金されません。特別な用件がない限りは汎用SSDを利用します。

◯ ユースケース
・仮想デスクトップ
・低レイテンシーを要求するアプリ
・小~中規模のデータベース
・開発環境

プロビジョンドIOPS SSD
・プロビジョンドIOPSを選択した場合、IOPSを指定することができます(最大20000IOPS)。ただし、1IOPSあたりで料金が発生します。要するに、IOPSを買う形になり、どうしても性能要件を満たさなければならない場合はプロビジョンドIOPSを利用します。

◯ ユースケース
・高いI/O性能に依存するNoSQLやアプリ
・10,000IOPSや160MB/s超えのワークロード
・大規模DB

スループット最適化   HDD
・スループット最適化は、大きなファイルを高速に呼びたせるように設計されています。用途としては、ビックデータ処理、DWH、大規模なETL処理やログ分析などが想定されています。注意点としては、小さなファイルサイズを大量に読み書きするには向いておらず、性能が出ないので注意してください。

◯ ユースケース
・ビックデータ処理
・DWH
・大規模なETL処理やログ分析

コールドHDD
・Coldは、利用頻度が低いストレージに最適化されています。GBあたりの単価を抑えつつ、大容量ファイルに対してスループットを高めに設定されているため、アーカイブに近いデータの保存に適しています。

◯ ユースケース
・ログデータなどのアクセス頻度が低いデータ
・バックアップやアーカイブ

マグネティック
・マグネティックは従来の磁気ディスクになります。AWSがSSDに対応してからは非推奨になっていますが、SSDと比べるとストレージ料金が割安なので、開発環境で少しだけ使う場合には適しています。ただし、読み書きに対しても課金がされるので注意しましょう。

◯ ユースケース
・旧世代のボリュームで基本的には利用しない。
・データへのアクセス頻度が低いワークロード

SSDの方が基本的に性能が高く、HDDよりSSDの方がアクセスが高速です。汎用SSDとプロビジョンIOPSはEC2インスタンス間で共有が出来るという設定が最近開始されたそうです。

セキュリティグループ

・作成したインスタンスにどういった形式のアクセスを求めるかの設定ができます。デフォルトではポート22とSSHだけの許可になっています。
・Webサーバーで立てるときはhttpでのアクセスの許可が必要になるので、httpのポート80の設定を許可するなど、どういったアクセスが必要になるかを加味して設定しましょう。

Elastic IP

Elastic IPアドレスは、AWSが提供するIPv4アドレスです。EC2インスタンスは、停止して起動し直すとグローバルIPが変わってしまい、サーバーとしては問題があります。そこで、固定のIPアドレスをインスタンスに結びつける必要があり、この時に固定IPとして使われるのがElastic IPアドレスになります。

ちょっとメモ的な感じでざっと書いたので、簡単な用語の説明とかはあんまりしてない感じです。

では、お疲れさまでした。

この記事が気に入ったらサポートをしてみませんか?