マネージドデータベースとは?運用不要のデータベース
マネージドデータベースとは、クラウドプロバイダーがあなたに代わって運用するものです。プロビジョニング、バックアップ、パッチ適用、レプリケーション、フェイルオーバーが処理されるため、運用せずにデータベースを利用できます。
本番データベースの運用は負担が大きく、バックアップ、アップグレード、レプリケーション、スケーリング、フェイルオーバーがすべて完璧に機能する必要があります。マネージドデータベースサービス(RDS、Cloud SQL、Azure SQL、その他多数)はその運用負荷を引き受けます。あなたは connection string とデータベースを受け取り、プロバイダーが健全な状態を保ちます。
プロバイダーが担う範囲
- compute と storage のプロビジョニングとスケーリング。
- 自動バックアップと point-in-time リカバリ。
- パッチ適用とマイナーバージョンアップグレード。
- レプリケーション、フェイルオーバー、高可用性。
あなたが依然として担う範囲
schema、query、インデックス、データモデルの責任は引き続きあなたにあります。マネージドサービスはインフラを担いますが、アプリケーションの設計は担わないため、パフォーマンスは依然としてデータベースの使い方に左右されます。
接続とアクセス
提供された endpoint 経由で接続します。通常は認証情報または IAM ベースの認証を用い、セキュリティのためプライベートネットワーク内で行います。マネージドデータベースはクラウドの IAM と統合されるため、対応している場合はアプリや pipeline が静的パスワードなしで認証できます。
トレードオフ
マネージドデータベースはセルフホスティングよりコストが高く、低レベルの制御は少なくなりますが、膨大な運用の手間を省き、データ損失のリスクを減らします。ほとんどのチームにとって、この取引は十分に価値があります。
CI/CD における役割
pipeline は deploy の一ステップとして、マネージドデータベースに対して schema migration を実行します。多くの場合、ヘルスチェックとバックアップチェックによってゲートされます。エフェメラルなテスト用データベース(または環境ごとのマネージドインスタンス)により、CI は現実的なバックエンドに対して統合テストを実行でき、migration はバージョン管理されリリース時に自動適用されます。
重要なポイント
- マネージドデータベースは、バックアップ、パッチ適用、レプリケーション、フェイルオーバーをプロバイダーに委ねます。
- schema、query、データモデリングは依然としてあなたの責任です。
- pipeline はバージョン管理された migration を deploy の一環として適用します。