CPUを集中的に使用するモバイルアプリのバックエンドを作成しています。このアプリはほとんどの場合頻繁に使用されることはないと予想されますが、需要が急増することがあります。私がすべきことは、需要の少ないトラフィックの定常状態を処理するために24時間年中無休のサーバーをいくつか予約し、スパイクを処理するために必要に応じてEC2インスタンスを追加および削除することだと考えていました。モバイルアプリは、最初に、利用可能なすべての処理サーバー間で単純なラウンドロビンユーザー分散を行う単純な負荷分散サーバーにアクセスします。ロードバランサーは、新しいEC2インスタンスを起動し、必要に応じてオフに戻す処理を行います。
いくつかの質問:
私はこれまでこのようなものを書いたことがありませんが、これは良い戦略のように聞こえますか?
新しいEC2インスタンスのアップとダウンを処理するための最良の方法は何ですか?事前にXインスタンスを作成し、必要に応じてセットアップ(ソフトウェアのインストールなど)してから、各インスタンスを停止するだけでよいと考えていました。ロードバランサーは、必要に応じて(たとえば、botoを介して)インスタンスを開始および停止します。これは、新しいインスタンスを作成し、スクリプトなどを使用してすべてをインストールするよりもはるかに高速で簡単なはずだと思います。良いアイデア?
ここで私が懸念していることの1つは、EC2インスタンスをオフにしてから再びオンにするコストです。AWS Usage Reportを確認しましたが、解釈が困難でした。停止したインスタンスの開始は、コストがかかる可能性のある操作であることがわかりました。しかし、新しいインスタンスを最初からプロビジョニングするのではなく、停止したインスタンスを開始したばかりなので、それほど悪くはないようです。それは正しいですか?