Q40 — AWS SAP-C02 第2章
第 40/75 問 | ← 第2章
Q190. ある企業が、オンプレミス環境で3層構成のWebアプリケーションをホスティングしています。最近のトラフィック急増によりダウンタイムが発生し、多額の財務的損失を被ったため、経営陣はこのアプリケーションをAWSに移行するよう指示しました。アプリケーションは.NETで記述されており、MySQLデータベースに依存しています。ソリューションアーキテクトは、1日20万ユーザーという需要に対応できる、スケーラブルかつ高可用性のソリューションを設計しなければなりません。 適切なソリューションを設計するために、ソリューションアーキテクトが取るべき手順はどれですか?
- A. AWS Elastic Beanstalk を使用して、Webサーバー環境とAmazon RDS MySQL Multi-AZ DBインスタンスを含む新しいアプリケーションを作成します。この環境は、複数の可用性ゾーン(AZ)にまたがるAmazon EC2 Auto Scalingグループの前にNetwork Load Balancer(NLB)を起動します。会社のドメインからNLBへトラフィックをルーティングするために、Amazon Route 53のエイリアスレコードを使用します。
- B. AWS CloudFormation を使用して、3つの可用性ゾーンにまたがるAmazon EC2 Auto Scalingグループの前にApplication Load Balancer(ALB)を配置したスタックを起動します。このスタックは、削除ポリシーとして「Retain(保持)」を指定したAmazon Aurora MySQL DBクラスターのMulti-AZ展開も起動します。会社のドメインからALBへトラフィックをルーティングするために、Amazon Route 53のエイリアスレコードを使用します。 ✓
- C. AWS Elastic Beanstalk を使用して、2つの別々のリージョンにまたがる自動スケーリング可能なWebサーバー環境を作成し、各リージョンにApplication Load Balancer(ALB)を配置します。さらに、クロスリージョン読み取り専用レプリカを備えたAmazon Aurora MySQL DBクラスターのMulti-AZ展開を作成します。Amazon Route 53のジオプロキシミティルーティングポリシーを使用して、2つのリージョン間でトラフィックをルーティングします。
- D. AWS CloudFormation を使用して、3つの可用性ゾーンにまたがるAmazon ECSクラスター(スポットインスタンス)の前にApplication Load Balancer(ALB)を配置したスタックを起動します。このスタックは、削除ポリシーとして「Snapshot(スナップショット)」を指定したAmazon RDS MySQL DBインスタンスも起動します。会社のドメインからALBへトラフィックをルーティングするために、Amazon Route 53のエイリアスレコードを使用します。
正解: B. AWS CloudFormation を使用して、3つの可用性ゾーンにまたがるAmazon EC2 Auto Scalingグループの前にApplication Load Balancer(ALB)を配置したスタックを起動します。このスタックは、削除ポリシーとして「Retain(保持)」を指定したAmazon Aurora MySQL DBクラスターのMulti-AZ展開も起動します。会社のドメインからALBへトラフィックをルーティングするために、Amazon Route 53のエイリアスレコードを使用します。
解説
選択肢Bが、MySQLデータベースに依存する3層構成Webアプリケーション向けに、スケーラブルかつ高可用性のソリューションを設計するという要件を最も適切に満たす解決策です。 AWS CloudFormationを用いて、3つの可用性ゾーンにまたがるAmazon EC2 Auto Scalingグループの前にApplication Load Balancer(ALB)を配置するスタックを起動することで、Webサーバー層の高可用性とスケーラビリティが確保されます。また、「Retain」削除ポリシーを指定したAmazon Aurora MySQL DBクラスターのMulti-AZ展開により、データベース層の高可用性と耐久性が実現されます。さらに、Amazon Route 53のエイリアスレコードを用いて、会社のドメインからALBへトラフィックをルーティングすることで、Webサーバーへの効率的なトラフィック配信が可能になります。 選択肢Aは、データの保護と常時可用性を保証するための耐久性のあるデータベースソリューションを含んでおらず、これは極めて重要です。Elastic Beanstalkの利用は可能ですが、RDS Multi-AZやAuroraといったより堅牢なデータベースソリューションと組み合わせる必要があります。 選択肢Cは、2つのリージョンを利用するため、大規模運用における予期せぬ複雑さを招く可能性があります。また、クロスリージョン読み取り専用レプリカの導入は追加のレイテンシーを引き起こし、パフォーマンスに悪影響を及ぼす可能性があります。 選択肢Dは、Webサーバー層にECSおよびスポットインスタンスを採用していますが、.NETアプリケーションには必ずしも最適ではなく、追加の複雑さを招く可能性があります。さらに、削除ポリシーが「Snapshot」のRDSインスタンスは、Multi-AZ展開と比べて耐久性・可用性の水準が低くなります。 総合的に見て、選択肢Bは、Aurora Multi-AZによる高可用性・耐久性の高いデータベースソリューションと、ALB+EC2 Auto ScalingグループによるWebサーバー層の高可用性・スケーラビリティを両立させ、最も堅牢かつ適切なソリューションを提供します。