0

これが可能かどうか興味があります:

ほとんどの場合、単一の小さなインスタンスで問題なく動作する Web アプリケーションがあります。ただし、複数の顧客が同時に負荷の高いクエリを実行している場合 (当社はクラウド スケジューリング サービスです)。インスタンスの CPU 負荷が 80% 近くまで低下し、かなり応答しなくなります。

AWS が別の小さなインスタンス (またはいくつか) を、この激しい負荷の下で動作している間だけ、すばやく起動させる方法はありますか? しかし、本当の問題は、アプリケーションのプログラミングを非常に頻繁に更新する場合、これがどのように機能するかということです。コードの変更をアップロードするたびに、手動で新しいイメージを作成する必要がありますか?

ありがとう

4

1 に答える 1

4

単一の EC2 インスタンスで重要なものを実行するべきではありません。インスタンスは、ランダムにオフラインになる可能性があり、実際にオフラインになります。複数のアベイラビリティ ゾーンにまたがる自動スケーリング (AS) グループを常に使用します。AS グループは、特定のトリガー (この場合は CPU 使用率) に達すると、新しいインスタンスを自動的にオンラインにします。その後、トラフィックが減少するとインスタンスが縮小されます。自動スケーリングは AWS の心臓部であり、それを使用していない場合は、より安価な (より耐久性のある) VPS ホストを使用している可能性があります。

いいえ、コード リリースごとに新しい AMI を作成する必要はありません。理想的には、ベース AMI (Amazon の公式のものの 1 つなど) を使用し、起動時に自動プロビジョニングする必要があります。このプロセスをブートストラップするために AMI を起動するときに、「ユーザー データ」フィールドを使用できます。これは、Git リポジトリから Puppet や Chef のような洗練されたものにプルする bash スクリプトのように単純なものにすることができます。

カスタム AMI を作成するのは、プロビジョニング プロセスに時間がかかりすぎる場合だけです。ただし、ほとんどの場合、必要なファイルを S3 に保存することで解決できます。

于 2012-12-10T10:32:08.567 に答える