はじめに
IBM Cloud Docs に記載されている情報をもとに IBM Cloud のサポートおよびバージョンアップ方法についてまとめています。
サポート終了時のアップグレード
IBM Cloud Databases for PostgreSQL はサポートが終了すると適宜強制的に次のメジャーバージョンにアップグレードされます。
このアップグレードは次のようなリスクがあるため、自身でアップグレードすることがおすすめされています。
- 強制アップグレードにはSLAは提供されない
- データが失われる可能性がある
- アプリケーションのダウンタイムが長引く可能性がある
- 新しいバージョンと互換性がない場合、アプリケーションが動作しなくなる可能性がある
- このアップグレードのタイミングは、制御できない
- この強制アップグレードにはロールバック処理はない
サポート終了日については次のページを参照してください。
https://cloud.ibm.com/docs/databases-for-postgresql?topic=databases-for-postgresql-versioning-policy
アップグレード方法
IBM Cloud Docs には以下の2つのバージョンアップ方法が説明されています。
https://cloud.ibm.com/docs/databases-for-postgresql?topic=databases-for-postgresql-upgrading
- 読み取り専用レプリカをプロモートしてアップグレード
- バックアップを新規デプロイメントにリストアしてアップグレード
また、次のIBM公式記事にて3つ目のダウンタイムを最小限にする方法が説明されています。
https://www.ibm.com/products/tutorials/upgrading-ibm-cloud-databases-for-postgresql-with-minimal-downtime
本記事では IBM Cloud Docs で紹介されている2つの方法を簡単に紹介します。
3つ目の方法については別記事で説明予定です下記記事で説明しています。
【IBM Cloud】Database for PostgreSQL をダウンタイム最小限でバージョンアップする方法
読み取り専用レプリカをプロモートしてアップグレード
読み取り専用レプリカを作成し、プロモートする際に新バージョンを指定することでアップグレードを行います。
手順概要
- 現在のデプロイメントから読み取り専用レプリカを作成
- レプリカが同期されるのを待つ
- コマンドを実行し、レプリカを新バージョンにプロモート
- アプリケーションの接続先を変更
実行コマンド
curl -X POST https://api.{region}.databases.cloud.ibm.com/v5/ibm/deployments/{id}/remotes/promotion
-H 'Authorization: Bearer <your_token>'
-H 'Content-Type: application/json'
-d '{
"promotion": {
"version": "17",
"skip_initial_backup": false
}
}'
メリット
プロモートするまでリーダーのデータが同期されるのでデータの損失を比較的抑えることができます。
また、手順概要では最後に接続先を変更していますが、読み取り専用ではありますが接続できるので、プロモート前に切り替えることも可能です。
こうすることで一時的に書き込めない代わりに、データの損失をほぼ防ぐことができます。
デメリット
バージョンを指定してのプロモートはコンソールからは行えずコマンドを実行する必要があるため、APIを実行するための準備が必要になります。
バックアップを新規デプロイメントにリストアしてアップグレード
バックアップを作成し、リストアする際に新バージョンを指定することでアップグレードを行います。
手順概要
- 現在のデプロイメントからバックアップを作成
- バックアップをリストアし、その際に新バージョンを指定
- アプリケーションの接続先を変更
メリット
バックアップおよびリストアはすべてコンソールから行うことが可能です。
デメリット
データがバックアップした時点のものになるため、接続先を変更するまでのデータが反映されません。
まとめ
どちらの方法もメリット・デメリットがあるので適切な方法を選択してください。
また、データを確実に移行するためサービスをメンテナンスにするなどアクセスできなくすることをおすすめします。
以上、Database for PostgreSQL のバージョンアップ方法についてでした。
運用時の参考になれば幸いです。