はじめに
ECSでWordPressを立ち上げてみました。前提環境(VPC、ALB、RDS等)はTerraformにて過去記事で作成しているので本記事ではコンソール上でのFargate構築にフォーカスします。
構成
Dockefileの作成
- DockerhubからWordPressの公式イメージを使用
Wordpress-公式イメージ - S3(メディアファイル)とCloudFront(CDN)のプラグインは以下からダウンロード
Amazon S3、DigitalOcean Spaces、Google Cloud Storage 向けの WP Offload Media Lite
FROM wordpress:6.7.2-php8.1-apache
RUN set -ex; \
apt-get update && apt-get install -y \
wget \
unzip \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
# プラグイン関連の作業ディレクトリ変更
WORKDIR /usr/src/wordpress/wp-content/plugins
RUN set -ex; \
wget -q -O amazon-s3-and-cloudfront.zip https://downloads.wordpress.org/plugin/amazon-s3-and-cloudfront.3.2.11.zip \
&& unzip -q -o '*.zip' -d /usr/src/wordpress/wp-content/plugins \
&& chown -R www-data:www-data /usr/src/wordpress/wp-content/plugins \
&& rm -f '*.zip'
RUN chown -R www-data:www-data /var/www/html
# 作業ディレクトリをデフォルトに変更
WORKDIR /var/www/html
ECRにプッシュ
$ docker push hogehoge.dkr.ecr.ap-northeast-1.amazonaws.com/wordpress:latest
The push refers to repository [hogehoge.dkr.ecr.ap-northeast-1.amazonaws.com/wordpress]
latest: digest: sha256:ebf95d66d646e28adfdf395bfa7cbbcc4b9f4cce803050370e5b12 size: 856
ECS
クラスタの作成
タスク定義の作成
DBへの接続確立のために追加します。値のタイプをValueformにするとSSMパラメータを参照してしまうので注意。
サービスの作成
確認
ヘルスチェック
リクエスト
項目 | 説明 |
---|---|
HTTPステータスコード |
HTTP/1.1 302 Found リダイレクトの発生を示す |
Location | リダイレクト先URL 独自ドメインにリダイレクトされている |
Server | MWとOSがドッカーイメージのものと一致 (Apache/2.4.62 (Debian) ) |
X-Powered-By | PHP (PHP/8.1.32 ) |
X-Redirect-By | WordPressがリダイレクトを行っている |
Cache-Control | キャッシュ設定がCaching Disabled(オリジンから) |
WordPress
最後に
次回は今回コンソールで作成したパラメータから、TerraformでECRリポジトリ、ECSクラスタ、タスク定義、サービスを作成するテンプレートを作成してみる。