🏰

フォルダで複数環境管理(実践編) - Terraformのきほんと応用

2022/03/06に公開

TerraformでAWSを構築する際のひな形となるコードを公開しています。個別のコンポーネントではなくコードベース全体です。
Terraform関連の他の記事は「Terraformのきほんと応用」からどうぞ。

特徴

ALB+EC2+RDSによるWordPressを複数環境管理するためのコードサンプルです。
フォルダで複数環境管理(エッセンス編)を実践的なコードに置き換えたものです。

システム構成

  • 3つの環境
    • 開発環境
    • ステージング環境
    • 本番環境
  • ALB+EC2+RDSのシンプルな構成
    system structure

ソース構成

  • envsフォルダ内に環境ごとのフォルダを作成します
  • wordpressはネットワーク、サーバー、DBの3つのモジュールに分けます
terraform/
 ├─── envs/
 │    ├─── develop/
 │    │    ├─ main.tf
 │    │    └─ setting.tf
 │    ├─── staging/
 │    │    ├─ main.tf
 │    │    └─ setting.tf
 │    └─── production/
 │         ├─ main.tf
 │         └─ setting.tf
 └─── modules/
      ├─── network/
      │    └─ network.tf
      └─── wordpress/
           ├─── app/
           │    └─ application.tf
           │    └─ application_ec2_userdata.sh
           └─── db/
                └─ database.tf

使用方法

  1. 各環境を構築する
    開発環境、ステージング環境、本番環境それぞれを構築します。流れはフォルダで複数環境管理(エッセンス編)を参照のこと。
  2. 3つの環境が作成されていることを確認します
    3つの環境それぞれのURLにアクセスしてWordPressが動作することを確認します。
    WordPressの初期画面は環境ごとの差がないので、3つのVPCのスクショです。
    envs vpc

サンプルコード

この記事で作成したコードはgithub上に公開しています。

GitHubで編集を提案

Discussion