はじめに
2024 年 12 月 31 日に Aurora Serverless v1 はサポートを終了します。ここでは Aurora Serverless v2 へアップグレードする手順を紹介します。
Aurora Serverless v1 と v2 の違い
Aurora Serverless v1 と v2 は DB クラスターおよびインスタンスに大きな違いがあるので、事前に概念を確認してください。
- DB クラスター
- v1 は Serverless
- v2 は Provisioned
- DB インスタンス
- v1 は インスタンスが存在しない
- v2 は Serverless(Provisioned インスタンスと共存可)
以下記事の「Provisioned と Serverless の違い」が参考になります。
アップグレード前提
- Aurora Serverless v2 が対応するエンジンバージョン (Aurora PostgreSQL 13.12) を利用
- アップグレードにブルー/グリーンデプロイは利用しない
対応するエンジンバージョンおよびエンジンバージョンのアップグレード方法は以下を参照してください。
アップグレードパス
アップグレード手順の概要です。公式ドキュメントも確認してください。
- Aurora Serverless v1 DB クラスターをプロビジョニングされた DB クラスターに変換
- Aurora Serverless v2 リーダー DB インスタンスを DB クラスターに追加
- Aurora Serverless v2 DB インスタンスにフェイルオーバー
- リーダー DB インスタンスの追加(オプション)
- プロビジョニングされた DB インスタンスの削除(オプション)
アップグレード手順
Aurora Serverless v1 クラスターの用意
説明用に Severless v1 を用意します。AWS CLI を実行します。
2024 年 4 月現在、マネジメントコンソールから Aurora Serverless v1 を起動することはできません。
アクセスキー発行はせず、CloudShell, Cloud9, IAM ロールアタッチ済みの EC2 での実行をおすすめします。
aws rds create-db-cluster --db-cluster-identifier sample-cluster \
--engine aurora-postgresql --engine-version 13.12 \
--engine-mode serverless \
--scaling-configuration MinCapacity=2,MaxCapacity=4,SecondsUntilAutoPause=1000,AutoPause=true \
--master-username username master-user-password password \
--db-subnet-group-name sample-db-subnet-group
プロビジョニングされた DB クラスターへ変換
AWS CLI を実行してクラスターを変換します。
この操作はマネジメントコンソールからでは行えません。
Unknown options: エラーが出た場合、新しい AWS CLI に更新してください。
aws rds modify-db-cluster \
--db-cluster-identifier sample-cluster \
--engine-mode provisioned \
--allow-engine-mode-change \
--db-cluster-instance-class db.t3.medium
Aurora Serverless v2 リーダー DB インスタンスの追加
マネジメントコンソールから Serverless v2 のインスタンスを追加します。
Serverless v2 リーダー DB インスタンスへフェイルオーバー
マネジメントコンソールからフェイルオーバーを実行します。
リーダー DB インスタンスの追加
可用性確保のため、別の AZ にリーダーを追加します。
プロビジョニングされた DB インスタンスの削除
不要になったプロビジョニングされた DB インスタンスを削除します。
移行手順まとめ
キーポイントは以下の通りです。
- Aurora Serverless v2 への移行は、複数のステップを踏む必要がある
- アップグレード作業はマネジメントコンソールでは完結せず、AWS CLI の利用が必要
その他耳より情報
- Serverless v1 の DB クラスタースナップショットからは、マネジメントコンソールのみで Serverless v1 のリストアができることを確認
- 許容できるのであれば、スナップショットからプロビジョニングされたクラスターと Serverless v2 インスタンスとしてリストアする方法も取れる