네이버클라우드플랫폼(Ncloud)/테라폼
테라폼 Auto Scaling Group 생성(+ 서버이미지 적용)
bo20cy
2024. 3. 1. 05:40
테라폼 Auto Scaling Group 생성(+ 서버이미지 적용)
테라폼 Lunch Configuration 생성
resource "ncloud_launch_configuration" "lc" {
name = "my-lc"
server_image_product_code = "SW.VSVR.OS.LNX64.CNTOS.0703.B050"
server_product_code = "SVR.VSVR.HICPU.C002.M004.NET.SSD.B050.G002"
}
테라폼 Auto Scaling Group 생성
resource "ncloud_auto_scaling_group" "auto" {
access_control_group_no_list = [ncloud_vpc.example.default_access_control_group_no]
subnet_no = ncloud_subnet.example.subnet_no
launch_configuration_no = ncloud_launch_configuration.lc.launch_configuration_no
min_size = 1
max_size = 1
}
Auto Scaling 정책 추가
resource "ncloud_auto_scaling_policy" "policy" {
name = "my-policy"
adjustment_type_code = "CHANG"
scaling_adjustment = 2
auto_scaling_group_no = ncloud_auto_scaling_group.asg.auto_scaling_group_no
}
Terraform Registry
registry.terraform.io
Terraform Registry
registry.terraform.io
auto.tf
#auto.tf
#auto_lc
resource "ncloud_launch_configuration" "create_auto_lc" {
name = "${var.pnoun}-auto-lc"
member_server_image_no = 22863503
server_product_code = "SVR.VSVR.STAND.C002.M008.NET.HDD.B050.G002"
login_key_name = ncloud_login_key.create_key.key_name
}
#오토스케일링그룹
resource "ncloud_auto_scaling_group" "create_auto" {
count = length(var.zone)
name = "${var.pnoun}-auto-${count.index}"
access_control_group_no_list = [ncloud_vpc.create_vpc.default_access_control_group_no]
subnet_no = ncloud_subnet.create_pub_subnet[count.index].id
launch_configuration_no = ncloud_launch_configuration.create_auto_lc.id
min_size = 0
max_size = 2
desired_capacity = 0
default_cooldown = 300
health_check_type_code = "LOADB" //SVR or LOADB
health_check_grace_period = 300
server_name_prefix = var.pnoun
}
resource "ncloud_auto_scaling_policy" "create_auto_policy_add" {
count = length(var.zone)
name = "${var.pnoun}-auto-policy-add"
adjustment_type_code = "CHANG"
scaling_adjustment = "1"
auto_scaling_group_no = ncloud_auto_scaling_group.create_auto[count.index].id
}
resource "ncloud_auto_scaling_policy" "create_auto_policy_dec" {
count = length(var.zone)
name = "${var.pnoun}-auto-policy-dec"
adjustment_type_code = "CHANG"
scaling_adjustment = "-1"
auto_scaling_group_no = ncloud_auto_scaling_group.create_auto[count.index].id
}
변수들
adjustment_type_code
- (Required) Determines how the number of servers is scaled when the scaling policy is performed. Valid values areCHANG
,EXACT
, andPRCNT
.scaling_adjustment
- (Required) Specify the adjustment value for the adjustment type. Enter a negative value to decrease when adjustTypeCode isCHANG
orPRCNT
.
서버이미지
member_server_image_no
는 server_image_product_code
대신 사용 할 수 있다.
Auto scaling 에도 사용가능 하지만 server 만들때도 적용가능하다.
resource "ncloud_server" "server" {
subnet_no = ncloud_subnet.test.id
name = "my-tf-server"
member_server_image_no = 22863503
login_key_name = ncloud_login_key.loginkey.key_name
}
서버 이미지로 가능하다.
참고:
추가중...