WordPress をネット公開するための AWS インフラ構成 – バージョン 1.0.1 の記事です。前回の記事(Version 1.0.0)で紹介したインフラ構成に EBS ボリュームを追加しました。

バージョン 1.0.0 の問題点
問題点を挙げる前に、WordPress をネット公開するためのインフラ構成を紹介する記事のバージョン 1.0.0 で紹介した構成を簡単に振り返ります。

EC2 インスタンスで Docker イメージを実行し、WordPress をネット公開するシンプルな構成です。ユーザーは、EC2 インスタンスの Elastic IP アドレスを使用して WordPress にアクセスします。この構成には以下の問題点があります。
- Docker イメージの永続化
- EC2 インスタンスが停止または再起動されると、Docker イメージ内のデータが失われる可能性があります。これにより、WordPress のコンテンツや設定が失われるリスクがあります。
インフラ構成の変更点 – Version 1.0.1
この問題を解決するために、EBS ボリュームを追加しました。EBS ボリュームは、EC2 インスタンスにアタッチされるブロックストレージで、データの永続化を提供します。
EBS ボリュームの追加
CloudFormation テンプレートの Resources セクションに、以下の EBS ボリュームの定義を追加しました。追加するボリュームは、MySQL データディレクトリと WordPress コンテンツディレクトリの永続化に使用されます。
# ------------------------------------------------------------#
# EBS Volume
# ------------------------------------------------------------#
DbDataVolume:
Type: AWS::EC2::Volume
Properties:
AvailabilityZone: !GetAtt Ec2Instance.AvailabilityZone
Size: 20 # GB
VolumeType: gp3
Tags:
- Key: Name
Value: !Sub ${ProjectName}-db-data-volume
- Key: Description
Value: "MySQL data directory mounted at /mnt/data/mysql"
WpContentUploadsDataVolume:
Type: AWS::EC2::Volume
Properties:
AvailabilityZone: !GetAtt Ec2Instance.AvailabilityZone
Size: 10 # GB
VolumeType: gp3
Tags:
- Key: Name
Value: !Sub ${ProjectName}-wp-content-uploads-data-volume
- Key: Description
Value: "WordPress Content directory mounted at /mnt/data/uploads"
EC2 インスタンスに追加したボリュームはマウントすることで、Docker コンテナ内の MySQL データディレクトリと WordPress コンテンツディレクトリの永続化を実現します。これにより、EC2 インスタンスが停止または再起動されても、データが失われることなく WordPress を運用できます。マウント方法はネットに多くの情報があるため、ここでは割愛します。
まとめ
WordPress をネット公開するための AWS インフラ構成 – バージョン 1.0.1 では、EBS ボリュームを追加することで、Docker イメージ内のデータの永続化を実現しました。これにより、EC2 インスタンスが停止または再起動されても、WordPress のコンテンツや設定が失われるリスクを軽減できます。今後もインフラ構成の改善を続けていきます。

