Q98 — AWS SAA-C03 第15章
第 98/100 問 | ← 第15章
Q1198. ある会社が、単一のAmazon EC2 On-Demand Instance上でウェブサイト分析アプリケーションをホストしています。この分析アプリケーションは非常に耐障害性が高く、ステートレスモードで動作するように設計されています。同社は、繁忙期にアプリケーションのパフォーマンスが低下し、5xxエラーが発生していることに気づきました。同社は、アプリケーションをシームレスにスケールさせる必要があります。これらの要件を最もコスト効率よく満たす解決策はどれですか?
- A. ウェブアプリケーションのAmazon Machine Image(AMI)を作成します。このAMIを使用して2台目のEC2 On-Demand Instanceを起動します。Application Load Balancerを使用して、2台のEC2インスタンス間でトラフィックを分散させます。 ✓
- B. ウェブアプリケーションのAmazon Machine Image(AMI)を作成します。このAMIを使用して2台目のEC2 On-Demand Instanceを起動します。Amazon Route 53のウェイト付きルーティングを使用して、2台のEC2インスタンス間でトラフィックを分散させます。
- C. EC2インスタンスを停止してインスタンスタイプを変更するAWS Lambda関数を作成します。CPU使用率が75%を超えたときにLambda関数を呼び出すAmazon CloudWatchアラームを作成します。
- D. ウェブアプリケーションのAmazon Machine Image(AMI)を作成し、これを起動テンプレートに適用します。この起動テンプレートを含むAuto Scalingグループを作成します。起動テンプレートをSpot Fleetで使用するよう設定し、Auto ScalingグループにApplication Load Balancerをアタッチします。
正解: A. ウェブアプリケーションのAmazon Machine Image(AMI)を作成します。このAMIを使用して2台目のEC2 On-Demand Instanceを起動します。Application Load Balancerを使用して、2台のEC2インスタンス間でトラフィックを分散させます。
解説
要件を満たすためには、繁忙期におけるパフォーマンス低下と5xxエラーに対処しつつ、アプリケーションをシームレスかつコスト効率よくスケールさせる必要があります。最も適切な解決策は以下の通りです。 A. ウェブアプリケーションのAMIを作成し、これを使って2台目のEC2 On-Demand Instanceを起動。Application Load Balancer(ALB)で2台のEC2インスタンス間で負荷を分散。 分析: ・耐障害性とスケーラビリティ:アプリケーションは非常に耐障害性が高く、ステートレスであるため、水平方向のスケーリング(追加インスタンスの導入)が容易です。AMIを利用すれば、一貫性と迅速性を保った追加インスタンスのデプロイが可能です。 ・負荷分散:Application Load Balancer(ALB)を用いることで、複数のEC2インスタンスにトラフィックを均等に分散でき、単一インスタンスの過負荷を防ぎ、ピーク時のパフォーマンス低下および5xxエラーの発生リスクを低減できます。 ・コスト効率:本ソリューションではOn-Demand Instanceを活用しますが、これは他の選択肢(例:中断リスクのあるSpot Instanceや、過度に複雑な構成)と比較して、コストと信頼性のバランスが優れています。予測可能なスケーリングを必要とする高耐障害性・ステートレスなアプリケーションには、On-Demand Instanceが最適です。 他の選択肢が不適切な理由: B. Amazon Route 53のウェイト付きルーティング:Route 53によるトラフィック分散は可能ですが、EC2インスタンス間のロードバランシングとしてはALBほど効率的・柔軟ではありません。ALBはヘルスチェック、セッションスティッキネス、SSL終端など高度な機能を提供し、ウェブ分析アプリケーションにとって有益です。 C. AWS Lambdaでインスタンスを停止・変更:これは「シームレスなスケーリング」を実現しません。インスタンスの停止と再起動は手動的・遅延を伴うプロセスであり、繁忙期の即時的なスケーリングニーズに対応できません。また、複数インスタンス間での負荷分散も実現しません。 D. Spot Fleetを用いたAuto Scalingグループ:Spot Instanceはコスト効率が高いものの、AWSによる任意の中断が発生する可能性があり、高可用性を要求するアプリケーションには不向きです。中断によりパフォーマンス劣化や5xxエラーが再発するリスクがあり、ステートレスであっても、そのような中断への耐性がアプリケーションに明示的に組み込まれていない限り推奨されません。したがって、シームレスかつ信頼性の高いスケーリングには、On-Demand Instanceがより適しています。