[TF] AWS Resource 생성
Terraform 코드를 통해 EC2를 생성할려고한다.
먼저 나는 awscli 설치를 하여 aws configure를 통해 access_key, secret_key를 선언하였다.
Terraform 코드를 사용하여 간단하게 EC2 Instance를 생성할 것이다.
provider "aws" {
region = "ap-northeast-2"
}
resource "aws_instance" "ubuntu" {
# ami Ubuntu_20.04 TLS
ami = "ami-0454bb2fefc7de534"
instance_type = "t2.micro"
tags = {
Name = "TerraformUbuntu"
}
}
위의 코드를 init 후에 apply를 하면 plan이 나오고 생성할 것인지 묻는다.
yes를 입력하면 Creating...이 나오고 정상적으로 작동이 되면 Apply complete가 나오고 Resources 가 1 add 되었다고 나온다.
그러면 코드로 생성한 EC2 Instance를 AWS Console 상에서 확인해보자
코드에서 선언한 ami, instance_type, tags가 정상적으로 생성되었다.
EC2 Instance의 정보를 보면 VPC, Security Group, Key pair는 선언을 해주지않아 VPC와 SG는 Default로 되어있다.
Key Pair의 경우에는 기본값이 없으므로 비어있는걸 볼 수 있다.
기본적인 리소스 생성을 위한 실습이라 선언을 하지않았다.
실습 완료되었으면 terraform destroy
나 alias 선언을 했다면 tf destroy
를 사용하여 Terraform으로 생성된 리소스를 삭제하면 된다.
추가로 AMI의 경우 최신 버전이 릴리즈 되었을 때를 위해 filter를 사용하여 최신 AMI를 갱신할 수 있다.
자세한 사용법은 참조 1번 참고
data "aws_ami" "example" {
executable_users = ["self"]
most_recent = true
name_regex = "^myami-\\d{3}"
owners = ["self"]
filter {
name = "name"
values = ["myami-*"]
}
filter {
name = "root-device-type"
values = ["ebs"]
}
filter {
name = "virtualization-type"
values = ["hvm"]
}
}
참조
[1] https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/ami