Q18 — AWS SAP-C02 第1章

第 18/75 問 | ← 第1章

Q93. ある企業が、非同期HTTPアプリケーションをAWS Lambda関数としてホストしています。このアプリケーションは、パブリックなAmazon API Gatewayエンドポイントから呼び出されます。Lambda関数およびAPI Gatewayエンドポイントは、us-east-1リージョンに配置されています。ソリューションアーキテクトは、このアプリケーションを別のAWSリージョンへのフェイルオーバーをサポートするように再設計する必要があります。これらの要件を満たすソリューションはどれですか?

正解: D. Lambda関数およびAPI Gatewayエンドポイントをus-west-2リージョンにデプロイします。Amazon Route 53でフェイルオーバールーティングポリシーを構成して、2つのAPI Gatewayエンドポイント間でトラフィックをルーティングします。

解説

非同期HTTPアプリケーション(AWS Lambda関数としてホスト)を別のAWSリージョンへフェイルオーバー可能にするための再設計には、選択肢Dが適切です。このソリューションでは、Lambda関数とAPI Gatewayエンドポイントの両方がus-west-2リージョンにデプロイされ、Amazon Route 53のフェイルオーバールーティングポリシーにより、us-east-1リージョンのエンドポイントが利用不可になった場合にus-west-2リージョンのエンドポイントへ自動的にトラフィックが切り替わります。これにより、リージョン単位の障害に対するフェイルオーバー機能が実現されます。現在、API Gatewayのデフォルトのエンドポイントタイプは「エッジ最適化APIエンドポイント」ですが、これはAmazon CloudFront経由でグローバルにアクセス可能であり、Lambda統合時は常に単一リージョンのLambda関数のみを呼び出します。そのため、Route 53によるアクティブ/スタンバイまたはアクティブ/アクティブ構成には不向きです。一方、「リージョナルAPIエンドポイント」は、APIエンドポイントを特定リージョン内に配置し、カスタムドメイン名もリージョンごとに一意となるため、各リージョンに完全なAPIコピーを展開し、Route 53でフェイルオーバーまたはアクティブ/アクティブ運用を行うことが可能です。選択肢Aは不適切です。API GatewayエンドポイントとLambda関数が異なるリージョンに存在するため、クロスリージョン呼び出しはAPI GatewayのLambda統合ではサポートされていません。選択肢Bは不適切です。SQSキューをAPI GatewayとLambdaの間に導入しても、他リージョンへのフェイルオーバー機能は提供されず、むしろ追加のレイテンシが発生します。選択肢Cは不適切です。AWS Global AcceleratorおよびApplication Load Balancerは、API Gatewayエンドポイントを直接ターゲットとして使用できません(Global AcceleratorはElastic IPまたはALB/Network Load Balancerをターゲットに指定可能ですが、API Gatewayエンドポイント自体は対応していません)。また、ALBはAPI Gatewayをバックエンドとしてサポートしておらず、この構成は技術的に実現できません。