はじめに
みなさん、こんにちは。ACS事業部 亀崎です。
以前からPostgreSQLなどCloud Serviceのバージョンアップどうすればいいのかな、といつも考えていたのですが、Azure Database for PostgreSQL Flexible Serverの場合、メジャーバージョンアップ機能が1年前の2023年2月にGAになっていました。
こちらがドキュメントです。
デモ環境の構築初期で、まだ壊れても問題にならないって状態のPostgreSQL Flexible Server(v14)があったので、In-placeメジャーバージョンアップを実際にやってみることにしました。作業時点ではv15までサポートされているのでv14からv15へのアップグレードになります。
もちろんAzure Portalで簡単に実行できるのですが、このデモ環境はBicepでプロビジョニングしたものですのでアップグレードもBicepから行うことにしました。
In-place Major version up
PostgreSQL flexible serverのプロビジョニングには以下のような指定をしていました。
resource pgsql 'Microsoft.DBforPostgreSQL/flexibleServers@2023-06-01-preview' = { name: serverName location: location properties: { 〜省略〜 network: { delegatedSubnetResourceId: subnet.id privateDnsZoneArmResourceId: dns.id } storage: { storageSizeGB: storageSizeGB } version: '14' // => '15' に変更 } 〜省略〜 }
今回メジャーバージョンアップを行う際に変更したのは versionの部分のみで、'14' と指定されていたものを '15' に変更し、このBicepファイルを再度デプロイするだけ。
メジャーバージョンアップには10分〜20分程度かかっていましたが、とくに何事もなく完了です。
上記のように指定をちょっと書き換えて再実行すればOKと、あっけないくらいとても簡単でした。
今回の環境は、Backstage用に利用していたもので、その内容は通常のテーブル等のみであったため複雑な内容ではありません。 とはいえ、こうした作業はちょっと怖いなと思う部分があるかと思います。環境によっては時間がもっとかかったり、問題が発生することも考えられます。できれば事前に類似の環境を作ってテストした上で作業を行っていただければと思います。
今回の体験共有が少しでも皆様のお役に立てれば幸いです。