Auto Scaling에 사용될 시작 템플릿 생성
1. Terraform Docs 예시
https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/launch_template
예시:
인수 등:
2. Terraform 코드 작성
# 16_lantemp.tf
resource "aws_launch_template" "pmh_lantemp" {
name = "pmh-lantemp"
block_device_mappings {
device_name = "/dev/sdf"
ebs {
volume_size = 10
volume_type = "gp2"
}
}
image_id = aws_ami_from_instance.pmh_ami.id
instance_type = "t2.micro"
key_name = "pmh-key"
vpc_security_group_ids = [aws_security_group.pmh_sg.id]
tag_specifications {
resource_type = "instance"
tags = {
Name = "pmh-temp"
}
}
}
resource "aws_ami_from_instance" "pmh_ami"
pmh_ami 라는 이름의 이미지 생성
resource "aws_launch_template" "pmh_lantemp"
pmh_lantemp라는 이름의 시작 템플릿 생성
name = "pmh-lantemp"
생성될 시작 템플릿의 이름 설정
block_device_mappings
AMI에서 지정한 볼륨 외에 인스턴스에 연결할 볼륨을 지정
-> /dev/sdf 장치에 EBS(Elastic Block Store)를 연결
1. EBS가 연결될 장치 이름을 /dev/sdf로 설정
2. EBS 볼륨의 크기를 10GB로 설정
3. EBS 볼륨의 유형을 "gp2"로 설정
image_id = aws_ami_from_instance.pmh_ami.id
시작 템플릿에 사용할 AMI의 ID를 지정
(앞서 만들었던 AMI의 id)
instance_type = "t2.micro"
인스턴스의 유형을 "t2.micro"로 설정
key_name = "pmh-key"
SSH 키 페어의 이름 설정
vpc_security_group_ids = [aws_security_group.pmh_sg.id]
인스턴스에 할당할 보안 그룹의 ID를 지정
(앞서 만들었던 보안 그룹의 id)
tag_specifications
인스턴스에 대한 태그를 지정
1. 리소스 유형을 "instance"로 설정
2. "Name" 태그를 "pmh-temp:로 설정
3. Terraform 분석 및 적용
terraform 파일이 있는 위치에서 아래 명령어 실행
# 변경 사항 검토 및 확인
terraform plan
# (대화형 승인 없이)변경 사용항 적용
terraform apply -auto-approve
4. 결과
+ 변수처리하는 방법
tag 변수 파일 생성
# var.tf
variable "tag" {
type = string
default = "pmh"
}
# 16_lantemp.tf
resource "aws_launch_template" "pmh_lantemp" {
name = "${var.tag}-lantemp"
block_device_mappings {
device_name = "/dev/sdf"
ebs {
volume_size = 10
volume_type = "gp2"
}
}
image_id = aws_ami_from_instance.pmh_ami.id
instance_type = "t2.micro"
key_name = "${var.tag}-key"
vpc_security_group_ids = [aws_security_group.pmh_sg.id]
tag_specifications {
resource_type = "instance"
tags = {
Name = "${var.tag}-temp"
}
}
}
'AWS > Terraform' 카테고리의 다른 글
[AWS Terraform 기초]19. AutoScaling Group에 ALB 연결 (0) | 2023.07.13 |
---|---|
[AWS Terraform 기초]18. AutoScaling Group 생성 (0) | 2023.07.13 |
[AWS Terraform 기초]16. AMI 생성 (0) | 2023.07.13 |
[AWS Terraform 기초]15. ALB Listener 생성 (0) | 2023.07.12 |
[AWS Terraform 기초]14. ALB Target Group 생성 (0) | 2023.07.12 |