ゼロダウンタイムメジャーバージョンアップでは、サービス中断を伴わず、RDS PostgreSQL インスタンスをより高いメジャーエンジンバージョンへアップグレードできます。このアップグレードでは論理レプリケーションを用いてソースインスタンスからターゲットインスタンスへデータを同期し、その後、短時間の読み取り専用ウィンドウを挟んでトラフィックを切り替えます。
仕組み
アップグレードは以下の 3 つのフェーズで実行されます:
事前アップグレードチェック — インスタンスの構成を検証し、ゼロダウンタイムアップグレードモードとの互換性を確認します。
アップグレードタスク — ターゲットインスタンスを作成し、論理レプリケーションを確立してデータを同期します。
インスタンス切り替え — シーケンスを同期し、トラフィックをターゲットインスタンスへ切り替えます。
アップグレードによる影響
| フェーズ | 影響 | 期間 |
|---|---|---|
| DDL 制限 | アップグレード開始時から切り替え完了まで、すべての DDL 操作がブロックされます。 | 全体のアップグレードプロセス |
| WAL ログの蓄積 | アップグレード開始前にレプリケーションスロットが作成されるため、ソースインスタンス上で Write-Ahead Logging (WAL) ログが蓄積します。ディスク使用率が一時的に上昇し、論理レプリケーションが確立された後に低下します。 | レプリケーションスロットの作成から、ターゲット側のサブスクライバーが起動するまで |
| 論理レプリケーション同期 | 論理レプリケーションにより、ソースインスタンスに追加の負荷が発生します。この負荷はデータベース数および書き込みトラフィック量に比例します。wal_sender のリソース使用量を監視することで、負荷状況を評価できます。 | 論理レプリケーション確立から切り替え完了まで |
| 切り替え(読み取り専用) | シーケンスの同期中、インスタンスは読み取り専用モードになります。 | シーケンス数に比例 |
前提条件
開始する前に、以下の条件を満たしていることを確認してください。
左側ナビゲーションウィンドウに メジャーバージョンアップ が表示される RDS PostgreSQL インスタンス
プライマリインスタンスにアタッチされている読み取り専用インスタンスをすべて削除済み、またはアプリケーションを更新してプライマリインスタンスのエンドポイントに直接接続するよう設定済み
手順 1:事前アップグレードチェックを実行
ゼロダウンタイムアップグレードでは論理レプリケーションが使用されるため、特定の互換性要件があります。事前アップグレードチェックでは、これらの要件に対するインスタンスの適合性を検証し、アップグレードを妨げる可能性のある項目を検出します。
ApsaraDB RDS コンソール にログインし、インスタンス ページへ移動します。上部ナビゲーションバーからご利用のインスタンスが配置されているリージョンを選択し、インスタンス ID をクリックします。
左側ナビゲーションウィンドウで、メジャーバージョンアップ をクリックします。
アップグレードチェック タブで、アップグレードチェックレポートの作成 をクリックします。
アップグレードバージョンの選択 で対象バージョンを選択し、アップグレードモード を ゼロダウンタイム に設定して、OK をクリックします。
アップグレードチェックログ セクションで結果を確認します。
チェック結果 が 成功 と表示された場合のみ、手順 2 へ進んでください。チェックが失敗した場合は、情報の表示 をクリックして詳細レポートを確認してください。エラーの解釈に関するサポートは、「RDS PostgreSQL メジャーバージョンアップチェックレポートの解釈方法」をご参照ください。
チェックが成功した後にターゲットインスタンス上でプラグインが作成された場合は、次に進む前に再度チェックを実行してください。
手順 2:アップグレードタスクを作成
インスタンスのアップグレード タブをクリックし、警告メッセージを確認したうえで、アップグレードバージョンの選択 から対象バージョンを選択し、アップグレードタスクの作成 をクリックします。
確認ダイアログで、OK をクリックします。
メジャーバージョンアップタスクの作成 セクションで、アップグレードモード を ゼロダウンタイム に設定します。
今すぐ作成 をクリックします。
アップグレードタスクが開始されると、インスタンスステータスが マイグレーション中 に変更されます。アップグレード履歴 タブで進行状況を追跡できます。
アップグレード中のインスタンス負荷の監視
アップグレード全体を通して、インスタンスの負荷およびディスク使用率を監視してください。
ディスク使用率:WAL ログの蓄積中に上昇し、論理レプリケーションが確立された後に低下します。
CPU およびネットワーク負荷:論理レプリケーション同期フェーズ中に増加します。各リソースカテゴリにおける
wal_senderを確認し、影響度を評価してください。
手順 3:ターゲットインスタンスの検証および切り替え
ターゲットインスタンスの検証
インスタンスステータスが マイグレーション中 から データマイグレーション中 に変更された時点で、論理レプリケーションが確立されます。このタイミングでターゲットインスタンスに接続し、アップグレード後のデータを検証してください。
アップグレード履歴 タブへ移動します。
ターゲットアップグレードレコードから 高バージョン検証アドレス をコピーします。
ターゲットインスタンスに接続し、データが期待通りであることを確認します。
ターゲットインスタンスへのトラフィック切り替え
データの正確性を確認し、アップグレード結果 が 同期中 と表示された後、以下の操作を行います。
アップグレードログ 列で、変更 をクリックします。
許容可能な書き込み停止時間(秒単位)を設定し、OK をクリックします。
切り替え中はシーケンスが同期され、インスタンスは読み取り専用モードに入ります(アップグレード結果 が 読み取り専用 に変更されます)。シーケンス同期が許容可能な書き込み停止時間を超えた場合、システムは 同期中 状態に戻り、読み取り専用制限が解除されます。この場合、切り替えは実行されず、再試行が可能です。
切り替え結果を確認します:
マイグレーション中 — 切り替えが進行中です。キャンセルするには、アップグレードログ 列の 中断 をクリックします。
インスタンスは実行中です。 — 切り替えが完了しました。インスタンスの 基本情報 ページで、現在のエンジンバージョンを確認してください。
ロールバック
切り替え前には、システムが自動的に低バージョンインスタンスのバックアップを取得します。切り替え後にロールバックが必要な場合は、以下の手順を実行してください。
切り替え前に取得された低バージョンインスタンスの最終バックアップから、新しいインスタンスをクローンします。
クローンしたインスタンスの エンドポイント を、元のインスタンスのエンドポイントと一致するよう更新します。
アップグレード結果のステータス
アップグレード履歴 タブの アップグレード結果 列には、以下のステータスが表示されます。
| ステータス | 意味 | 利用可能な操作 |
|---|---|---|
| 実行中 | アップグレードタスクが実行中です。 | なし |
| 同期中 | 論理レプリケーションが正常です。 | 変更:ターゲットインスタンスへ切り替えます。キャンセル:このアップグレードを中止します。 |
| レプリケーション中断 | 論理レプリケーションが異常です。 | アップグレードログを確認し、原因を特定してください。キャンセル:このアップグレードを中止します。 |
| 読み取り専用 | 切り替えが進行中です。シーケンス同期中は、インスタンスが読み取り専用モードになります。 | 中断:この切り替え操作をキャンセルします。 |
| 切り替え | シーケンス同期が完了し、最終タスクが実行中です。 | なし |
| キャンセル済み | アップグレードタスクがキャンセルされました。 | なし |
| 成功 | アップグレードが完了しました。 | なし |