Amazon EC2 Windows インスタンス - Amazon Elastic Compute Cloud

Amazon EC2 Windows インスタンス

以下では、Amazon EC2 の主要なコンポーネントと、Windows インスタンスとオンプレミスで実行されている Windows Server との比較の概要について説明します。

インスタンスと AMI

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

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

Windows インスタンスの起動時間を短縮するために、AMI を最適化して起動を高速化できます。これにより、事前プロビジョニングされたスナップショットのセットが作成され、インスタンスが最大 65% 高速に起動されます。詳細については、「Windows Server AMI に Windows Fast Launch を設定する」を参照してください。

1 つの AMI から、複数の異なるタイプのインスタンスを起動することもできます。インスタンスタイプは、インスタンスに使用されるインフラストラクチャを決定します。一部のインスタンスタイプは汎用的な使用を想定していますが、コンピューティング用の高パフォーマンスプロセッサ、大規模なデータセットを処理するための拡張メモリ、ストレージの高速 I/O など、特定の用途向けの最適化をサポートするものもあります。インスタンス上で実行する予定のアプリケーションやソフトウェアに必要なパフォーマンスとサイズを提供するインスタンスタイプを選択します。インスタンスタイプの詳細な仕様については、「Amazon EC2 Instance Types Guide」を参照してください。料金の詳細については、Amazon EC2 のインスタンスタイプのページを参照してください。

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

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

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

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

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 環境に保存することについて懸念がある場合は、アップロード前に暗号化してください。