皆様こんにちは。株式会社協栄情報システム3部所属の比嘉です。
今回はTerraformでWordPressサイトを構築していこうと思います。

Terraformの概要と基本的な使用方法については以前記事を作成しましたので、そちらも参考いただけますと幸いです。

https://cloud5.jp/terraform_summary

構成図とやりたいこと

目標はTerraformでマルチAZ構成Wordpressサイトを構築することです。下記は構築するWordPressサイトの構成図です。

下記の条件を満たすWordPressサイトを構築していきます。

  1. ACMを利用して暗号化された通信を使ってドメイン名でアクセスできること
  2. マルチAZ構成でWebサーバーを稼働し、高可用性を実現すること。
  3. マルチAZ構成でデータベースサーバーを稼働し、高可用性を用意すること
  4. KMSを利用してストレージやデータベースのデータに不正にアクセスされても、解読できないように暗号化されていること
  5. EC2に障害が起きた時は通知をだし、自動的に復旧すること
  6. EBSの使用率や、ALBとEC2の死活監視をおこない、閾値を超えた時は通知を出すこと
  7. WordPressの画像をS3にアップロードすること
  8. DLMを利用し、EBSのスナップショットを自動作成すること

必要なサービスの概要

サービス名 利用目的
Route53 名前解決のため
ACM(AWS Certificate Manager) https通信を行うための証明書の作成/利用のため
ALB (Application Load Balancer) 2つのEC2にヘルスチェックを行いながらリクエストを振り分け、高可用性を実現するため
IAM (Identity and Access Management) EC2にCWAgent用の権限を与えるため
KMS (Key Management Service) RDS、EBSなどの暗号化のために暗号化鍵の作成と管理を行うため
AWS Systems Manager CloudWatchAgentの設定パラメータを配置するため
EC2 (Elastic Compute Cloud) Webサーバーとして使用するため
RDS (Relational Database Service) DBサーバーとして使用するため
EFS (Elastic File System) WordPressのインストールファイルをEC2間でファイル共有を行うため
S3 (Simple Storage Service) WordPressの画像をアップロードするため
CloudWatchAlarm ・システムエラー、EC2とALBの死活状態、ディスク使用率の監視を行うため
・閾値を超えればメールで通知し、システムエラーが起きた時にオートリカバリーをするため
CloudWatchAgent ・ディスク使用率の監視メトリクスをCWAlarmに発行するため
SNS (Simple Notification Service) アラーム発生時のメール送信先トピックを作成するため

高可用性アーキテクト構築目次

1.VPCなど基盤構築

VPC作成
セキュリティグループ作成
IAM作成

2.データベース・ファイルシステム・インスタンス構築

KMSで暗号化鍵の作成
RDS作成
EFS作成
EC2作成

3.ネットワーク構築

ALB作成
Route53作成

4.WordPress初期設定とhttps設定

ACMの作成、https、WordPressの設定

5.監視システム構築

SNS作成
CloudWach Alarmの作成

6.スナップショットの自動作成

DLM作成

7.S3の利用

S3の作成・プラグイン(WP Offload Media Lite)の利用

Last modified: 2022-06-24

Author