앞서 만들었던 시작 템플릿과 AMI로 오토 스케일링 생성
1. Terraform Docs 예시
https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/autoscaling_group
Terraform Registry
registry.terraform.io
예시:

인수 등:

2. Terraform 코드 작성
# 17_autosg.tf
resource "aws_autoscaling_group" "pmh_autosg" {
name = "pmh-autosg"
min_size = 1
max_size = 6
desired_capacity = 1
health_check_grace_period = 60
health_check_type = "EC2"
force_delete = false
vpc_zone_identifier = [aws_subnet.pmh_puba.id, aws_subnet.pmh_pubc.id]
launch_template {
id = aws_launch_template.pmh_lantemp.id
version = "$Latest"
}
}
resource "aws_autoscaling_group" "pmh_autosg"
pmh_autosg 라는 이름의 오토 스케일링 그룹 생성
name = "pmh-autosg"
Auto Scaling 그룹의 이름을 "pmh-autosg"로 설정
min_size = 1
Auto Scaling 그룹의 최소 인스턴스 개수를 1로 설정
max_size = 6
Auto Scaling 그룹의 최대 인스턴스 개수를 6으로 설정
desired_capacity = 1
Auto Scaling 그룹의 기본 인스턴스 개수를 1로 설정
health_check_grace_period = 60
인스턴스의 건강 상태 체크 기간을 60초로 설정
health_check_type = "EC2"
인스턴스 건강 상태 체크 유형을 "EC2"로 설정
force_delete = false
Auto Scaling 그룹이 삭제될 때 인스턴스를 강제로 삭제하지 않도록 설정
vpc_zone_identifier = [aws_subnet.pmh_puba.id, aws_subnet.pmh_pubc.id]
Auto Scaling 그룹이 배포될 VPC의 서브넷 식별자를 설정
(앞서 만들었던 서브넷의 id)
.
launch_template
Auto Scaling 그룹에 대한 시작 템플릿(Launch Template)을 설정
1. Auto Scaling 그룹에 사용할 시작 템플릿의 ID를 지정(앞서 만들었던 시작 템플릿의 id)
2. 시작 템플릿의 최신 버전을 사용

3. Terraform 분석 및 적용
terraform 파일이 있는 위치에서 아래 명령어 실행
# 변경 사항 검토 및 확인
terraform plan
# (대화형 승인 없이)변경 사용항 적용
terraform apply -auto-approve
4. 결과

+ 변수처리하는 방법
tag 변수 파일 생성
# var.tf
variable "tag" {
type = string
default = "pmh"
}
# 17_autosg.tf
resource "aws_autoscaling_group" "pmh_autosg" {
name = "${var.tag}-autosg"
min_size = 1
max_size = 6
desired_capacity = 1
health_check_grace_period = 60
health_check_type = "EC2"
force_delete = false
vpc_zone_identifier = concat(aws_subnet.pmh_pub[*].id)
launch_template {
id = aws_launch_template.pmh_lantemp.id
version = "$Latest"
}
}
'AWS > Terraform' 카테고리의 다른 글
[AWS Terraform 기초]20. RDS 생성 (0) | 2023.07.14 |
---|---|
[AWS Terraform 기초]19. AutoScaling Group에 ALB 연결 (0) | 2023.07.13 |
[AWS Terraform 기초]17. Launch Template(시작 템플릿) 생성 (0) | 2023.07.13 |
[AWS Terraform 기초]16. AMI 생성 (0) | 2023.07.13 |
[AWS Terraform 기초]15. ALB Listener 생성 (0) | 2023.07.12 |