AWSのALB実装例(1)ALB+EC2+RDS

Terraform?

ALB+EC2+RDSのミニマル構成 – Terraformのきほんと応用のケースです。

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

参考記事の抜粋:Terraformのきほん

クラウドリソースの作成ではなくローカルのファイル作成で学ぶTeraformの使い方。

  1. ローカルでhello world
  2. 変数の使い方
  3. モジュールの使い方
  4. mapとfor_eachで複数のオブジェクトを作成する
  5. tfstateにふれてみよう

特徴

AWS&Terraformの初心者向けの構成です。

  • ALB+EC2+RDSの定番構成によるWordPress
  • Terraformの難しい機能であるモジュールやワークスペースを使用していない

システム構成

ALB+EC2+RDSのシンプルな構成です。
system structure

ソース構成

6本のソースで構成しています。
sourcecode

  1. application.tf
    ALBとEC2に関連するリソースを定義しています。
  2. application_ec2_userdata.sh
    EC2構築時に実行するWordPressのインストールのスクリプトです。EC2のUserDataとして使用します。ここのソースを書き換えればWordPress以外のサービスも構築可能です。
  3. database.tf
    RDSに関連するリソースを定義しています。
  4. main.tf
    Terrafor自体のバージョン縛りや、AWSプロバイダーの設定です。
  5. network.tf
    VPCを定義しています。
    このファイルで定義しているサブネットは使用していません。ALB、EC2、RDSなどリソース個別にサブネットを作成する方針としているためです(別記事で説明予定です)。にもかかわらず未使用のサブネットを定義しているのは、今後の何らかの作業(GUIでお試しとか)を想定したものです。
  6. setting.tf
    各種リソースの設定を一元的に定義しています。
    1つのファイルに設定を集約することで、環境が増えた際にファイルコンペアで環境の差分を見やすくなります。
    設定ファイル内にnetworkやrdsなどのセクションを設けることで、設定項目のまとまりを判別しやすくしています。

使用方法

terraformとソースを配置する

具体的な手順が知りたい場合は別記事(ローカルでhello world)を参照してください。

init

terraformの初期化処理

initサブコマンドを実行して初期設定を行います。

terraform.exe init
init

構築内容を確認する

planサブコマンドを実行して構築内容を確認します。

terraform.exe plan
plan

構築する

applyサブコマンドを実行して構築します。途中で本当に構築するかの確認があるのでyesを入力します。

terraform.exe apply
apply
apply

構築結果を確認する

正常に構築が完了するとWordPressにアクセスするURLが表示されます。セットアップの途中で使用するRDSのホスト名も表示されます。

result

ブラウザでアクセス

ブラウザでアクセスするとWordPresの設定画面が表示されています。

show in browser

サンプルコード

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