この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので十分ご注意ください。
皆様こんにちは。株式会社協栄情報システム3部所属の比嘉です。
今回はTerraformでWordPressサイトを構築していこうと思います。
Terraformの概要と基本的な使用方法については以前記事を作成しましたので、そちらも参考いただけますと幸いです。
https://cloud5.jp/terraform_summary
構成図とやりたいこと
目標はTerraformでマルチAZ構成Wordpressサイトを構築することです。下記は構築するWordPressサイトの構成図です。
下記の条件を満たすWordPressサイトを構築していきます。
- ACMを利用して暗号化された通信を使ってドメイン名でアクセスできること
- マルチAZ構成でWebサーバーを稼働し、高可用性を実現すること。
- マルチAZ構成でデータベースサーバーを稼働し、高可用性を用意すること
- KMSを利用してストレージやデータベースのデータに不正にアクセスされても、解読できないように暗号化されていること
- EC2に障害が起きた時は通知をだし、自動的に復旧すること
- EBSの使用率や、ALBとEC2の死活監視をおこない、閾値を超えた時は通知を出すこと
- WordPressの画像をS3にアップロードすること
- 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など基盤構築
2.データベース・ファイルシステム・インスタンス構築
3.ネットワーク構築
4.WordPress初期設定とhttps設定
5.監視システム構築
6.スナップショットの自動作成
7.S3の利用
S3の作成・プラグイン(WP Offload Media Lite)の利用