Q9 — AWS SAA-C03 第17章

第 9/89 問 | ← 第17章

Q1309. ある企業では、汎用インスタンスタイプのAmazon RDS for MySQL DBインスタンスを運用しています。このDBインスタンスは、本番アプリケーションの一部として、2つの可用性ゾーン(AZ)にまたがるMulti-AZ構成で設定されています。企業の財務チームは、レポート生成のためにこのDBインスタンスに対してSQLクエリを実行する必要があります。しかし、顧客から、レポート生成中にアプリケーションのパフォーマンスが著しく低下しているという報告が寄せられています。ソリューションアーキテクトは、このレポート生成ジョブがDBインスタンスに与える影響を最小限に抑える必要があります。これらの要件を満たすソリューションはどれですか?

正解: C. RDSの読み取り専用レプリカ(Read Replica)を追加し、レポート生成ジョブをそのレプリカのエンドポイントに対してクエリを実行するよう更新します。

解説

本番環境のAmazon RDS for MySQL DBインスタンスに対するレポート生成クエリの影響を最小限に抑える最も適切なソリューションは、選択肢Cです:「RDSの読み取り専用レプリカを追加し、レポート生成ジョブをそのレプリカのエンドポイントに対してクエリを実行するよう更新する」。 ■ 選択肢Cが正しい理由: ・レポートワークロード向けの読み取り専用レプリカ Amazon RDSの読み取り専用レプリカは、プライマリDBインスタンスから非同期でデータを複製する読み取り専用のコピーであり、レポート作成や分析など、読み取り負荷の高いワークロードをオフロードするために設計されています。レポートクエリをレプリカに転送することで、長時間実行されるクエリやリソースを大量に消費するクエリによる本番ワークロードへの性能影響を完全に分離できます。また、読み取り専用レプリカはMulti-AZ対応(必須ではありませんが)であり、必要に応じてレポート用途の高可用性も確保可能です。 ・コスト効率の高いスケーリング 読み取り専用レプリカは、プライマリDBインスタンスと同じインスタンスタイプを利用できますが、独立してスケール可能です(例:レポート処理により多くのリソースが必要な場合、レプリカのインスタンスタイプをアップグレード)。一方、プライマリインスタンス自体をアップグレードする選択肢Dと異なり、レプリカはレポート専用のリソースにのみ投資できるため、コスト最適化が図れます。 ・アーキテクチャのシンプルさ Amazon RDS Proxy(選択肢A)と異なり、読み取り専用レプリカは接続管理ロジックの大幅な変更を必要としません(ただし、レポートジョブの接続先エンドポイントを更新する必要があります)。 ・選択肢B(3つの可用性ゾーン)は、Amazon RDSではサポートされていません(Multi-AZは最大2つのAZのみ対応)。 ■ 他の選択肢が不適切な理由: A. Amazon RDS Proxy:RDS Proxyは、接続プーリングなどの接続管理機能を強化しますが、読み取りワークロードの分離には寄与しません。レポートクエリは依然としてプライマリDBインスタンス上で実行され、パフォーマンス問題を引き起こします。マイクロサービスなどからの接続数急増への対応には有効ですが、読み書きワークロードの分離には不適です。 B. 3つの可用性ゾーン:Amazon RDSはMulti-AZ構成で3つのAZをサポートしておらず、最大でも2つのAZ(1つはプライマリ、1つはスタンバイ)のみです。仮にサポートされていたとしても、これは障害復旧能力の向上を目的としており、レポートクエリによる本番インスタンスへの負荷低減には一切寄与しません。 D. メモリ最適化インスタンスタイプへの変更:メモリ最適化インスタンス(例:db.r6g.xlarge)へのアップグレードは、全体的なパフォーマンス向上に寄与する可能性がありますが、レポートクエリの実行先を分離するものではなく、依然としてプライマリインスタンス上でCPU/メモリリソースを消費し、本番ワークロードに影響を与え続けます。また、読み取り専用レプリカと比較してコストが高く、本ユースケースには不適切です。 ■ 選択肢Cの実装手順: 1. 読み取り専用レプリカの作成:RDSコンソールからプライマリDBインスタンスを選択し、「Create read replica」を選択。インスタンスタイプ、ストレージ、配置AZなどを設定。 2. レポート生成ジョブの更新:レポートアプリケーションのデータベース接続文字列を、読み取り専用レプリカのエンドポイントに変更。レポート実行前に、RDSコンソールの「Replication Status」でレプリカが完全に同期されていることを確認。 3. パフォーマンス監視:Amazon CloudWatchでReplicaLag(プライマリからの遅延時間)およびレプリカのCPUUtilizationを監視。遅延が大きい場合は、レプリカのインスタンスタイプをスケールアップしたり、Multi-AZ構成の読み取り専用レプリカを活用したりすることも検討。 ■ 結論: 選択肢C(読み取り専用レプリカ)は、Amazon RDS for MySQL上の本番トラフィックとレポートワークロードを分離する点で、最も効果的かつスケーラブル、かつコスト効率の高いソリューションです。