ストーリー
佐
佐藤CTO
“メンテナンスのため一時停止します”は許されない。24/7稼働のサービスではゼロダウンタイムでの移行が必須だ
ゼロダウンタイム移行の手法
Blue-Green Migration
Phase 1: Blue(旧DB)で稼働中、Green(新DB)を準備
Phase 2: 旧DB → 新DB へデータ同期(CDC)
Phase 3: トラフィックをGreen(新DB)に切替
Phase 4: 問題なければBlue(旧DB)を退役
Change Data Capture(CDC)
| ツール | 対応DB | 特徴 |
|---|
| Debezium | MySQL, PostgreSQL, MongoDB | Kafkaベース、リアルタイム |
| AWS DMS | RDS全般 | マネージド、低運用コスト |
| pg_logical | PostgreSQL | ネイティブ論理レプリケーション |
Online Schema Migration
| ツール | 説明 |
|---|
| gh-ost | MySQL: ゴーストテーブル方式、ロックなし |
| pgroll | PostgreSQL: バージョン管理付きスキーママイグレーション |
| expand-contract | パターン: カラム追加→データ移行→旧カラム削除 |
Expand-Contractパターン
Step 1 (Expand): 新カラム追加(NULLable)
Step 2: 新旧両方に書き込み(Dual Write)
Step 3: バックフィル(既存データを新カラムにコピー)
Step 4: 読み取りを新カラムに切替
Step 5 (Contract): 旧カラム削除
まとめ
| ポイント | 内容 |
|---|
| Blue-Green | データ同期で切替、ロールバック可能 |
| CDC | リアルタイムデータ同期の基盤技術 |
| Expand-Contract | スキーマ変更をゼロダウンタイムで実施 |
次のステップへ
次はデータ同期と整合性検証について学びます。
推定読了時間: 30分