Q57 — AWS SAP-C02 第1章
第 57/75 問 | ← 第1章
Q132. ある企業は、RESTベースのAPIを通じて天気データを複数の顧客に提供しています。このAPIはAmazon API Gatewayでホストされており、各API操作に対して異なるAWS Lambda関数と統合されています。DNSにはAmazon Route 53を使用しており、リソースレコード「weather.example.com」が作成されています。APIのデータはAmazon DynamoDBテーブルに格納されています。同社は、APIが別のAWSリージョンへフェイルオーバーできるようにするソリューションを必要としています。これらの要件を満たすソリューションはどれですか?
- A. 新しいリージョンにLambda関数の新しいセットをデプロイします。API Gateway APIをエッジ最適化APIエンドポイントに更新し、両方のリージョンのLambda関数をターゲットとして指定します。DynamoDBテーブルをグローバルテーブルに変換します。
- B. 別のリージョンに新しいAPI Gateway APIおよびLambda関数をデプロイします。Route 53のDNSレコードをマルチバリュー応答(multivalue answer)に変更し、両方のAPI Gateway APIを応答に追加します。ターゲットのヘルスモニタリングを有効化します。DynamoDBテーブルをグローバルテーブルに変換します。
- C. 別のリージョンに新しいAPI Gateway APIおよびLambda関数をデプロイします。Route 53のDNSレコードをフェイルオーバーレコードに変更します。ターゲットのヘルスモニタリングを有効化します。DynamoDBテーブルをグローバルテーブルに変換します。 ✓
- D. 新しいリージョンに新しいAPI Gateway APIをデプロイします。Lambda関数をグローバル関数に変更します。Route 53のDNSレコードをマルチバリュー応答に変更し、両方のAPI Gateway APIを応答に追加します。ターゲットのヘルスモニタリングを有効化します。DynamoDBテーブルをグローバルテーブルに変換します。
正解: C. 別のリージョンに新しいAPI Gateway APIおよびLambda関数をデプロイします。Route 53のDNSレコードをフェイルオーバーレコードに変更します。ターゲットのヘルスモニタリングを有効化します。DynamoDBテーブルをグローバルテーブルに変換します。
解説
要件を満たすソリューションは、選択肢Cです。まず、別のAWSリージョンに新しいAPI Gateway APIおよびLambda関数をデプロイすることで、各リージョンに独立したAPIインスタンスとそのLambda関数、およびDynamoDBテーブルのコピーが用意されます。次に、Route 53のDNSレコードをフェイルオーバーレコードに変更することで、プライマリエンドポイントに障害や障害が発生した場合に自動的にセカンダリエンドポイントへトラフィックを切り替えることができます。さらに、ターゲットのヘルスモニタリングを有効化することで、両方のエンドポイントの健全性を監視し、健全なターゲットのみにトラフィックをルーティングできます。選択肢Aでは、新しいリージョンへのLambda関数のデプロイに加え、DynamoDBテーブルのリージョン間同期方法が明確ではなく、追加の構成・運用負荷が発生します。選択肢Bでは、Route 53のマルチバリュー応答方式は、意図するフェイルオーバー動作ではなく、単に複数の正常なエンドポイントに同時トラフィックを分散させるものであり、障害時の自動切り替えを保証しません。また、DynamoDBのレプリケーション方法についても言及がありません。選択肢Dは、AWSには「グローバルLambda関数」という概念は存在しないため、無効なソリューションです。したがって、選択肢Cは、最小限の運用負荷で、DynamoDBグローバルテーブルによるデータ整合性を確保しつつ、APIのリージョン間フェイルオーバーを実現するシンプルかつ効果的なソリューションです。