概要
レガシーな環境で動いていたPHPとLaravelの大幅なバージョンアップし、本番リリースまで行ったので手法と注意点を残します。
こちらではAWSでの環境構築と本番リリース手法を記載。
アプリケーションのアップグレードはこちら
バージョン
PHP: 7.1 => 8.3
Laravel: 5.5 => 12.x
環境
AWS二つの環境で用いて開発を行っていた
- staging(stg)
- production(prod)
検証用に以下の環境を追加し、アップデートのテストを行った - develop(dev)
流れ
大幅なアップグレードのため、サーバーでの変更を逐次行うことは非効率であると考えたため、別インスタンス、別ドメインを用意し検証を行うことにした。
検証
- devのEC2インスタンス、ELBを作成
- devにPHP8.3、その他ミドルウェアのインストール
- Route53でdevドメインに紐付け
- devでテスト完了後、Route53でstgドメインをdevインスタンスに紐付け(dev=>stgへのプロモーション)
本番
- prodの差し替え用インスタンス、ELBを作成(Blue/Greenデプロイメントにちなんでblueと呼称)
- prod-blueにPHP8.3、その他ミドルウェアのインストール
- prod-blue用のドメインで動作確認
- 本番当日はRoute53でprodドメインをprod => prod-blueのELBへ変更(prod-blue => prodへのプロモーション)
感想
事前にblue環境を用意し差し替えることで、手順・リスクが減りスムーズな移行が可能になりました。
staging等の環境を維持したままアップデートしないといけない場合おすすめです。