WordPress Docker コンテナのメンテナンス性向上(AWS)

依頼内容

  • 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

1969年生まれ。大学卒業後から15年以上にわたり、通信、カードリーダ、セキュリティ業界においてソフトウェア開発に従事。その後、2012年5月に当社を設立。電力、交通、車載向けの組み込み系システム、旅行業界向けの WEB システム開発、音声合成システム、消防向けのシステム開発等に参画。
低コストかつシンプルで安定稼働するシステムの実現を目指し、アーキテクチャ設計に取り組んでいます。
会社情報と代表者守屋のプロフィール詳細