DevOps/Terraform

[NCP] Terraform - time_sleep(sleep걸기) 사용

728x90
반응형

resource : time_sleep

일반적으로 추가 리소스에 대해 생성 및/또는 소멸을 지연시키는 리소스를 관리합니다.

 이렇게 하면 local-exec프로비저닝 도구 사용 시 플랫폼 간 호환성 및 소멸 시간 문제가 방지 됩니다.

 

 

https://registry.terraform.io/providers/hashicorp/time/latest/docs/resources/sleep

 

Terraform Registry

 

registry.terraform.io

 

 

 

provider "ncloud" {
  access_key = var.access_key
  secret_key = var.secret_key
  region     = var.region
  site       = var.site
}

resource "ncloud_server" "server" {
  for_each = toset( ["o-api-001"] )
  name                        = each.key
  member_server_image_no      = var.server_image_product_code
  server_product_code         = var.server_product_code
  access_control_group_configuration_no_list    = ["37781"]
  zone                         = var.zones
  fee_system_type_code        = "FXSUM"
  is_protect_server_termination = true
}

resource "time_sleep" "wait_3_minutes" {
  depends_on = [ncloud_server.server]

  create_duration = "3m"
}

resource "ncloud_server" "server2" {
  depends_on = [time_sleep.wait_3_minutes]
  for_each = toset( ["o-api-002"] )
  name                        = each.key
  member_server_image_no      = var.server_image_product_code
  server_product_code         = var.server_product_code
  access_control_group_configuration_no_list    = ["37781"]
  zone                         = var.zones
  fee_system_type_code        = "FXSUM"
  is_protect_server_termination = true

}

 

server1 자원을 생성하고 3분간의 지연 이후에 server2를 생성함

한번에 많은 자원을 생성할 시 CSP에 상황에 따라 부하가 걸려 lock이 걸릴 수 있기 때문에

(실제로 lock이 걸렸었음)

 

생성하고 sleep을 걸어 둠

728x90
728x90