概要
Aurora Serverless v1(PostgreSQL 10.XX) → Aurora Serverless v2(PostgreSQL 13.7)へ
アップグレードする手順の紹介です。
【本記事の参考ページ】
・Aurora PostgreSQL の PostgreSQL DB エンジンのアップグレード(aws.amazon.com)
・Aurora Serverless v2で開始(aws.amazon.com)
Serverless v1→v2 は直接アップグレードできない
PostgreSQL 10のサポート終了発表に伴い、V1→V2へアップグレードしようとしましたが
通常通りRDS
→変更
からバージョンを変更しようとしても
プルダウンメニューに10以外のバージョンが表示されませんでした。
色々調べてみると、Serverlessの場合、メジャーバージョンのアップグレードを行うためには
以下の手順を踏む必要があります。
■ v1(PostgreSQL 10.XX)のスナップショットを取得
↓
■ スナップショットを元に、プロビジョニング済みクラスターを作成 (この時点ではバージョンは10.XXのまま作成)
↓
■作成したプロビジョニング済みインスタンスを、v2対応のPostgreSQL 13.7へアップグレード
↓
■プロビジョニング済みクラスターにServerless v2のリーダーインスタンスを追加
↓
■作成したリーダーインスタンスをフェイルオーバーし、ライターインスタンスへ変更
次の項目から、実際の作業手順を詳しくご紹介します。
作業手順
手順1. Serverless v1(PostgreSQL 10.XX)のスナップショットを取得
既存のV1(PostgreSQL 10.XX)のスナップショットを取得します。
アクション
→スナップショットの取得
から取得可能です。
手順2. スナップショットを元に、プロビジョニング済みクラスターを作成
手順1で作成したスナップショットを選択し
アクション
→スナップショットを復元
から、以下のように設定します。
暗号化やネットワークの設定等は必要に応じて行ってください。
このDBはあくまでアップグレードのための踏み台として一時的に使うものため
インスタンスクラスは必要最低限で問題ありません。
設定が完了したら、クラスターの復元
をクリックしてプロビジョニング済みクラスターを作成します。
手順3. プロビジョニング済みクラスターを13.7へアップグレード
作成したプロビジョニング済みクラスターを選択し、変更
をクリック。
DBインスタンスエンジンは、Serverless v2に対応しているバージョンであるPostgreSQL 13.7を選択します。
その他の設定項目は任意で設定し、続行
をクリック。
DBエンジンとパラメータグループが13.7へ変更されている事を確認したら
クラスターの変更を適用
を選択して、アップグレードします。
手順4. リーダーインスタンス(Serverless v2)を追加
プロビジョニング済みクラスターを選択し、アクション
→リーダーの追加
で
以下のように設定し、Serverless V2をリーダーインスタンスとして追加します。
その他の項目は任意で設定し、Add Reader
をクリックして作成します。
以下のように
プロビジョニング済みインスタンスがライター、Serverless V2がリーダーという状態になっているかと思います。
手順5. Serverless v2をフェイルオーバー
Serverlss V2をライターインスタンスへ昇格させます。
プロビジョニング済みインスタンスを選択して、アクション
→フェイルオーバー
をクリック
以下のようにServerless v2がライターインスタンスへ切り替わっていれば、OKです。
最後に不要となったプロビジョニング済みインスタンスを削除して、本作業は完了です。
最後に
2023年1月にはPostgreSQL10のサポートが終了するため、早めに対応しましょう!
おまけ
以下では、PostgreSQLのパラメータをバックアップする方法をご紹介します。
アップグレード手順とは直接的には関係ありませんが
実際の作業ではバックアップも必要になることがあるかと思いますので、参考までにどうぞ。
- vimでSQLの実行ファイル
config.sql
を作成
$ vim config.sql
# config.sql
// Postgressのパラメータの確認コマンド
select name, setting, unit from pg_settings;
-
config.sql
を実行し、config-backup.txt
に出力
psql -f config.sql -U ユーザ名 -d データベース名 -h ホスト > config-backup-before.txt
-f
はファイルからコマンドを読み込んで実行するオプションです。
これを使用することで、psqlに入らずとも、外部からpsqlコマンドを実行し、テキストファイルなどにバックアップする事ができます。