ブログ

読んで思い出す。忘れるために書く

Terraform で EC2 インスタンスを立ち上げた

Terraform: Up and Running の「Deploy a Configurable Server」の途中まで読んだ

ここまでで出来るようになったコードを載せる

前提

  • VPC は何らかの構成で作成済み
    • VPC の ID をメモしてある
    • VPC で利用している Subnet の ID をメモしてある
  • Terraform を手元の環境にインストール済み
  • AWS IAM で: EC2 インスタンス立ち上げ、EIPSecurity Group の設定など今回の操作に必要な権限を持つユーザを作成済み
    • ザツに管理者権限を持つロールを作成して全操作できるユーザを割り当てればOK
  • AWS CLI をインストール済み
    • ~/.aws/credentials に default 認証情報を記述済み ( aws configure )

コード

次のコードを書くと...

  • EC2 インスタンスが立ち上がる
  • EIP がアタッチされる
  • セキュリティグループが作られる
  • User Data の流し込みで 簡易的に httpd が立ち上がる
    • 通信はポート番号 8080 で待機

(Gist 埋め込み)

gist.github.com

エディタ上でも Syntax Highlight が用意されていて読み易しい

f:id:innocent-zero:20180813213214p:plain

計画の確認・実行

terraform plan -out ec2_plan # 適用する計画をファイルに書き出し
# (実行される内容が出力されるので確認しておく)

terraform apply ec2_plan # ファイルの内容を元に計画を適用

動いてるか確認

Terraform の実行計画では httpd を立ち上げるように書いたので、curl で確認する

# (立ち上がった EC2 インスタンスの EIP にアクセスする)
curl http://example.com:8080/
# => Hello, World

terraform で立ち上げた環境の削除

今回の terraform で立ち上げた EC2, EIP, Security Group のみを削除する

terraform destroy

Terraform は自分で行った操作以外は覚えていないので、既存環境については特に関知しないようだ

Links