あるSaaS企業は、マルチテナントアプリケーションのバックエンドデータベースに Amazon RDS MySQL (db.r5.4xlarge、シングルAZ) を使用しています。負荷は平日9〜18時に高く(同時クエリ数100以上)、夜間・週末はほぼゼロになります。また月に数回、プロモーション期間中に急激な負荷スパイクが発生します。コストを実際の使用量に連動させながら、スパイク時の可用性も確保したい場合、最もコスト効率の高いデータベース構成はどれですか?
Amazon Aurora Serverless v2 は、実際のデータベース負荷に応じて ACU(Aurora Capacity Units)を自動でスケールアップ・ダウンします。最小 0.5 ACU まで縮小できるため、負荷がほぼゼロになる夜間・週末のコストを大幅に削減できます。スパイク時は数秒以内にスケールアップするため可用性も維持されます。課金は ACU の使用量を秒単位で計算するため、アイドル時間が長いこのユースケースに最適です。MySQL 互換であるためアプリケーションの変更も最小限で済みます。 選択肢Bの RDS のダウンサイズと夜間停止スケジュールは、停止中に可用性がゼロになるため夜間の緊急対応や定期バッチが実行できません。停止中も EBS ストレージ費用は発生し続けるため、コスト削減効果も限定的です。 選択肢Cの RDS リードレプリカは読み取りスケールアウトには有効ですが、各レプリカはプライマリと同等の費用が時間単位で発生するため、夜間・週末のアイドルコストはむしろ増加します。 選択肢Dの DynamoDB はリレーショナルデータモデルと互換性のない NoSQL サービスです。MySQL からの移行にはデータモデルとアプリケーションコードの大幅な変更が必要であり、現実的ではありません。