Q35 — AWS SOA-C02 第1章
第 35/100 問 | ← 第1章
ある企業が最近アプリケーションを本番環境にデプロイしました。現在の本番環境は、アプリケーションのWebアプリケーションとMariaDBデータベースをホストする単一のAmazon EC2インスタンス上で動作しています。企業の方針では、すべてのIT本番環境は高可用性である必要があります。 この要件を満たすために、SysOps管理者は何を行うべきですか?
- A. データベースをEC2インスタンスからAmazon RDS for MariaDB Multi-AZ DBインスタンスに移行します。アプリケーションを、複数のAvailability ZoneにまたがるAuto Scalingグループ内のEC2インスタンスで実行します。EC2インスタンスをロードバランサーの後ろに配置します。 ✓
- B. データベースをEC2インスタンスからAmazon RDS for MariaDB Multi-AZ DBインスタンスに移行します。AWS Application Migration Serviceを使用してアプリケーションをAWS Lambda関数に変換します。Lambda関数に対してMulti-AZオプションを指定します。
- C. データベースを別のAvailability Zoneにある別のEC2インスタンスにコピーします。アプリケーションEC2インスタンスおよびデータベースEC2インスタンスのAmazon Machine Image(AMI)をAWS Backupで作成します。1分ごとにヘルスチェックを実行するAWS Lambda関数を作成します。障害発生時に、Lambda関数がAWS Backupで作成されたAMIから新しいEC2インスタンスを起動するように構成します。
- D. データベースを別のEC2インスタンスに移行します。アプリケーションEC2インスタンスを、複数のAvailability ZoneにまたがるAuto Scalingグループに配置します。データベースEC2インスタンスからAmazon Machine Image(AMI)を作成します。このAMIを使用して、別のAvailability Zoneに2番目のデータベースEC2インスタンスを起動します。2番目のデータベースEC2インスタンスを停止状態にします。2番目のデータベースEC2インスタンスを待機用として使用します。
正解: A. データベースをEC2インスタンスからAmazon RDS for MariaDB Multi-AZ DBインスタンスに移行します。アプリケーションを、複数のAvailability ZoneにまたがるAuto Scalingグループ内のEC2インスタンスで実行します。EC2インスタンスをロードバランサーの後ろに配置します。
解説
AWSにおける高可用性設計では、通常、リソースを複数のAvailability Zone(AZ)に分散させ、マネージドサービスを活用して運用負荷を軽減することが求められます。現在のアーキテクチャでは、Webアプリケーションとデータベースが単一のEC2インスタンスに共存しており、これが単一障害点となっています。AWSドキュメントによると、RDS Multi-AZは、プライマリとスタンバイのレプリカを自動的に管理し、データベース層の障害発生時に自動フェイルオーバーを実行することで高可用性を確保します。アプリケーション層の高可用性を実現するには、Auto Scalingグループを複数のAZに跨らせてインスタンスを展開し、ロードバランサーでトラフィックを分散させる必要があります。選択肢Aは、データベース層(RDS Multi-AZ)およびアプリケーション層(Auto Scaling+ロードバランサー)の両方の高可用性要件を同時に満たしており、ベストプラクティスに合致します。他の選択肢は、完全な自動跨AZ冗長性を提供しなかったり、誤ったサービス機能(例:LambdaのMulti-AZオプションは存在しない)を用いたりしています。