Terraform: Up and Running の「Deploy a Configurable Server」の途中まで読んだ
ここまでで出来るようになったコードを載せる
前提
- VPC は何らかの構成で作成済み
- Terraform を手元の環境にインストール済み
- AWS IAM で: EC2 インスタンス立ち上げ、EIP や Security Group の設定など今回の操作に必要な権限を持つユーザを作成済み
ザツに管理者権限を持つロールを作成して全操作できるユーザを割り当てればOK
- AWS CLI をインストール済み
~/.aws/credentials
に default 認証情報を記述済み (aws configure
)
コード
次のコードを書くと...
- EC2 インスタンスが立ち上がる
- EIP がアタッチされる
- セキュリティグループが作られる
- 加えて EC2 インスタンスに関連付けられる
- User Data の流し込みで 簡易的に httpd が立ち上がる
- 通信はポート番号 8080 で待機
(Gist 埋め込み)
エディタ上でも Syntax Highlight が用意されていて読み易しい
計画の確認・実行
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
- Terraform by HashiCorp
- Terraform: Up and Running
- hashivim/vim-terraform: basic vim/terraform integration - GitHub
- Amazon EC2 (安全かつスケーラブルなクラウド上の仮想サーバーホスティング) | AWS
- Amazon VPC(仮想プライベートクラウド - Amazon Virtual Private Cloud) | AWS
- AWS Identity and Access Management (IAM - ユーザのアクセスを安全に制御)| AWS
- Elastic IP アドレス - Amazon Elastic Compute Cloud
- セキュリティグループのルールのリファレンス - Amazon Elastic Compute Cloud
- AWS Command Line Interface とは - AWS Command Line Interface