#IAMユーザー作成
作成時にAWS Access Key IDとAWS Secret Access KeyのCSV保存しとく
#AWS CLI インストール
$ mkdir aws && cd aws
$ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
$ unzip awscliv2.zip
$ sudo ./aws/install
~/.aws/credentials にAWSの認証情報保存
$ aws configure
AWS Access Key ID :IAMユーザー作成時ーのもの
AWS Secret Access Key :IAMユーザ作成時ーのもの
Default region name :us-west-2(オレゴン)
Default output format :text
#.tf ファイルを作成
$ vi variables.tf
provider "aws" {
version = "~> 2.0"
region = "us-west-2"
}
#EC2 のスペック定義
$ vi ec2.tf
Amazon Linux 2 AMI (HVM), SSD Volume Type (64 ビット x86)
のamiのIDをhttps://aws.amazon.com/jp/amazon-linux-2/release-notes/ からとってくる
わかんなかったらインスタンス作成するときに対象のID書いてあるからそこからとってくる
Nameはcount(台数)によってかわるようにするけどとりあえず1台
resource "aws_instance" "sandbox" {
count = 1
ami = "ami-0e8c04af2729ff1bb"
instance_type = "t2.micro"
tags = {
Name = "${format("sandbox-%02d", count.index + 1)}"
}
}
#variable.tf と ec2.tf が置かれているディレクトリ内で以下を実行
初期化
$ terraform init
定義内容チェック
$ terraform plan
出力結果
+ aws_instance.sandbox.0
ami: "ami-0e8c04af2729ff1bb"
〜
tags.Name: "sandbox-01"
Plan: 1 to add, 0 to change, 0 to destroy.
#定義を適用してインスタンス作成
$ terraform apply
Enter a value: と出力されるからyesと入力
Enter a value:yes
Apply complete! Resources: 2 added, 0 changed, 0 destroyed.
作成したオブジェクトの内容出力
$ terraform show
AWSコンソールを確認すると作成されている
#リソース全削除
$ terraform destroy
Enter a value: yes
AWSコンソールで削除されていることを確認