Q42 — AWS SAA-C03 第17章

第 42/89 問 | ← 第17章

Q1342. ある企業が、Amazon Aurora MySQLデータベースを使用するアプリケーションを開発しています。この企業は、新機能のテストのためにMySQLデータベースのスキーマを定期的に変更する予定です。これらのテストは、既存の本番データベースに影響を与えてはなりません。テスト完了後、開発者は変更内容を本番データベースに反映させる必要があります。このソリューションは、最小限のダウンタイムで実現しなければなりません。これらの要件を満たすソリューションはどれですか?

正解: B. 既存のAurora MySQLデータベースに基づいて読み取り専用レプリカを作成します。この読み取り専用レプリカに対してスキーマ変更を行い、テスト成功後にそのレプリカをプライマリに昇格させます。

解説

正解はBです。各選択肢を要件に基づいて検討します。■ 要件の再確認:・新機能のテストのため、本番データベースに影響を与えない状態でMySQLスキーマを定期的に変更可能であること。・テスト完了後、変更内容を最小限のダウンタイムで本番データベースに適用できること。■ 選択肢A:新しいステージングクラスターの作成は、本番への影響を防ぐ点では有効ですが、この選択肢には「変更を本番に反映する方法」や「ダウンタイムを最小化する手段」が一切記載されていません。手動でスキーマ変更を本番に適用する必要があり、複雑な変更の場合、長時間のダウンタイムや人為的ミスのリスクがあります。■ 選択肢B:読み取り専用レプリカは、本番(プライマリ)データベースとは分離されたテスト環境を提供し、本番への影響を完全に回避できます。また、Auroraでは、テスト完了後に読み取り専用レプリカをプライマリに昇格させる操作がサポートされており、このプロセスは通常数秒程度の短い中断(minimal downtime)で完了します。したがって、要件を完全に満たします。■ 選択肢C:ブルー/グリーンデプロイメントはアプリケーション層では有効ですが、RDBMSのスキーマ変更に適用するのは非現実的です。2つの独立したデータベース間のデータ同期・整合性維持・切り替え時のトランザクション保証など、極めて複雑かつリスクの高い運用が必要になります。データベース向けの標準的な手法ではありません。■ 選択肢D:Aurora MySQL(リレーショナルDB)とDynamoDB(NoSQL)は根本的に異なるデータモデルであり、スキーマ変更の概念や適用方法も異なります。また、アプリケーションのデータアクセス層を大幅に変更する必要があり、要件である「MySQLスキーマ変更を本番に反映する」という目的を達成できません。以上より、要件を満たす唯一のソリューションは選択肢Bです。