アプリケーションをアマゾンウェブサービスに移行することを検討しています。すべてのEC2インスタンスを2つのアベイラビリティーゾーン間でミラーリングする計画です。データ転送コストのため、私たちは単一のAWSリージョン(オレゴン)に滞在します。
複数のAZは、アプリケーションサーバーとデータベースサーバーの単一障害点を取り除きますが、ELBはどうでしょうか。 2つのAZ間でトラフィックを分散する単一のELBがある場合、ELBもこれらの2つのAZ間でホストされますか?
ELBがSPoFになるのを防ぐためにAmazonは何をしますか?
基本的に、ELBはEC2インスタンスの単なるコレクションです。 ELBを作成する の場合は、ロードバランサーを配置するアベイラビリティーゾーンを指定します。ロードバランサーを構成するインスタンスがそれらのゾーンに作成されます。ここで単一障害点を回避する方法は、DNSルックアップを実行するときに複数のIPアドレスを返すことです。例えば:
接続を確立するために使用するIPアドレスを選択するのはクライアントの責任です。 IPアドレスは、DNSルックアップから常に同じ順序で返されるとは限りません。クライアントは、最初の試行で接続できない場合、代替IPアドレスで再試行できます。
ELBのDNSレコードのTTLは60秒しかありません。つまり、ELBインスタンスが停止して置き換えられた場合、DNSはどこでもかなり迅速に更新されます。
実際にはSPoFになる可能性がありますが、同じリージョン内のSPoFになると思います。
AWSがRoute 53ヘルスチェックを使用して、異常なELBで終了するトラフィックを検出して再ルーティングすることを提案しているのはこのためです。
Amazon Route 53ヘルスチェックとDNSフェイルオーバー機能を使用して、Elastic Load Balancerの背後で実行されているアプリケーションの可用性を強化できます。ロードバランサーに登録されている正常なEC2インスタンスがない場合、またはロードバランサー自体が正常でない場合。
自動スケーリンググループを作成することで、単一のAZ SPoFを回避できます。単一のELBがX係数を満たさない場合、それが負荷や応答時間などによるものかどうかにかかわらず、新しいELBが作成されます。 ELBは基本的に、独自のAWSコードを実行するEC2インスタンスです。