ルーティングコントロールのコンポーネント - Amazon Application Recovery Controller (ARC)

ルーティングコントロールのコンポーネント

次の図は、ARC のルーティングコントロール機能をサポートするコンポーネントの例を示しています。ここに示されているルーティングコントロール (1 つのコントロールパネルにグループ化) では、2 つのリージョンそれぞれに配置する 2 つのアベイラビリティーゾーンへのトラフィックを管理できます。ルーティングコントロールの状態を更新すると、ARC は Amazon Route 53 のヘルスチェックを変更し、DNS トラフィックを別のセルにリダイレクトします。ルーティングコントロールに設定する安全ルールは、フェイルオープンシナリオやその他の意図しない結果を防ぐのに役立ちます。

ARC でルーティングコントロールをサポートするコンポーネント

以下は、ARC におけるルーティングコントロール機能のコンポーネントです。

クラスター

クラスターは、5 つの冗長なリージョンエンドポイントのセットであり、これに対して API コールを開始し、ルーティングコントロールの状態を更新したり取得したりします。クラスターにはデフォルトのコントロールパネルがあり、1 つのクラスターで複数のコントロールパネルと複数のルーティングコントロールをホストできます。

ルーティングコントロール

ルーティングコントロールは、クラスター上でホストされるシンプルなオン/オフスイッチであり、セルに出入りするクライアントトラフィックのルーティングを制御します。ルーティングコントロールを作成するときは、Route 53 に ARC ヘルスチェックを追加してください。これにより、ARC でルーティングコントロールの状態を更新したときに、(アプリケーションの DNS レコードで構成されたヘルスチェックを使用して) トラフィックを再ルーティングできます。

ルーティングコントロールのヘルスチェック

ルーティングコントロールは Route 53 のヘルスチェックと統合されています。ヘルスチェックは、フェイルオーバーレコードなど、各アプリケーションレプリカのフロントにある DNS レコードと関連付けられています。ルーティングコントロールの状態を変更すると、ARC は対応するヘルスチェックを更新し、トラフィックをリダイレクトします (スタンバイレプリカへのフェイルオーバーなど)。

コントロールパネル

コントロールパネルには、関連する一連のルーティングコントロールがグループ化されています。1 つのコントロールパネルに複数のルーティングコントロールを関連付けることができ、そのコントロールパネルの安全ルールを作成することで、実行したトラフィックリダイレクトの更新が安全に行われるようにします。例えば、各アベイラビリティーゾーンの各ロードバランサーにルーティングコントロールを設定して、それらを同じコントロールパネルにグループ化できます。次に、安全ルール (「アサーションルール」) を追加して、意図しない「フェイルオープン」シナリオを回避するために、常に 1 つ以上のゾーン (ルーティングコントロールで表される) がアクティブ状態であるようにします。

デフォルトのコントロールパネル

クラスターを作成すると、ARC でデフォルトのコントロールパネルが作成されます。デフォルトでは、クラスターで作成したすべてのルーティングコントロールがデフォルトのコントロールパネルに追加されます。もしくは、独自のコントロールパネルを作成して、関連するルーティングコントロールをグループ化することもできます。

安全ルール

安全ルールは、リカバリアクションによってアプリケーションの可用性が誤って損なわれることがないように、ルーティングコントロールに追加するルールです。例えば、全体的な「オン/オフ」スイッチとして機能するルーティングコントロールを生成する安全ルールを作成できます。これにより、他の一連のルーティングコントロールを有効または無効にできます。

エンドポイント (クラスターエンドポイント)

ARC の各クラスターには、ルーティングコントロールの状態の設定や取得に使用できる 5 つのリージョナルエンドポイントがあります。エンドポイントにアクセスするプロセスでは、ARC がメンテナンスのためにエンドポイントを定期的に起動または停止することを前提としているため、エンドポイントに接続するまで各エンドポイントを続けて試す必要があります。エンドポイントにアクセスして現在のルーティングコントロールの状態 (オンまたはオフ) を取得したり、ルーティングコントロールの状態を変更してアプリケーションのフェイルオーバーをトリガーしたりします。