0

次のシナリオ:

24 時間 365 日稼働するサービスがあり、ダウンタイムは非常に高くつきます。このサービスは Amazon EC2 にデプロイされます。単一障害点を防ぐために、アプリケーションを 2 つの異なるアベイラビリティ ゾーン、さらには 2 つの異なるリージョンにデプロイすることの重要性を認識しています。しかし...

私の質問は、アプリケーションの冗長性に影響を与える可能性のある追加の構成の問題があるかどうかです。また、構成が間違っていることも意味します(たとえば、フェイルオーバーの場合に失敗する DNS の構成が間違っているなど)。

明確にするために、EC2 にデプロイされたアプリケーションの冗長性を確保するためにテストする必要がある検証のリストを作成しようとしています。

皆さん、ありがとうございました!

4

1 に答える 1

2

警告として、サービスを 2 つのアベイラビリティ ゾーンに配置したからといって、耐障害性があるとは限りません。

たとえば、私が行ったセットアップの 1 つは、2 つのゾーンとして us-east-1a us-east-1b を使用して、ロード バランサーに 4 台のサーバーを配置することでした。数か月前の Amazon の停止により、ロード バランサーが適切に機能していなかったため、私のソフトウェアでいくつかの停止が発生しました。彼らはまだリクエストを転送していましたが、ゾーンの 1 つで私が持っていた 2 つのデッド インスタンスもまだリクエストを受信して​​いました。ロード バランサー ロジックの一部は、デッド インスタンスを削除することですが、ロード バランサー キューがバックログされたため、これらのインスタンスは削除されませんでした。私のセットアップでは、各ゾーンに 2 つのロード バランサーが 1 つずつあるため、リクエストに応答するインスタンスがなかったため、1 つのロード バランサーへのすべてのリクエストがタイムアウトしていました。幸いなことに、ブラウザーは 2 番目のロード バランサーでリクエストを再試行したため、フィードはまだ読み込まれていましたが、非常に低速でした。

私のアドバイスは、2 つのリージョンで 2 つのアベイラビリティ ゾーンのみを使用することを選択した場合、システムが別のアベイラビリティ ゾーンのどの部分にも依存していないことを確認することです。私にとって、2 つの完全に独立したシステムを異なるゾーンで起動するのに余分なコストをかける価値はないので、将来この問題を回避することはできません。しかし、ソフトウェアが重要で、サービスを 1 時間停止すると余分なハードウェアを実行するコストが発生する場合は、サーバーを追加して正しくセットアップする価値があります。

また、AWS のサポートに料金を支払い、AWS のエンジニアと協力して、設計に高可用性の欠陥がないことを確認することをお勧めします。

私が議論した問題の要約: http://aws.amazon.com/message/67457/

于 2012-08-06T16:31:22.300 に答える