ある企業が、Amazon Aurora PostgreSQL に対して複雑な結合クエリを含む分析ワークロードを定期的に実行している。分析クエリが Aurora プライマリインスタンスの CPU を大幅に消費し、OLTP パフォーマンスに影響している。Aurora の機能だけを使ってこの問題を解決したい。最も適切な方法はどれか。
- A. Aurora Multi-Master を使って複数のプライマリで書き込みと読み取りを分散する。
- B. Aurora PostgreSQL のクラスターに Aurora Replica を追加し、分析クエリはレプリカのエンドポイントに向けるよう接続文字列を変更する。
- C. Aurora のバックトラック機能を使って分析クエリ実行前の状態に戻す。
- D. Aurora プライマリインスタンスをより大きいインスタンスタイプに変更する。
解答と解説を見る
正解: B
Aurora Replica を追加してレプリカのエンドポイント(またはリーダーエンドポイント)を分析クエリの接続先として使用することで、OLTP クエリはプライマリで処理し、分析クエリはレプリカで処理するという分離が実現できる。Aurora Replica はプライマリとほぼリアルタイムでデータが同期され(通常数十ミリ秒以内)、レプリカへの接続文字列変更のみでコード変更を最小限に抑えられる。選択肢DのAurora インスタンスのスケールアップはコスト増加が大きく、分析クエリと OLTP が同じプライマリを使う問題の根本解決にはならない。選択肢CのAurora バックトラックはある時点への状態ロールバック機能であり、クエリパフォーマンスの分離とは全く関係がない。選択肢AのAurora Multi-Master は Aurora MySQL でのみ利用可能(PostgreSQL には非対応)であり、また書き込みスケーリングのための機能で今回の要件(読み取り/分析の分離)とは異なる。
📚 関連サービスの解説: Amazon Aurora