【Terraform】モジュールを利用する

今回はTerraformのモジュールを利用して、インスタンスセキュリティグループ を作成します。

同時にApacheとPHPもインストールしておきます。

今回のディレクトリは以下のようになっています。 terraform.tfstateterraform.tfstate.backupは自動で生成されるものです。

main.tfhttp_server/main.tfが同じ名前なのは勘弁です)

.
├── http_server
│   └── main.tf
├── main.tf
├── terraform.tfstate
├── terraform.tfstate.backup

コード

./main.tfのほう

インスタンスタイプはここで指定します。

最後のoutputでパブリックDNSを出力します。

Outputs:

public_dns = ec2-XXX-XXX-XXX-XXX.ap-northeast-1.compute.amazonaws.com

http_server/main.tfのほう

こちらでセキュリティグループの作成とシェルスクリプトを実行しています

17行目からセキュリティグループを作成しています。
nameはセキュリティグループの名前 descriptionはそのセキュリティの説明です。

今回はHTTPサーバーなので、80ポートを開放しています。
他にも443や22版を開けたいときはingressfrom_portto_port[22, 80, 443]のようにかけばokです

実行

実行は以下のようにします

$ terraform get #モジュールを取得
$ terraform plan #確認
$ terraform apply #実行

出力されたパブリックDNSにアクセスするとApacheのデフォルトページ。 http://DNS/info.phpにアクセスすると、phpinfoが作成されています

削除

以下のコマンドで削除することが出来ます。
作成したセキュリティグループも削除することが出来るので、AWSの環境をキレイに片付けることが出来ます。

$ terraform destroy