Q20 — AWS SAP-C02 第1章
第 20/75 問 | ← 第1章
Q95. ある企業が、モバイルアプリ向けのモノリシックなRESTベースAPIを、VPC内のパブリックサブネット上にある5台のAmazon EC2インスタンスでホスティングしています。モバイルクライアントは、Amazon Route 53でホストされているドメイン名を使用してこのAPIに接続します。同社は、すべてのEC2インスタンスのIPアドレスを用いて、Route 53のマルチバリュー応答ルーティングポリシーを作成しました。しかし最近、アプリケーションは急激かつ大規模なトラフィック増加に見舞われ、その負荷に耐えられなくなっています。ソリューションアーキテクトは、アプリケーションが新たな変動的な負荷に対応できるようにするソリューションを実装する必要があります。これらの要件を満たす中で、**最も運用オーバーヘッドが少ない**ソリューションはどれでしょうか?
- A. APIを個別のAWS Lambda関数に分割し、バックエンドとしてLambda統合を有効にしたAmazon API Gateway REST APIを構成します。Route 53レコードを更新して、API Gatewayのエンドポイントを指すようにします。 ✓
- B. APIロジックをコンテナ化し、Amazon Elastic Kubernetes Service(Amazon EKS)クラスターを作成します。EKSクラスター上でAmazon EC2を使用してコンテナを実行し、Kubernetes Ingressを作成します。Route 53レコードを更新して、Kubernetes Ingressを指すようにします。
- C. Auto Scalingグループを作成し、すべてのEC2インスタンスをそのグループに配置します。CPU使用率に基づくスケーリングアクションをAuto Scalingグループに設定します。さらに、Auto Scalingグループの変更を検知してRoute 53レコードを自動更新するAWS Lambda関数を作成します。
- D. APIの前にApplication Load Balancer(ALB)を作成し、EC2インスタンスをVPC内のプライベートサブネットに移動します。ALBのターゲットとしてEC2インスタンスを登録します。Route 53レコードを更新して、ALBのDNS名を指すようにします。
正解: A. APIを個別のAWS Lambda関数に分割し、バックエンドとしてLambda統合を有効にしたAmazon API Gateway REST APIを構成します。Route 53レコードを更新して、API Gatewayのエンドポイントを指すようにします。
解説
モノリシックなRESTベースAPIが新たな変動的な負荷に対応できるよう、かつ**運用オーバーヘッドを最小限に抑える**には、以下のソリューションが最適です。 A. APIを個別のAWS Lambda関数に分割し、Lambda統合を有効にしたAmazon API Gateway REST APIを構成し、Route 53レコードをAPI Gatewayのエンドポイントへ更新する。 Lambda関数への分割により、各関数が特定のエンドポイントや機能を担当し、リソース配分とスケーリングの効率性が向上します。また、Lambdaは自動スケーリングを備えており、トラフィックの急増にも即座に対応可能です。API Gatewayは、受信リクエストを適切なLambda関数へルーティングするフロントエンドとして機能します。Route 53レコードをAPI Gatewayへ向けることで、クライアントトラフィックは自動的にサーバーレスインフラへ誘導されます。 このアプローチでは、EC2インスタンスのプロビジョニング・管理・スケーリングといった運用作業が不要となり、運用オーバーヘッドが最小限に抑えられます。 したがって、最も運用オーバーヘッドが少ないソリューションは、APIを個別のAWS Lambda関数に分割し、Amazon API Gateway REST API(Lambda統合)を構成し、Route 53レコードをAPI Gatewayへ更新することです。