## プロジェクト概要
自社プロダクトで利用している7クラスターのAurora PostgreSQLを、バージョン13から16へメジャーバージョンアップしたプロジェクト。Aurora PostgreSQL 13の標準サポート終了に対応するため、約2時間のメンテナンス時間内でインプレースアップグレードを実施した。
## 担当役割
計画策定、検証、作業手順書の作成、作業の自動化、切り戻し手順の整備、本番作業までを個人で一貫して主導。
## 使用技術・環境
Amazon Aurora PostgreSQL/AWS CLI/Shell Script
## 背景・課題
- Aurora PostgreSQL 13の標準サポート終了に伴い、バージョン16への移行が必要だった。
- 対象が7クラスターあり、約2時間のメンテナンス時間内にすべての作業を完了させる必要があった。
- サービスのメンテナンスイン・アウト、監視の停止・再開、データベースのアップグレードなど複数の工程があり、手作業による操作ミスや作業遅延が懸念された。
- インプレースアップグレードで予期しない問題が発生した場合に備え、安全に元の状態へ戻せる切り戻し手順が必要だった。
## 取り組み内容
### 1. 検証環境での事前テスト
本番作業に先立ち、検証環境でAurora PostgreSQL 13から16へのインプレースアップグレードを実施した。アップグレード手順と所要時間を確認し、検証結果を基に本番作業の計画と手順を策定した。
### 2. 作業計画と手順書の整備
事前準備、サービスのメンテナンスイン、監視停止、データベースのアップグレード、作業後確認、監視再開、メンテナンスアウトまでの工程を整理し、作業手順書を作成した。約2時間で全7クラスターの作業を完了できるよう、各工程の作業内容と実施順序を明確化した。
### 3. AWS CLIによる定型作業の自動化
作業時間の短縮と操作ミスの抑制を目的として、AWS APIを利用する定型作業をAWS CLIによるシェルスクリプトとして実装した。また、サービスのメンテナンスイン・アウトおよび監視の停止・再開を確実に実施できる仕組みを準備した。
### 4. 切り戻し手順の整備
アップグレード中に予期しない問題が発生した場合に備え、切り戻し手順を事前に整備した。正常系の手順だけでなく、異常発生時の対応も作業計画へ組み込むことで、本番作業のリスクを抑えた。
## 成果
- 予定していた約2時間のメンテナンス時間内に、全7クラスターをAurora PostgreSQL 13から16へアップグレードした。
- 作業後の障害や想定外のサービス影響を発生させることなく、本番作業を完了した。
- AWS CLIを利用した定型作業の自動化により、作業時間を短縮するとともに、手作業による操作ミスのリスクを低減した。
- 検証、通常手順、監視制御、切り戻しまでを含む再利用可能な作業手順を整備した。