[Terraform] Auto Scaling
provider "aws_ASG" {
region = "ap-northeast-2" #사용 리전
}
## ASG 생성에 사용되는 launch configuration 생성 ##
resource "aws_launch_configuration" "launch_config" {
name = "terraform-config" # 지정하지 않을 경우 날짜로 입력
image_id = "ami 넣기" # EC2 OS image AMI
instance_type = "instance_type 넣기" #타입
security_groups = [aws_security_group.instance.id] # 해당 SG
lifecycle {
create_before_destroy = true # 수명 주기 설정
}
}
## 위 생성한 launch configuratio로 ASG 생성 ##
resource "aws_autoscaling_group" "ASG" {
name = "terraform-asg"
launch_configuration = aws_launch_configuration.launch_config.name #위에 생성한 launch_configuration
vpc_zone_identifier = Subnet.ID 적기 #적용 VPC_Subnet
###
min_size = 1 #최소 생성
max_size = 4 #최대 생성
###
tag {
key = "Name"
value = "terraform-asg-ec2" #ASG 태그
propagate_at_launch = "true"
}
}
################### 적용 VPC / subnet으로 적용 #################################
#aws_vpc 소스를 사용 하여 조회
data "aws_subnet_ids" "selected" {
vpc_id = var.vpc_id #해당 VPC의 Subnet
}
data "aws_vpc" "selected" {
id = var.vpc_id #VPC
}
####################################################
##SG 적용##
resource "aws_security_group" "instance" {
name = "ASG-SG"
ingress {
from_port = var.server_port
to_port = var.server_port
protocol = "tcp"
cidr_blocks = ["0.0.0.0/0"]
}
tags = {
Name = "ASG-sg"
}
}