コンピューティングレイヤーのリクエストルーティング - AWS 規範ガイダンス

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

コンピューティングレイヤーのリクエストルーティング

次の図に示すように、コンピューティングレイヤーリクエストルーティングでは、コンピューティングレイヤーで実行されるコードによって、リクエストをローカルで処理するか、別のリージョンで実行されているそれ自体のコピーに渡すかが決まります。1 つのリージョンへの書き込みモードを使用すると、コンピューティングレイヤーはアクティブなリージョンではないことを検出し、すべての書き込みオペレーションを別のリージョンに転送しながらローカル読み取りオペレーションを許可する場合があります。このコンピューティングレイヤーコードは、どのリージョンがどのデータに対してアクティブであるかを指定する最新の設定に基づいて、データトポロジとルーティングルールを認識し、確実に適用する必要があります。リージョン内の外側のソフトウェアスタックは、読み取りリクエストと書き込みリクエストがマイクロサービスによってどのようにルーティングされるかを認識する必要はありません。堅牢な設計では、受信側リージョンが書き込みオペレーションの現在のプライマリであるかどうかを検証します。プライマリでない場合は、グローバル状態を修正する必要があることを示すエラーが生成されます。プライマリリージョンが変更中の場合、受信側リージョンが書き込みオペレーションをしばらくバッファリングすることもあります。いずれの場合も、リージョン内のコンピューティングスタックはローカルの DynamoDB エンドポイントにのみ書き込みますが、コンピューティングスタック間で相互に通信する可能性があります。

コンピューティングレイヤーのリクエストルーティング

Vanguard グループは、re:Invent 2022 で説明されているように、グローバルオーケストレーションとステータスツール (GOaST) と呼ばれるシステムと、グローバルマルチリージョンライブラリ (GMRlib) と呼ばれるライブラリをこのルーティングプロセスに使用します。follow-the-sunの単一プライマリモデルを使用します。GOaST は、前のセクションで説明した ARC ルーティングコントロールと同様に、グローバル状態を維持します。グローバルテーブルを使用して、プライマリリージョンであるリージョンと、次のプライマリスイッチがいつスケジュールされるかを追跡します。すべての読み取りおよび書き込みオペレーションは、GOaST と調整する GMRlib を経由します。GMRlib では、読み取りオペレーションをローカルで低レイテンシーで実行できます。書き込みオペレーションの場合、GMRlib はローカルリージョンが現在のプライマリリージョンかどうかを確認します。プライマリリージョンである場合、書き込みオペレーションは直接完了します。そうでない場合、GMRlib は書き込みタスクをプライマリリージョンの GMRlib に転送します。受信側のライブラリは、自身もプライマリリージョンであると認識したことを確認します。そうでない場合は、エラーを生成します。これにより、グローバル状態の伝播が遅延します。このアプローチでは、リモート DynamoDB エンドポイントに直接書き込まないため、検証上の利点があります。