EC2でホストされ、負荷に応じてさまざまな数のインスタンスを実行する必要があるWebサービスに取り組んでいます。基本的なサービスは稼働していますが、Windowsインスタンスのプロビジョニングと起動にかかる時間の問題があります(Windowsでのみ実行される3つ目のprtyツールを使用しています)。私はこれが10分からかなり驚異的な45分までどこかにかかるのを見てきました。
EC2インスタンスの起動を高速化する方法に関するヒントはありますか?たとえば、WindowsサーバーのAMIはLinux AMIに比べて大きいので、AMIを含むS3バケットがインスタンスが起動されたのと同じゾーンにあることを確認する必要があるのではないかと思います。新しいインスタンスのプロビジョニングを高速化します。
昨夜、Vanilla Windows 2003サーバーの3つのインスタンスをインストールしました。最初の2つは約45分、3番目は約1時間後、準備が完了するまでに2時間かかりました。
S3を使用しない限り、それらには何も含まれていません。 Amazonが時間の経過とともに展開速度を向上させるのを待つこととは別に、その基本的なステップをスピードアップする方法はないと思います。したがって、ある程度の遅延が予想され、カートのアドバイスは適切であると結論付けます。
もう1つの方法は、AMIタイプの新しいインスタンスを数回作成し、時間を計測することです。次に、S3ストレージを数回試し、それにどれだけ時間がかかるかを確認します。アベイラビリティーゾーンはイメージとS3の間で一致する必要があると思いますが、どれだけの時間差が生じるかはわかりません。
プロビジョニングする最大時間を決定したら、負荷/使用量をその分だけ先に進めます。
「EC2 Config」Windowsサービスのデフォルト設定では、ホストの名前をインスタンスの内部DNS名に変更するため、Amazon Windowsインスタンスは起動時に再起動します。ホストの名前を変更するには、Windowsを再起動する必要があります。インスタンスの内部DNS名を使用する必要がない場合は、SetComputerName機能を無効にすることでメリットが得られる可能性があります。 Windowsインスタンスには、構成を既にバンドルしている可能性がある起動ドライブを初期化する必要がないという利点もあります。これにより、インスタンスの起動にかかる時間が短縮されます。これはすべて、EC2 Windows構成サービスを介して可能です。
Windows構成サービス:http://docs.amazonwebservices.com/AWSEC2/latest/UserGuide/appendix-windows-config.html
私のWindowsの小さなインスタンスは通常、起動に15〜18分かかります(大きなインスタンスの方が高速です)。要件によっては、AMI内のすべてのソフトウェアをバンドルし、その期間内にすべてを起動して実行できるようにすることができます。すべてをAMIにバンドルしないことの予約を理解していますが、すべてをバンドルした実稼働AMIを用意しておくと、起動時間を短縮する価値があります。ビルド環境で必要な場合は、ビルドスクリプトを分離してください。
さらに、Amazonはインスタンスストアルートボリュームではなく、EBSルートボリュームをリリースしました。 EBSボリュームで実行されているWindowsの小さなイメージは、以前にかかっていたほぼ20分に対して、ほぼ5分で起動します。また、終了する必要はありません-それらを停止/開始することができます-設定によっては、これにより、いくつかの起動スクリプトでさらに数分削られる可能性があります。
Windows EC2 Configサービス、AMIを本質的にカスタマイズし、EBSブートボリュームを使用することで、起動時間を約5分に短縮できます。特に開発目的の場合、アプリによっては、ec2インスタンスの起動時に実行されるsysprepを回避できます。起動時にホスト名の変更を回避する、sysprepされていないm1.largeイメージは、約2分で起動できますが、これはまったく問題ありません。
現時点では、私が理解している限り、これはAmazon EC2のWindowsでできる最高のことですが、それほど悪くはありません。平均的な使用パターンに基づいて、10分近く先まで予測できる場合は、追加のインスタンスを起動して、追加の負荷を処理できるはずです。
私たちはこの正確な問題に遭遇しましたが、非常に深刻な方法で-私たちの新しいスタートアップはAmazon EC2を仮想ラボ環境(マルチユーザー、ポリシー、共有など)に拡張しているため、開始時間を短縮する必要がありましたWindowsマシン。私たちの最大の決断は、アプリケーションでEBSベースのボリュームのみをサポートすることでした。これは、5〜10分で起動できる唯一のボリュームだからです。私たちのテストでは、インスタンスストアの起動時間が大幅に変動し、場合によっては過度に時間がかかることがわかりました。
EC2でのSimon @ LabSlice仮想ラボ管理
最小限のシステムで、EBSにできるだけ多くの情報を保存しておくと役に立ちますか?または、Apacheスタイルのアプローチを採用して、1つまたは2つを予備で実行しますか?