Q57 — AWS SAA-C03 第1章

第 57/65 問 | ← 第1章

Q57. ある企業が、メッセージ処理システムをAWSに最近移行しました。このシステムは、Amazon EC2インスタンス上で実行されるActiveMQキューにメッセージを受信します。メッセージは、別のAmazon EC2インスタンス上で実行されるコンシューマーアプリケーションによって処理され、その結果は、さらに別のAmazon EC2インスタンス上で実行されるMySQLデータベースに書き込まれます。同社は、このアプリケーションを高い可用性とともに、運用の複雑さを最小限に抑えることを求めています。 どのアーキテクチャが、最も高い可用性を提供しますか?

正解: D. 2つの可用性ゾーンにアクティブ/スタンバイブローカーを構成したAmazon MQを使用します。2つの可用性ゾーンにまたがるコンシューマー用EC2インスタンスのAuto Scalingグループを追加します。Multi-AZ対応のAmazon RDS for MySQLを使用します。

解説

選択肢D:2つの可用性ゾーンにアクティブ/スタンバイブローカーを構成したAmazon MQを使用し、2つの可用性ゾーンにまたがるコンシューマー用EC2インスタンスのAuto Scalingグループを追加し、Multi-AZ対応のAmazon RDS for MySQLを使用する。 このアーキテクチャは、運用の複雑さを抑えつつ、メッセージ処理システムに最も高い可用性を提供します。その理由は以下のとおりです。 1. アクティブ/スタンバイブローカー構成のAmazon MQ:Amazon MQは、マネージド型のメッセージブローカーサービスです。2つの可用性ゾーンにアクティブ/スタンバイブローカーを構成することで、メッセージキューの可用性が確保されます。いずれかの可用性ゾーンが利用不能になった場合でも、他方の可用性ゾーンからサービスを継続でき、中断なく動作を続けられます。 2. コンシューマー用EC2インスタンスのAuto Scalingグループ:Auto Scalingグループを活用することで、需要に応じてコンシューマー用EC2インスタンスの数を自動的にスケールできます。また、Auto Scalingグループを2つの可用性ゾーンにまたがって設定することで、メッセージ処理の冗長性とフォールトトレランスが確保されます。インスタンスが障害を起こしたり利用不能になったりした場合、Auto Scalingグループが自動的に新しいインスタンスを起動して所定の数を維持します。 3. Multi-AZ対応のAmazon RDS for MySQL:Multi-AZを有効化したAmazon RDS for MySQLを使用すると、MySQLデータベースの可用性が大幅に向上します。Multi-AZでは、データベースが自動的に別の可用性ゾーンの待機インスタンスにレプリケートされます。プライマリデータベースに障害が発生した場合、待機インスタンスが自動的にプライマリとして昇格され、ダウンタイムを最小限に抑え、データの整合性も保証されます。 これらのコンポーネントを組み合わせることで、アプリケーションスタックの各レイヤー(メッセージキュー、メッセージ処理、データベース)において、高い可用性とフォールトトレランスが実現されます。 ・メッセージキュー:可用性ゾーンをまたいだAmazon MQのアクティブ/スタンバイブローカーにより、キューの可用性が確保されます。 ・メッセージ処理:可用性ゾーンをまたぐAuto Scalingグループにより、処理ワークロードの分散、冗長性、およびスケーラビリティが提供されます。 ・データベース:Multi-AZ対応のAmazon RDS for MySQLにより、データベースの高可用性およびプライマリインスタンス障害時の自動フェイルオーバーが保証されます。 このアーキテクチャは、最も高い可用性を提供しつつ、運用の複雑さを最小限に抑えます。Amazon MQやAmazon RDSといったマネージドサービスを活用することで、手動による設定や管理作業が大幅に削減されます。