インスタンスと AMI
Amazon マシンイメージ (AMI) は、ソフトウェア構成 (オペレーティングシステム、アプリケーションサーバー、アプリケーションなど) を記録したテンプレートです。AMI から、クラウドで仮想サーバーとして実行される AMI のコピーであるインスタンスを起動します。以下の図に示すように、1 つの AMI の複数のインスタンスを起動することができます。
![1 つの AMI から複数のインスタンスを起動します。](images/architecture_ami_instance.png)
インスタンスは、停止、休止、または終了させるか、エラーが発生するまで実行を続けます。インスタンスがエラーで終了した場合は、元の AMI から新しいインスタンスを起動できます。
インスタンス
インスタンスとは、クラウドの仮想サーバーです。起動時の設定は、インスタンスを起動した際に指定した AMI のコピーです。
1 つの AMI から、複数の異なるタイプのインスタンスを起動することもできます。インスタンスタイプとは本質的に、インスタンスに使用されるホストコンピュータのハードウェアを決定するものです。インスタンスタイプごとに異なる処理内容やメモリの機能が提供されます。インスタンスタイプの選択は、そのインスタンス上で実行するアプリケーションやソフトウェアで必要となる、メモリ量や処理能力に基づき行います。インスタンスタイプの詳細な仕様については、「Amazon EC2 インスタンスタイプガイド」の「Specifications」を参照してください。料金については、「Amazon EC2 オンデマンド料金
インスタンスの起動後は、通常のホストのように表示され、任意のコンピュータと同じように操作できます。インスタンスは完全に制御でき、sudo を使用して、ルート権限を必要とするコマンドを実行できます。
AWS アカウントでは、稼動できるインスタンスの数に制限があります。この制限の詳細、および増加を要求する方法については、Amazon EC2 の全般的なよくある質問の「Amazon EC2 ではいくつのインスタンスを稼動できますか
インスタンスストレージ
インスタンスのルートデバイスには、インスタンスの起動に使用されるイメージが含まれています。ルートデバイスは、Amazon Elastic Block Store (Amazon EBS) ボリュームまたはインスタンスストアボリュームのいずれかです。詳細については、「Amazon EC2 インスタンスのルートボリューム」を参照してください。
インスタンスには、インスタンスストアボリュームと呼ばれるローカルストレージボリュームを含めることができます。これはブロックデバイスマッピングによって起動時に設定できます。詳細については、「ブロックデバイスマッピング」を参照してください。これらのボリュームがインスタンスに追加およびマッピングされたら、マウントして使用することができます。インスタンスが失敗、停止、または終了した場合、それらのボリュームのデータは失われます。したがって、これらのボリュームは一時データとして使用するのが最適です。重要なデータを安全に維持するには、複数のインスタンスにわたるレプリケーション方法を使用する必要があります。または、永続的なデータを Amazon S3 または Amazon EBS ボリュームに格納してください。詳細については、「Amazon EC2 インスタンスのストレージオプション」を参照してください。
セキュリティのベストプラクティス
-
AWS Identity and Access Management (IAM) を使用して、インスタンスなど各 AWS リソースへのアクセスを制御します。詳細については、「Amazon EC2 の Identity and Access Management」を参照してください。
-
信頼されたホストまたはネットワークのみがインスタンスのポートにアクセスできるように制限します。例えば、ポート 22 の受信トラフィックを制限することで SSH アクセスを制限できます。詳細については、「EC2 インスタンスの Amazon EC2 セキュリティグループ」を参照してください。
-
セキュリティグループのルールを定期的に確認し、最小権限 (— 必要なアクセス許可のみを開く) の原則を適用してください。また、さまざまなセキュリティグループを作成して、異なるセキュリティ要件を持つ各インスタンスに対応することもできます。外部ログインが許可された基本となるセキュリティグループの作成を検討し、外部ログインが許可されていないグループで残りのインスタンスを管理してください。
-
AMI から起動されるインスタンスについてはパスワードベースのログインを無効にしてください。パスワードは検知または解読される恐れがあり、セキュリティ上のリスクです。詳細については、「ルートユーザーのパスワードベースのリモートログインを無効にする」を参照してください。AMI の安全な共有の詳細については、「共有 AMI」を参照してください。
インスタンスの停止と終了
実行中のインスタンスは、いつでも停止または終了できます。
インスタンスの停止
インスタンスが停止されると、インスタンスは通常のシャットダウンを実行してから、stopped
状態に移行します。そのすべての Amazon EBS ボリュームはアタッチされたままになり、後でインスタンスを再び開始することができます。
インスタンスが停止状態にあるとき、インスタンスの使用分が追加で課金されることはありません。停止状態から実行状態への移行ごとに課金されます。インスタンスが停止状態にあるときにインスタンスタイプを変更した場合、インスタンスの起動後に新しいインスタンスタイプの料金が課金されます。また、ルートデバイスボリュームを含む、インスタンスに関連付けられた Amazon EBS ストレージに対しても課金されます。
インスタンスが停止状態の場合は、Amazon EBS ボリュームをアタッチおよびデタッチできます。インスタンスから AMI を作成し、カーネル、RAM ディスク、インスタンスタイプを変更することもできます。
インスタンスの終了
インスタンスを終了すると、インスタンスは正常なシャットダウンを実行します。ルートデバイスボリュームはデフォルトで削除されますが、アタッチされた Amazon EBS ボリュームはデフォルトでは保持されます (各ボリュームの deleteOnTermination
属性の設定によって決まります)。インスタンスそのものも削除され、後でインスタンスを再度起動することはできません。
間違って終了しないようにするため、インスタンスの削除を無効にすることができます。この場合、インスタンスの disableApiTermination
属性は必ず true
にします。インスタンスのシャットダウン時の動作を制御するには (Linux の shutdown -h
や Windows の shutdown
など)、instanceInitiatedShutdownBehavior
インスタンス属性を必要に応じて stop
または terminate
に設定します。Amazon EBS ボリュームをルートデバイスに持つインスタンスはデフォルトで stop
に設定されます。インスタンスストアをルートデバイスに持つインスタンスはシャットダウンの結果として常に終了されます。
詳細については、「インスタンスのライフサイクル」を参照してください。
注記
Amazon EBS ボリュームや Elastic IP アドレスなど一部の AWS リソースでは、インスタンスの状態に関係なく利用料金が発生します。詳細については、AWS Billing ユーザーガイドの「予想外の料金の回避」を参照してください。Amazon EBS でのコストの詳細については、「Amazon EBS の価格
AMI
Amazon Web Services (AWS) は、一般的な用途のための共通のソフトウェア設定を含む Amazon マシンイメージ (AMI) を公開しています。加えて、AWS デベロッパーコミュニティのメンバーによって作成された、独自のカスタム AMI もあります。お客様自身でカスタム AMI を作成することもできます。必要なものがすべて含まれた新しいインスタンスを、すばやく簡単に起動できるようになります。例えば、ウェブサイトまたはウェブサービスに使用する場合は、AMI に含まれるものとして、ウェブサーバー、関連する静的コンテンツ、動的ページ用のコードが考えられます。この AMI からインスタンスを起動すると、ウェブサーバーが起動し、アプリケーションはリクエストを受け付け可能な状態になります。
すべての AMI は、Amazon EBS-backed (AMI からインスタンスを起動するときのルートデバイスは Amazon EBS ボリュームである) と Instance-store backed (AMI からインスタンスを起動するときのルートデバイスは、Amazon S3 に格納されているテンプレートから作成されたインスタンスストアボリュームである) のいずれかに分類されます。
AMI の説明に、ルートデバイスのタイプ (ebs
または instance store
) が明記されています。このことが重要であるのは、AMI のタイプによって、実行できる機能が大きく異なるからです。違いについての詳細は ルートデバイスのストレージ を参照してください。
AMI の利用が終わったら、その登録を解除できます。AMI の登録を解除すると、それを使用して新しいインスタンスを起動できなくなります。その AMI から起動された既存のインスタンスは影響を受けません。そのため、これらの AMI から起動されたインスタンスが終了した場合も、それらを削除する必要があります。