Amazon Elastic Compute Cloud
Windows インスタンス用ユーザーガイド

Windows 用 Amazon EC2 の基本インフラストラクチャ

Amazon EC2 の使用を開始したら、その基本インフラストラクチャのコンポーネントを理解し、それらのコンポーネントとお客様のデータセンターとの相違点を理解することが大切です。

Amazon マシンイメージとインスタンス

Amazon マシンイメージ (AMI) は、ソフトウェア構成 (オペレーティングシステム、アプリケーションサーバー、アプリケーションなど) を記録したテンプレートです。AMI からインスタンスを起動できます。インスタンスとは AMI のコピーであり、クラウド内で仮想サーバーとして実行されます。

Amazon は、よく使用されるソフトウェア構成の AMI を多数一般公開しています。加えて、AWS 開発者コミュニティのメンバーによって作成された、独自のカスタム AMI もあります。お客様自身でカスタム AMI を作成することもできます。必要なものがすべて含まれた新しいインスタンスを、すばやく簡単に起動できるようになります。たとえば、ウェブサイトまたはウェブサービスに使用する場合は、AMI に含まれるものとして、ウェブサーバー、関連する静的コンテンツ、動的ページ用のコードが考えられます。この AMI からインスタンスを起動すると、ウェブサーバーが起動し、アプリケーションはリクエストを受け付け可能な状態になります。

1 つの AMI から、複数の異なるタイプのインスタンスを起動することもできます。インスタンスタイプとは本質的に、インスタンスに使用されるホストコンピュータのハードウェアを決定するものです。インスタンスタイプごとに、コンピューティングとメモリの装備が異なります。インスタンスタイプを選択するときは、そのインスタンス上で実行するアプリケーションやソフトウェアに必要なメモリ量とコンピューティング能力を考慮してください。各 Amazon EC2 インスタンスタイプのハードウェア仕様については、「Amazon EC2 インスタンスタイプ」を参照してください。 次の図に示すように、1 つの AMI から複数のインスタンスを起動することもできます。


						1 つの AMI から複数のインスタンスを起動

Windows インスタンスは、停止または終了させるか、エラーが発生するまで実行を続けます。インスタンスがエラーで終了した場合は、元の AMI から新しいインスタンスを起動できます。

AWS アカウントでは、稼動できるインスタンスの数に制限があります。この制限の詳細、および増加を要求する方法については、Amazon EC2 の全般的なよくある質問の「 Amazon EC2 ではいくつのインスタンスを稼動できますか」を参照してください。

ベアメタルインスタンス

Amazon では、EC2 ストレージ最適化 Amazon EC2 I3 インスタンスファミリーで使用可能な EC2 ベアメタルインスタンスを i3.metal インスタンスとして提供しています。ベアメタルのインスタンスにより、EC2 の顧客の皆様は、ディープパフォーマンス分析ツール、ベアメタルインフラストラクチャーへの直接アクセスが必要な特殊なワークロード、仮想環境でサポートされていないレガシーワークロード、ライセンス制限された Tier 1 ビジネスクリティカルなアプリケーションの恩恵を受けるアプリケーションと、仮想化で保護されたコンテナを実行することが可能となります。

リージョンとアベイラビリティーゾーン

Amazon は世界各地 (北米、欧州、アジアなど) にデータセンターを設置しています。これに対応して、Amazon EC2 はさまざまなリージョンでご利用いただけるようになっています。個別のリージョンでインスタンスを起動することにより、特定のカスタマーに近い場所でアプリケーションを提供したり、法的要件またはその他の要件を満たすアプリケーションを設計することができます。Amazon EC2 の利用料金はリージョンによって異なります (リージョン別の料金の詳細については、「Amazon EC2 料金表」を参照してください)。

各リージョンは、複数のそれぞれ独立した場所で構成されており、これらの場所はアベイラビリティーゾーンと呼ばれます。各アベイラビリティーゾーンは、他のアベイラビリティーゾーンにおける障害の影響を受けないように設計されています。また、同じリージョン内のゾーン間は、低コスト、低レイテンシーでネットワーク接続ができます。個別のアベイラビリティーゾーンでインスタンスを起動することにより、1 つの場所で発生した障害からアプリケーションを保護できます。


						リージョンとアベイラビリティーゾーン

使用可能なリージョンとアベイラビリティーゾーンの詳細については、『Linux インスタンス用 Amazon EC2 ユーザーガイド』の「リージョンとアベイラビリティーゾーンの使用」を参照してください。

ストレージ

Amazon EC2 を使っていると、保存したいデータが出てくる場合があります。Amazon EC2 では次のストレージオプションを提供しています。

各ストレージタイプの関係を下の図に示します。


						Amazon EC2 のストレージオプション

Amazon EBS ボリューム

Amazon EBS ボリュームは、ほとんどのユースケースにお勧めのストレージオプションです。Amazon EBS は、インスタンスに永続的なブロックレベルのストレージを提供します。Amazon EBS ボリュームは基本的に、実行するインスタンスにアタッチできる、物理的なハードディスクのようなものです。

Amazon EBS が特に適しているのは、アプリケーションでデータベースやファイルシステムを必要としている場合や、未加工のブロックレベルストレージにアクセスする場合です。

上の図に示したように、同じインスタンスに複数のボリュームをアタッチできます。また、データのバックアップコピーを保持するために、EBS ボリュームのスナップショットを作成して Amazon S3 に保存することができます。スナップショットから新しい Amazon EBS ボリュームを作成して他のインスタンスにアタッチすることもできます。また、インスタンスからボリュームをデタッチして別のインスタンスにアタッチすることもできます。次の図は、EBS ボリュームのライフサイクルを表したものです。


							EBS ボリュームのライフサイクル

Amazon EBS ボリュームについては、Amazon Elastic Block Store を参照してください。

インスタンスストア

インスタンスストアは、ブロックレベルの一時ストレージを持つインスタンスを提供します。これは、ホストコンピュータに物理的にアタッチされているストレージです。インスタンスストアボリューム上のデータは、関連付けられたインスタンスが停止または終了すると消滅します。サポートされる各インスタンスタイプで利用できるインスタンスストアボリュームのリストについては、「インスタンスストアボリューム」を参照してください。

インスタンスストアは、安価な一時ストレージのためのオプションです。データの永続性を必要としない場合に、インスタンスストアボリュームを使用できます。インスタンスストアボリュームの詳細については、Amazon EC2 インスタンスストア を参照してください。

Amazon S3

Amazon S3 はインターネット用のストレージサービスです。無制限の量のデータをウェブ上のどこからでも保管し取得することができる、シンプルなウェブサービスインターフェイスを提供します。Amazon S3 の詳細については、「Amazon S3 の製品ページ」を参照してください。

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

インスタンスを起動するときは、ルートデバイスボリュームに格納されているイメージを使用してインスタンスがブートされます。Windows インスタンスを起動すると、その EBS スナップショットからルート EBS ボリュームが作成され、インスタンスにアタッチされます。

デフォルトでは、インスタンスを終了するとルートボリュームは削除されます (DeleteOnTermination属性は true)。コンソールを使用して、インスタンスの起動時に DeleteOnTermination を変更できます。実行中のインスタンスのこの属性を変更するには、コマンドラインを使用する必要があります。

コンソールを使用して、起動時にインスタンスのルートデバイスボリュームが存続するように変更するには

  1. Amazon EC2 コンソールを開きます。

  2. Amazon EC2 コンソールダッシュボードで、[Launch Instance] をクリックします。

  3. [Choose an Amazon Machine Image (AMI)] ページで、使用する AMI を選択し、[Select] をクリックします。

  4. ウィザードにしたがって [Choose an Instance Type] ページと [Configure Instance Details] ページを設定します。

  5. [Add Storage] ページで、ルートボリュームの [Delete On Termination] チェックボックスの選択を解除します。

  6. ウィザードの残りのページを完了した後、[Launch ] をクリックします。

インスタンスの詳細ペインでルートデバイスボリュームの詳細を表示することにより、設定を確認できます。[Block devices] の隣にあるルートデバイスボリュームのエントリを選択します。デフォルトでは、[Delete on termination] は [True] です。デフォルトの動作を変更した場合は、[Delete on termination] が [False] になっています。

コマンドラインを使用して、インスタンスのルートデバイスボリュームが存続するように変更するには

次のコマンドの 1 つを使用できます。これらのコマンドラインインターフェイスの詳細については、Amazon EC2 へのアクセス を参照してください。

ネットワークとセキュリティ

デフォルトでは、デフォルトの VPC で起動した場合にのみ、パブリック IPv4 アドレスが割り当てられます。デフォルト以外の VPC で起動されるインスタンスには、起動時に明確にパブリック IPv4 アドレスを割り当てる必要があります。または、サブネットのデフォルトのパブリック IPv4 アドレス指定の動作を変更する必要があります。

インスタンスは、制御不能な理由によりエラーを起こしたり終了したりすることがあります。インスタンスが異常終了したために別のインスタンスを起動した場合は、そのインスタンスのパブリック IPv4 アドレスは元の IP アドレスとは異なります。ただし、お使いのアプリケーションで固定 IPv4 アドレスが必要な場合は、Amazon EC2 から Elastic IP アドレスが提供されます。詳細については、「Amazon EC2 インスタンスの IP アドレッシング」を参照してください。

セキュリティグループを使用すると、だれがインスタンスにアクセスできるかをコントロールできます。これは、着信ネットワークファイアウォール (どのプロトコル、ポート、ソース IP 範囲にインスタンスへの到達を許可するかを指定する) に似ています。複数のセキュリティグループを作成してそれぞれに異なるルールを割り当てることもできます。その後で、各インスタンスを 1 つまたは複数のセキュリティグループに割り当てます。どのトラフィックが各インスタンスに到達できるかは、ルールを使用して決定されます。セキュリティグループを設定することで、特定の IP アドレスや特定のセキュリティグループのみにインスタンスへのアクセスを許可することができます。詳細については、「Windows インスタンスの Amazon EC2 セキュリティグループ」を参照してください。

AWS Identity and Access Management

AWS Identity and Access Management (IAM)を使って以下を行えます。

  • お客様の AWS アカウントでユーザーとグループを作成する

  • お客様の AWS アカウントでユーザーごとに固有のセキュリティ認証情報を割り当てる

  • AWS のリソースを使用してタスクを実行するために各ユーザーのアクセス許可を制御する

  • 別の AWS アカウントのユーザーがお客様の AWS のリソースを共有できるようにする

  • AWS アカウントにロールを作成し、それを行えるユーザーまたはサービスを定義する

  • お客様の企業用の既存のアイデンティティを使用し、AWS のリソースを使用してタスクを実行するようにアクセス許可を与える

Amazon EC2 と組み合わせて IAM を使用すると、組織のユーザーが特定の Amazon EC2 API アクションを使用してタスクを実行できるかどうか、また、特定の AWS リソースを使用できるかどうかを制御できます。

IAM の詳細については、以下を参照してください。

Windows Server と Amazon EC2 Windows インスタンスの違い

Amazon EC2 Windows インスタンスは、起動後は、Windows Server を実行する従来のサーバーと同じように動作します。たとえば、Windows Server と Amazon EC2 インスタンスのどちらも、ウェブアプリケーションの実行、バッチ処理、大規模な計算能力を必要とするアプリケーションの管理などを実行できます。しかし、サーバーハードウェアモデルとクラウドコンピューティングモデルの間には重要な違いがあります。Amazon EC2 インスタンスが実行される方法は、Windows Server を実行する従来のサーバーの実行方法とは異なります。

Amazon EC2 Windows インスタンスを起動する前に、クラウドサーバー上で実行されるアプリケーションのアーキテクチャが、ハードウェア上で実行される従来のアプリケーションモデルのアーキテクチャと大きく異なる可能性があることを理解しておく必要があります。クラウドサーバー上でアプリケーションを実装するには、設計プロセスに変更が必要です。

以下の表に、Windows Server と Amazon EC2 Windows インスタンスの重要な相違点についてまとめます。

Windows Server Amazon EC2 Windows インスタンス

リソースと容量が物理的に制限される。

リソースと容量がスケーラブルである。

インフラストラクチャを使用しなくても費用が発生する。

インフラストラクチャの使用量に対して料金を支払う。インスタンスを停止または終了した直後から、そのインスタンスの課金が停止される。

機器を設置するための空間と、定期的なメンテナンスが必要。

機器を設置するための空間を必要とせず、定期的なメンテナンスも不要。

電源ボタンを押すことで開始される (コールドブートと呼ばれる)。

インスタンスの起動で開始される。

サーバーのシャットダウン時間になるまで、またはサーバーをスリープ状態または休止状態にする (この間、サーバーの電源はオフになっている) まで、サーバーの実行を継続できる。

サーバーの実行を継続したり、サーバーを停止して再起動したり (この間、インスタンスは新しいホストコンピュータに移動される) できる。

サーバーをシャットダウンすると、すべてのリソースはそのまま残り、サーバーをオフにしたときの状態になる。ハードドライブに保存した情報は保持され、必要な場合にいつでもアクセスできる。電源をオンにすることで、サーバーを実行状態に戻すことができる。

インスタンスを終了すると、そのインフラストラクチャを利用できなくなる。インスタンスを削除した後に、接続または再起動することはできません。ただし、インスタンスの実行中にインスタンスからイメージを作成し、そのイメージから新しいインスタンスをいつでも起動できる。

Windows Server を実行する従来のサーバーの状態は、次の図のように変化します。


				従来の Windows Server の状態

以下の図を前の Windows Server の図と比較すると、Amazon EC2 Windows インスタンスは従来の Windows Server と似ていることがわかります。インスタンスを起動すると、インスタンスはすぐに pending 状態になり、その間、登録が実行されます。その後、インスタンスは running 状態になります。インスタンスを停止または終了するまで、インスタンスのアクティブな状態が維持されます。インスタンスを終了した後、インスタンスを再起動することはできません。インスタンスの実行中にインスタンスのバックアップイメージを作成し、そのバックアップイメージから新しいインスタンスを起動できます。


				インスタンスと AMI のライフサイクル

Amazon EC2 Windows インスタンスで実行するアプリケーションの設計

先のセクションで述べた相違点は、Amazon EC2 Windows インスタンスで実行するアプリケーションを設計する際に重要になります。

Amazon EC2 用に作成されたアプリケーションは、基盤となるコンピューティングインフラストラクチャを、オンデマンドベースで使用します。ジョブを実行するために必要なリソース (ストレージや計算処理など) をオンデマンドで使用し、処理が終了したらリソースを解放します。また多くの場合、ジョブの終了後はアプリケーション自体も廃棄されます。アプリケーションは、稼働中にはリソース要件に応じて弾力的に拡張または縮小します。Amazon EC2 インスタンス上で実行されるアプリケーションは、インフラストラクチャにエラーが発生しても、自由に各種コンポーネントを終了して再作成することができます。

Amazon EC2 上で実行する Windows アプリケーションを設計する際は、ニーズに応じた計算処理性能やストレージリソースの迅速なデプロイや縮小を視野に入れることができます。

Amazon EC2 Windows インスタンスを実行する際は、Windows Server で必要とされるような、ハードウェア、ソフトウェア、ストレージなどの完全なシステムパッケージを準備する必要はありません。代わりに、さまざまなクラウドリソースを使用して Windows アプリケーションの拡張性と全体的なパフォーマンスを向上することに専念できます。

Amazon EC2 では、エラーや機能停止に備えて設計を行うことが、アーキテクチャに欠かせない重要な部分となります。スケーラブルで冗長性のある他のあらゆるシステムと同様、このシステムのアーキテクチャでも、計算処理、ネットワーク、およびストレージのエラーに備えなければなりません。さまざまな種類のエラーを処理できるメカニズムをアプリケーションに組み込んでおく必要があります。鍵となるのは、密に結合しておらず、非同期的に相互動作でき、お互いをスケーラブルで独立したブラックボックスとして扱う、個々のコンポーネントで構成されたモジュラーシステムの構築です。これにより、いずれかのコンポーネントにエラーが発生したりビジー状態になったりしても、現在のシステムを維持したままそのコンポーネントの別のインスタンスを起動することができます。

もう 1 つ、エラーに強い設計に重要なのは、アプリケーションを地理的に分散することです。アプリケーションを地理的に分散したリージョンに複製しておくことで、システムの可用性を向上させることができます。

Amazon EC2 インフラストラクチャはプログラム可能で、デプロイ作業の自動化、ソフトウェアとアプリケーションのインストールと設定、仮想サーバーのブートストラップなどをスクリプトを使って実行できます。

Amazon EC2 Windows インスタンス上で実行するアプリケーションアーキテクチャのすべてのレイヤにおいてセキュリティを実装する必要があります。重要なデータや機密データを Amazon EC2 環境に保存することについて懸念がある場合は、アップロード前に暗号化してください。