WordPress Docker コンテナのメンテナンス性向上(AWS)
2025/03/01, 2025/03/03 - ~
依頼内容
- Docker コンテナで動作している PHP、WordPress のバージョンアップをしたい。
- バージョンアップを簡単にしたい。
WEB サイトは以下のような状況であった。
- WEB サイト(WordPress)は AWS で構築されていた。
- WordPress は Docker で構築されていた。
- WordPress サイトは冗長化されているが、WordPress のバージョンは更新できないように設定されていた。
- WordPress のバージョンが固定バージョンとなっているのは、冗長化されており、サイトを指定してバージョンアップできない、また、DB スキーマが先に更新されてしまって不整合が発生するためと思われた。
- AutoScaling が設定されていたが、EC2 インスタンスの起動テンプレートが設定されており、PHP のバージョンアップをしようとすると、この起動イメージの修正も(Zone 毎に)する必要があり、アップデート手順が非常に煩雑であった。
解決方法
- Docker Image を PHP 7 系から 8 系のバージョンを使用するように修正した。また、fpm を使うよう設定を追加した。
- WordPress ソース、プラグイン、画像など、ファイルシステムに保存されるデータを共有ファイルシステム(EFS)に保存するようにした。
- AutoScaling に対応するためには、何か、起動イメージを構築する必要がある。OS や PHP が更新されるたびに起動イメージを更新するのは煩雑である。そのため、ベースのイメージだけを起動イメージとして指定し、起動イメージのテンプレートに、必要なパッケージのインストール、Docker イメージの取得等などのスクリプトを設定することとした。これにより、Docker コンテナを更新した後、EC2 インスタンスを削除することで、自動的に新しい EC2 インスタンスが生成されて、アップデートされるようにした。Docker コンテナは CodeComit から取得することとした。
構成
- AWS ELB
- AWS EC2
- AWS RDS(Aurora)
- Linux / Apache / PHP + fpm
- WordPress