AWS/Terraform / / 2023. 7. 13. 23:15

[AWS Terraform 기초]18. AutoScaling Group 생성

반응형

앞서 만들었던 시작 템플릿과 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"
  }
}

 

 

 

 
반응형
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유