helloworlds

not a noun, it's a verb

【AWS】EC2&EBS メモ

EC2 (Amazon Elastic Compute Cloud)

参考と引用: Amazon EC2 とは - Amazon Elastic Compute Cloud

セキュリティグループ、IPの種類(EIP)は記述しない。

インスタンスとAMI

Amazonマシンイメージ(AMI) は、ソフトウェア構成を記録したテンプレート。

f:id:o21o21:20190207092927p:plain:h250:w250

インスタンス

1つのAMIから複数の異なるタイプのインスタンスを起動できる。

インスタンスタイプとは、本質的に、インスタンスに使用されるホストコンピュータのハードウェアを決定するもの。 インスタンスタイプは、インスタンス上で実行するアプリケーションやソフトウェアに必要なメモリの量と処理能力に応じて選択する。

インスタンスの一覧は以下。(インスタンスファミリーによる特徴も記載あり)

インスタンスタイプ - Amazon EC2 (仮想サーバー) | AWS

AWSアカウントでは、稼働できるインスタンスの数に制限がある

オンデマンドインスタンスの実行はインスタンスファミリーをまたいで最大で合計 20 個、リザーブインスタンスの購入は 20 個に制限されます。

インスタンスストレージ

インスタンスのルートデバイスには、インスタンスの起動に使用されるイメージが含まれる。

インスタンスストアボリュームと呼ばれるローカルストレージボリュームを含むことができて、 これはブロックデバイスマッピングによって起動時に設定できる。

しかし、マウントして使用することは可能だが、インスタンスが停止、失敗、終了するとボリュームのデータは失われる。 なので、一時データとして使用するのが最適である。永続的なデータは、S3かEBSボリュームに格納する必要がある。

AMI

AWSは、一般的な用途のためのソフトウェア設定を含む多くのAMIを公開している。

また、自身でAMIを作成することも可能である。

Webサーバー、関連する静的/動的コンテンツ(コード)は、AMIに含まれる。 新しいインスタンスをすばやく起動させるためには最適である。

すべてのAMIは以下からなる。

リージョン(region)とアベイラビリティゾーン(AZ)

f:id:o21o21:20190207111145p:plain:h250:w450

インスタンスを起動するときは、同じリージョン内にあるAMIを選択する。 別リージョンで起動させたい場合は、AMIを使用したいリージョンにコピーして使用することができる。

※ リージョン間でのデータ転送は料金がかかる。また、各AWSサービスにとって、グローバルサービスなのか、リージョン内サービスなのかは重要になってくる。

AZは、us-east-1aなどと表記される。

あるAWSアカウントのAZはap-northeast-1aで、別のAWSアカウントもap-northeast-1aだっとしても、 ap-northeast-1aは同じ場所にない場合もある。

こうしたアカウント間でのAZを調整したい場合、AZ IDを使用する必要がある。

最新のリージョンは随時変更されるので以下で確認。

AWS グローバルインフラストラクチャ | AWS

ルートデバイスボリューム

インスタンスを起動するときは、ルートデバイスボリュームに格納されているイメージを使用してインスタンスがブートされます。

引用: Amazon EC2 ルートデバイスボリューム - Amazon Elastic Compute Cloud

EC2サービスの開発当初はInstance-store backed(ルートデバイスinstance store)がすべてのAMIで採用されていたが、 EBS導入後(2009年後半)、AMIから起動されるインスタンスのルートデバイスが、EBSスナップショットから作成されるEBSスナップショットボリュームであるということになる。

現在、両方の方法を選択可能だが、推奨されるのは高速に起動できるEBS-backedになる。

インスタンスストア

インスタンスストアをルートデバイスに使用するインスタンスでは自動的に、インスタンスストアボリュームを利用できるようになり、そのボリュームの 1 つがルートデバイスボリュームとなります。

引用: Amazon EC2 ルートデバイスボリューム - Amazon Elastic Compute Cloud

インスタンスストアボリュームは、ホストコンピュータに物理的に接続されているディスクからストレージにアクセスする。

終了したり、障害がおきたインスタンスストアのインスタンスはバックアップできない。 スナップショット機能もないし他のEC2に付け替えもできないので、インスタンスストアのデータは複数のAZに分散させておくことが重要である。

  • 再起動(reboot)では消えない!

EBS

Amazon EBS をルートデバイスに使用するインスタンスには自動的に、Amazon EBS ボリュームがアタッチされます。Amazon EBS Backed インスタンスを起動するときに、AMI で参照されている Amazon EBS スナップショットごとに 1 つの Amazon EBS ボリュームが作成されます。

引用: Amazon EC2 ルートデバイスボリューム - Amazon Elastic Compute Cloud

EBSボリュームは、1つのインスタンスからデタッチして別のインスタンスにアタッチすることができる。

再起動後は、アタッチされているボリュームに格納されているデータに影響はない。

また、停止している時、デバッグなどの目的で別のインスタンスにルートボリュームをアタッチできる。

f:id:o21o21:20190207133232p:plain:h250:w350

サイズが最大16TiBで以下のタイプでボリュームを作成できる。

複数のボリュームを同じインスタンスにアタッチ可能。(1度に1つ)

ボリュームの詳細は以下公式ページで確認。

Amazon EBS ボリュームの種類 - Amazon Elastic Compute Cloud

aws.amazon.com

また、クラメソさんからもここに用途などかいてある。(2017年情報)

簡単に、以下の特徴がある。

タイプ 説明
gp2 起動ボリューム、低レイテンシを要求するアプリケーション、開発・テスト環境
io1 I/O性能に依存するNoSQLデータベースやリレーショナルデータベース
st1 ビッグデータ、DWH、ログデータ処理
sc1 スキャンする頻度が低いデータ
マグネティック データアクセス頻度が低い

EBS最適化ありの場合、通常のネットワークとは別にEBSが専用帯域を確保することになる。

EMS最適化をサポートしているインスタンスタイプ一覧。

(最大帯域幅(Mbps), 最大スループット(MB/秒, 128KB I/O), 最大IOPS(16KB I/O))

Amazon EBS – 最適化インスタンス - Amazon Elastic Compute Cloud

バースト

バーストとは、通常は低負荷だが一時的に高性能を出すこと。

バーストを使用するにあたって想定する場合は以下。

ベースライン性能以下の利用時にクレジットが蓄積され、バースト時に貯めたクレジットを消費する。

また、T2 Unlimitedというオプションを使用することで、バースト状態を維持継続することもできる。

f:id:o21o21:20190208102640p:plain:h250:w150

新しいT2 Unlimited – バーストを超え、高い性能を発揮 | Amazon Web Services ブログ

EC2の購入オプション

  • オンデマンド

スタンダードな時間課金型インスタンス

1年間または3年間の利用予約をすることで、割引がされる。

リザーブドインスタンス(RI)- Amazon EC2 | AWS

使われていないインスタンスに入札して格安利用

最大90%程度の大幅なコストカットが見込める

  • Dedicated Host

専用の物理サーバー

過去記事

o21o21.hatenablog.jp