เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎ เชฎเซเชถเซเช•เซ‡เชฒเซ€เช“

เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎ เชฎเซเชถเซเช•เซ‡เชฒเซ€เช“
เชšเชพเชฒเซ‹ เชฒเซ‚เชชเซเชธ, เชœเซ‹ เชจเชฟเชตเซ‡เชฆเชจเซ‹ เช…เชจเซ‡ เชœเชฎเชพเชตเชŸ เชคเช•เชจเซ€เช•เซ‹, เชคเซ‡เชฎเชœ เชธเชพเชฎเชพเชจเซเชฏ เชฐเซ€เชคเซ‡ เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎเชจเซ‡ เช…เชธเชฐ เช•เชฐเชคเชพ เชตเชงเซ เชธเชพเชฎเชพเชจเซเชฏ เชฎเซเชฆเซเชฆเชพเช“ เชธเชนเชฟเชค, เช•เซ‡เชŸเชฒเซ€เช• เชฎเซเชถเซเช•เซ‡เชฒเซ€เช“เชจเซ‡ เชชเซเชฐเช•เชพเชถเชฟเชค เช•เชฐเซ€เช:

  • เช—เชฃเชคเชฐเซ€ เช…เชจเซ‡ for_each เชชเชฐเชฟเชฎเชพเชฃเซ‹เชจเซ€ เชฎเชฐเซเชฏเชพเชฆเชพเช“ เช›เซ‡;
  • เชถเซ‚เชจเซเชฏ เชกเชพเช‰เชจเชŸเชพเช‡เชฎ เชœเชฎเชพเชตเชŸเชจเซ‡ เชฎเชฐเซเชฏเชพเชฆเชฟเชค เช•เชฐเซ‹;
  • เชธเชพเชฐเซ€ เชฏเซ‹เชœเชจเชพ เชชเชฃ เชจเชฟเชทเซเชซเชณ เชฅเชˆ เชถเช•เซ‡ เช›เซ‡;
  • เชฐเชฟเชซเซ‡เช•เซเชŸเชฐเชฟเช‚เช—เชฎเชพเช‚ เชคเซ‡เชจเซ€ เชฎเซเชถเซเช•เซ‡เชฒเซ€เช“ เชนเซ‹เชˆ เชถเช•เซ‡ เช›เซ‡;
  • เชตเชฟเชฒเช‚เชฌเชฟเชค เชธเซเชธเช‚เช—เชคเชคเชพ เชธเซเชธเช‚เช—เชค เช›เซ‡... เชธเซเชฅเช—เชฟเชค เชธเชพเชฅเซ‡.

เช—เชฃเชคเชฐเซ€ เช…เชจเซ‡ for_each เชชเชฐเชฟเชฎเชพเชฃเซ‹เชจเซ€ เชฎเชฐเซเชฏเชพเชฆเชพเช“ เช›เซ‡

เช† เชชเซเชฐเช•เชฐเชฃเชจเชพ เช‰เชฆเชพเชนเชฐเชฃเซ‹ เชฒเซ‚เชชเซเชธ เช…เชจเซ‡ เชถเชฐเชคเซ€ เชคเชฐเซเช•เชฎเชพเช‚ เช•เชพเช‰เชจเซเชŸ เชชเซ‡เชฐเชพเชฎเซ€เชŸเชฐ เช…เชจเซ‡ for_each เช…เชญเชฟเชตเซเชฏเช•เซเชคเชฟเชจเซ‹ เชตเซเชฏเชพเชชเช• เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‡ เช›เซ‡. เชคเซ‡เช“ เชธเชพเชฐเซเช‚ เชชเซเชฐเชฆเชฐเซเชถเชจ เช•เชฐเซ‡ เช›เซ‡, เชชเชฐเช‚เชคเซ เชคเซ‡เชฎเชจเซ€ เชชเชพเชธเซ‡ เชฌเซ‡ เชฎเชนเชคเซเชตเชชเซ‚เชฐเซเชฃ เชฎเชฐเซเชฏเชพเชฆเชพเช“ เช›เซ‡ เชœเซ‡เชจเชพ เชตเชฟเชถเซ‡ เชคเชฎเชพเชฐเซ‡ เชœเชพเช—เซƒเชค เชฐเชนเซ‡เชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡.

  • เช•เชพเช‰เชจเซเชŸ เช…เชจเซ‡ เชซเซ‹เชฐ_เชเชš เช•เซ‹เชˆเชชเชฃ เชธเช‚เชธเชพเชงเชจ เช†เช‰เชŸเชชเซเชŸ เชšเชฒเซ‹เชจเซ‹ เชธเช‚เชฆเชฐเซเชญ เช†เชชเซ€ เชถเช•เชคเชพ เชจเชฅเซ€.
  • เช—เชฃเชคเชฐเซ€ เช…เชจเซ‡ for_each เชจเซ‹ เช‰เชชเชฏเซ‹เช— เชฎเซ‹เชกเซเชฏเซเชฒ เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจเชฎเชพเช‚ เช•เชฐเซ€ เชถเช•เชพเชคเซ‹ เชจเชฅเซ€.

เช—เชฃเชคเชฐเซ€ เช…เชจเซ‡ for_each เช•เซ‹เชˆเชชเชฃ เชธเช‚เชธเชพเชงเชจ เช†เช‰เชŸเชชเซเชŸ เชšเชฒเซ‹เชจเซ‹ เชธเช‚เชฆเชฐเซเชญ เช†เชชเซ€ เชถเช•เชคเชพ เชจเชฅเซ€

เช•เชฒเซเชชเชจเชพ เช•เชฐเซ‹ เช•เซ‡ เชคเชฎเชพเชฐเซ‡ เช˜เชฃเชพ EC2 เชธเชฐเซเชตเชฐเซเชธ เชœเชฎเชพเชตเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡ เช…เชจเซ‡ เช•เซ‡เชŸเชฒเชพเช• เช•เชพเชฐเชฃเซ‹เชธเชฐ เชคเชฎเซ‡ ASG เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพ เชฎเชพเช‚เช—เชคเชพ เชจเชฅเซ€. เชคเชฎเชพเชฐเซ‹ เช•เซ‹เชก เช†เชจเชพ เชœเซ‡เชตเซ‹ เชนเซ‹เชˆ เชถเช•เซ‡ เช›เซ‡:

resource "aws_instance" "example_1" {
   count             = 3
   ami                = "ami-0c55b159cbfafe1f0"
   instance_type = "t2.micro"
}

เชšเชพเชฒเซ‹ เชคเซ‡เชฎเชจเซ‡ เชเช• เชชเช›เซ€ เชเช• เชœเซ‹เชˆเช.

เช•เชพเช‰เชจเซเชŸ เชชเซ‡เชฐเชพเชฎเซ€เชŸเชฐ เชธเซเชฅเชฟเชฐ เชฎเซ‚เชฒเซเชฏ เชชเชฐ เชธเซ‡เชŸ เช•เชฐเซ‡เชฒ เชนเซ‹เชตเชพเชฅเซ€, เช† เช•เซ‹เชก เชธเชฎเชธเซเชฏเชพ เชตเชฟเชจเชพ เช•เชพเชฐเซเชฏ เช•เชฐเชถเซ‡: เชœเซเชฏเชพเชฐเซ‡ เชคเชฎเซ‡ เชฒเชพเช—เซ เช†เชฆเซ‡เชถ เชšเชฒเชพเชตเซ‹ เช›เซ‹, เชคเซเชฏเชพเชฐเซ‡ เชคเซ‡ เชคเซเชฐเชฃ EC2 เชธเชฐเซเชตเชฐ เชฌเชจเชพเชตเชถเซ‡. เชชเชฐเช‚เชคเซ เชœเซ‹ เชคเชฎเซ‡ เชคเชฎเชพเชฐเชพ เชตเชฐเซเชคเชฎเชพเชจ AWS เชชเซเชฐเชฆเซ‡เชถเชฎเชพเช‚ เชฆเชฐเซ‡เช• เช…เชตเซ‡เชฒเซ‡เชฌเชฟเชฒเชฟเชŸเซ€ เชเซ‹เชจ (AZ) เชฎเชพเช‚ เชเช• เชธเชฐเซเชตเชฐ เชœเชฎเชพเชตเชตเชพ เชฎเชพเช‚เช—เชคเชพ เชนเซ‹เชต เชคเซ‹ เชถเซเช‚? เชคเชฎเซ‡ เชคเชฎเชพเชฐเชพ เช•เซ‹เชกเชจเซ‡ aws_availability_zones เชกเซ‡เชŸเชพ เชธเซเชคเซเชฐเซ‹เชคเชฎเชพเช‚เชฅเซ€ เชเซ‹เชจเชจเซ€ เชธเซ‚เชšเชฟ เชฒเซ‹เชก เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹ เช…เชจเซ‡ เชชเช›เซ€ เชฆเชฐเซ‡เช•เชฎเชพเช‚เชฅเซ€ เชฒเซ‚เชช เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹ เช…เชจเซ‡ เช•เชพเช‰เชจเซเชŸ เชชเซ‡เชฐเชพเชฎเซ€เชŸเชฐ เช…เชจเซ‡ เชเชฐเซ‡ เช‡เชจเซเชกเซ‡เช•เซเชธ เชเช•เซเชธเซ‡เชธเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชคเซ‡เชฎเชพเช‚ EC2 เชธเชฐเซเชตเชฐ เชฌเชจเชพเชตเซ€ เชถเช•เซ‹ เช›เซ‹:

resource "aws_instance" "example_2" {
   count                   = length(data.aws_availability_zones.all.names)
   availability_zone   = data.aws_availability_zones.all.names[count.index]
   ami                     = "ami-0c55b159cbfafe1f0"
   instance_type       = "t2.micro"
}

data "aws_availability_zones" "all" {}

เช† เช•เซ‹เชก เชชเชฃ เชธเชพเชฐเซเช‚ เช•เชพเชฎ เช•เชฐเชถเซ‡, เช•เชพเชฐเชฃ เช•เซ‡ เช•เชพเช‰เชจเซเชŸ เชชเซ‡เชฐเชพเชฎเซ€เชŸเชฐ เช•เซ‹เชˆเชชเชฃ เชธเชฎเชธเซเชฏเชพ เชตเชฟเชจเชพ เชกเซ‡เชŸเชพ เชธเซเชคเซเชฐเซ‹เชคเซ‹เชจเซ‹ เชธเช‚เชฆเชฐเซเชญ เช†เชชเซ€ เชถเช•เซ‡ เช›เซ‡. เชชเชฐเช‚เชคเซ เชœเซ‹ เชคเชฎเชพเชฐเซ‡ เชœเซ‡ เชธเชฐเซเชตเชฐเซเชธ เชฌเชจเชพเชตเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡ เชคเซ‡ เช…เชฎเซเช• เชธเช‚เชธเชพเชงเชจเซ‹เชจเชพ เช†เช‰เชŸเชชเซเชŸ เชชเชฐ เช†เชงเชพเชฐเชฟเชค เชนเซ‹เชฏ เชคเซ‹ เชถเซเช‚ เชฅเชพเชฏ? เช† เชฆเชฐเซเชถเชพเชตเชตเชพ เชฎเชพเชŸเซ‡, เชธเซŒเชฅเซ€ เชธเชนเซ‡เชฒเซ‹ เชฐเชธเซเชคเซ‹ random_integer เชธเซเชคเซเชฐเซ‹เชคเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพเชจเซ‹ เช›เซ‡, เชœเซ‡ เชจเชพเชฎ เชธเซ‚เชšเชตเซ‡ เช›เซ‡ เชคเซ‡เชฎ, เชฐเซ‡เชจเซเชกเชฎ เชชเซ‚เชฐเซเชฃเชพเช‚เช• เชชเชฐเชค เช•เชฐเซ‡ เช›เซ‡:

resource "random_integer" "num_instances" {
  min = 1
  max = 3
}

เช† เช•เซ‹เชก 1 เช…เชจเซ‡ 3 เชจเซ€ เชตเชšเซเชšเซ‡ เชฐเซ‡เชจเซเชกเชฎ เชจเช‚เชฌเชฐ เชœเชจเชฐเซ‡เชŸ เช•เชฐเซ‡ เช›เซ‡. เชšเชพเชฒเซ‹ เชœเซ‹เชˆเช เช•เซ‡ เชœเซ‹ เช†เชชเชฃเซ‡ aws_instance เชฐเชฟเชธเซ‹เชฐเซเชธเชจเชพ เช•เชพเช‰เชจเซเชŸ เชชเซ‡เชฐเชพเชฎเซ€เชŸเชฐเชฎเชพเช‚ เช† เชธเซเชคเซเชฐเซ‹เชคเชจเชพ เช†เช‰เชŸเชชเซเชŸเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพเชจเซ‹ เชชเซเชฐเชฏเชพเชธ เช•เชฐเซ€เช เชคเซ‹ เชถเซเช‚ เชฅเชพเชฏ เช›เซ‡:

resource "aws_instance" "example_3" {
   count             = random_integer.num_instances.result
   ami                = "ami-0c55b159cbfafe1f0"
   instance_type = "t2.micro"
}

เชœเซ‹ เชคเชฎเซ‡ เช† เช•เซ‹เชก เชชเชฐ เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎ เชชเซเชฒเชพเชจ เชšเชฒเชพเชตเซ‹ เช›เซ‹, เชคเซ‹ เชคเชฎเชจเซ‡ เชจเซ€เชšเซ‡เชจเซ€ เชญเซ‚เชฒ เชฎเชณเชถเซ‡:

Error: Invalid count argument

   on main.tf line 30, in resource "aws_instance" "example_3":
   30: count = random_integer.num_instances.result

The "count" value depends on resource attributes that cannot be determined until apply, so Terraform cannot predict how many instances will be created. To work around this, use the -target argument to first apply only the resources that the count depends on.

เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎ เชฎเชพเชŸเซ‡ เชœเชฐเซ‚เชฐเซ€ เช›เซ‡ เช•เซ‡ เช•เซ‹เชˆเชชเชฃ เชธเช‚เชธเชพเชงเชจเซ‹ เชฌเชจเชพเชตเชตเชพเชฎเชพเช‚ เช…เชฅเชตเชพ เชธเช‚เชถเซ‹เชงเชฟเชค เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เชคเซ‡ เชชเชนเซ‡เชฒเชพเช‚, เช†เชฏเซ‹เชœเชจ เชคเชฌเช•เซเช•เชพ เชฆเชฐเชฎเชฟเชฏเชพเชจ เชฆเชฐเซ‡เช•เชจเซ€ เช—เชฃเชคเชฐเซ€ เช…เชจเซ‡ เช—เชฃเชคเชฐเซ€ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡. เช†เชจเซ‹ เช…เชฐเซเชฅ เช เช›เซ‡ เช•เซ‡ เช—เชฃเชคเชฐเซ€ เช…เชจเซ‡ for_each เช เชถเชพเชฌเซเชฆเชฟเช•, เชšเชฒเซ‹, เชกเซ‡เชŸเชพ เชธเซเชคเซเชฐเซ‹เชคเซ‹ เช…เชจเซ‡ เชธเช‚เชธเชพเชงเชจ เชธเซ‚เชšเชฟเชจเซ‹ เชชเชฃ เชธเช‚เชฆเชฐเซเชญ เชฒเชˆ เชถเช•เซ‡ เช›เซ‡ (เชœเซเชฏเชพเช‚ เชธเซเชงเซ€ เชคเซ‡เชฎเชจเซ€ เชฒเช‚เชฌเชพเชˆ เชถเซ‡เชกเซเชฏเซเชฒเชฟเช‚เช— เชธเชฎเชฏเซ‡ เชจเช•เซเช•เซ€ เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡), เชชเชฐเช‚เชคเซ เช—เชฃเชคเชฐเซ€ เช•เชฐเซ‡เชฒ เชธเช‚เชธเชพเชงเชจ เช†เช‰เชŸเชชเซเชŸ เชšเชฒเซ‹เชจเซ‹ เชจเชนเซ€เช‚.

เช—เชฃเชคเชฐเซ€ เช…เชจเซ‡ for_each เชจเซ‹ เช‰เชชเชฏเซ‹เช— เชฎเซ‹เชกเซเชฏเซเชฒ เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจเชฎเชพเช‚ เช•เชฐเซ€ เชถเช•เชพเชคเซ‹ เชจเชฅเซ€

เช•เซ‹เชˆ เชฆเชฟเชตเชธ เชคเชฎเซ‡ เชคเชฎเชพเชฐเชพ เชฎเซ‹เชกเซเชฏเซเชฒ เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจเชฎเชพเช‚ เช—เชฃเชคเชฐเซ€ เชชเชฐเชฟเชฎเชพเชฃ เช‰เชฎเซ‡เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชฒเชฒเชšเชพเชˆ เชถเช•เซ‹ เช›เซ‹:

module "count_example" {
     source = "../../../../modules/services/webserver-cluster"

     count = 3

     cluster_name = "terraform-up-and-running-example"
     server_port = 8080
     instance_type = "t2.micro"
}

เช† เช•เซ‹เชก เชตเซ‡เชฌเชธเชฐเซเชตเชฐ-เช•เซเชฒเชธเซเชŸเชฐ เชธเช‚เชธเชพเชงเชจเชจเซ€ เชคเซเชฐเชฃ เชจเช•เชฒเซ‹ เชฌเชจเชพเชตเชตเชพ เชฎเชพเชŸเซ‡ เชฎเซ‹เชกเซเชฏเซเชฒเชจเซ€ เช…เช‚เชฆเชฐ เช—เชฃเชคเชฐเซ€เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพเชจเซ‹ เชชเซเชฐเชฏเชพเชธ เช•เชฐเซ‡ เช›เซ‡. เช…เชฅเชตเชพ เชคเชฎเซ‡ เช…เชฎเซเช• เชฌเซเชฒเชฟเชฏเชจ เชถเชฐเชค เชชเชฐ เช†เชงเชพเชฐเชฟเชค เชฎเซ‹เชกเซเชฏเซเชฒเชจเซ‡ 0 เชชเชฐ เชธเซ‡เชŸ เช•เชฐเซ€เชจเซ‡ เชตเซˆเช•เชฒเซเชชเชฟเช• เชฌเชจเชพเชตเชตเชพ เชฎเชพเช‚เช—เซ‹ เช›เซ‹. เช† เชตเชพเชœเชฌเซ€ เช•เซ‹เชก เชœเซ‡เชตเซ‹ เชฆเซ‡เช–เชพเชˆ เชถเช•เซ‡ เช›เซ‡, เชชเชฐเช‚เชคเซ เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎ เชชเซเชฒเชพเชจ เชšเชฒเชพเชตเชคเซ€ เชตเช–เชคเซ‡ เชคเชฎเชจเซ‡ เช† เชญเซ‚เชฒ เชฎเชณเชถเซ‡:

Error: Reserved argument name in module block

   on main.tf line 13, in module "count_example":
   13: count = 3

The name "count" is reserved for use in a future version of Terraform.

เช•เชฎเชจเชธเซ€เชฌเซ‡, เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎ 0.12.6 เชฎเซเชœเชฌ, เชฎเซ‹เชกเซเชฏเซเชฒ เชธเช‚เชธเชพเชงเชจเชฎเชพเช‚ เช—เชฃเชคเชฐเซ€ เช…เชฅเชตเชพ for_each เชจเซ‹ เช‰เชชเชฏเซ‹เช— เชธเชชเซ‹เชฐเซเชŸ เช•เชฐเชคเซเช‚ เชจเชฅเซ€. เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎ 0.12 เชฐเซ€เชฒเซ€เช เชจเซ‹เชŸเซเชธ (http://bit.ly/3257bv4) เชฎเซเชœเชฌ, HashiCorp เชญเชตเชฟเชทเซเชฏเชฎเชพเช‚ เช† เช•เซเชทเชฎเชคเชพ เช‰เชฎเซ‡เชฐเชตเชพเชจเซ€ เชฏเซ‹เชœเชจเชพ เชงเชฐเชพเชตเซ‡ เช›เซ‡, เชคเซ‡เชฅเซ€ เชคเชฎเซ‡ เช† เชชเซเชธเซเชคเช• เช•เซเชฏเชพเชฐเซ‡ เชตเชพเช‚เชšเชถเซ‹ เชคเซ‡เชจเชพ เช†เชงเชพเชฐเซ‡, เชคเซ‡ เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เชœ เช‰เชชเชฒเชฌเซเชง เชนเซ‹เชˆ เชถเช•เซ‡ เช›เซ‡. เช–เชพเชคเชฐเซ€ เชฎเชพเชŸเซ‡ เชถเซ‹เชงเชตเชพ เชฎเชพเชŸเซ‡, เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎ เชšเซ‡เชจเซเชœเชฒเซ‹เช— เช…เชนเซ€เช‚ เชตเชพเช‚เชšเซ‹.

เชถเซ‚เชจเซเชฏ เชกเชพเช‰เชจเชŸเชพเช‡เชฎ เชœเชฎเชพเชตเชŸเชจเซ€ เชฎเชฐเซเชฏเชพเชฆเชพเช“

ASG เชธเชพเชฅเซ‡ เชธเช‚เชฏเซ‹เชœเชจเชฎเชพเช‚ create_before_destroy เชฌเซเชฒเซ‹เช•เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเซ‹ เช เชถเซ‚เชจเซเชฏ-เชกเชพเช‰เชจเชŸเชพเช‡เชฎ เชœเชฎเชพเชตเชŸ เชฌเชจเชพเชตเชตเชพ เชฎเชพเชŸเซ‡ เชเช• เช‰เชคเซเชคเชฎ เช‰เช•เซ‡เชฒ เช›เซ‡, เชเช• เชšเซ‡เชคเชตเชฃเซ€ เชธเชฟเชตเชพเชฏ: เช“เชŸเซ‹เชธเซเช•เซ‡เชฒเชฟเช‚เช— เชจเชฟเชฏเชฎเซ‹ เช†เชงเชพเชฐเชญเซ‚เชค เชจเชฅเซ€. เช…เชฅเชตเชพ เชตเชงเซ เชšเซ‹เช•เซเช•เชธ เช•เชนเซ€เช เชคเซ‹, เช† เชฆเชฐเซ‡เช• เชœเชฎเชพเชตเชŸ เชชเชฐ ASG เช•เชฆเชจเซ‡ min_size เชชเชฐ เชซเชฐเซ€เชฅเซ€ เชธเซ‡เชŸ เช•เชฐเซ‡ เช›เซ‡, เชœเซ‹ เชคเชฎเซ‡ เชšเชพเชฒเซ€ เชฐเชนเซ‡เชฒ เชธเชฐเซเชตเชฐเชจเซ€ เชธเช‚เช–เซเชฏเชพ เชตเชงเชพเชฐเชตเชพ เชฎเชพเชŸเซ‡ เช“เชŸเซ‹เชธเซเช•เซ‡เชฒเชฟเช‚เช— เชจเชฟเชฏเชฎเซ‹เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชคเชพ เชนเซ‹เชต เชคเซ‹ เชธเชฎเชธเซเชฏเชพ เช†เชตเซ€ เชถเช•เซ‡ เช›เซ‡.

เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชตเซ‡เชฌเชธเชฐเซเชตเชฐ-เช•เซเชฒเชธเซเชŸเชฐ เชฎเซ‹เชกเซเชฏเซเชฒเชฎเชพเช‚ aws_autoscaling_schedule เชธเช‚เชธเชพเชงเชจเซ‹เชจเซ€ เชœเซ‹เชกเซ€ เช›เซ‡, เชœเซ‡ เชธเชตเชพเชฐเซ‡ 9 เชตเชพเช—เซเชฏเซ‡ เช•เซเชฒเชธเซเชŸเชฐเชฎเชพเช‚ เชธเชฐเซเชตเชฐเชจเซ€ เชธเช‚เช–เซเชฏเชพ เชฌเซ‡เชฅเซ€ เชฆเชธ เชธเซเชงเซ€ เชตเชงเชพเชฐเซ€ เชฆเซ‡ เช›เซ‡. เชœเซ‹ เชคเชฎเซ‡ เชธเชตเชพเชฐเซ‡ 11 เชตเชพเช—เซเชฏเซ‡ เชœเชฎเชพเชตเชถเซ‹, เชคเซ‹ เชจเชตเซเช‚ ASG เชฆเชธเชจเซ‡ เชฌเชฆเชฒเซ‡ เชฎเชพเชคเซเชฐ เชฌเซ‡ เชธเชฐเซเชตเชฐเชฅเซ€ เชฌเซเชŸ เชฅเชถเซ‡ เช…เชจเซ‡ เชฌเซ€เชœเชพ เชฆเชฟเชตเชธเซ‡ เชธเชตเชพเชฐเซ‡ 9 เชตเชพเช—เซเชฏเชพ เชธเซเชงเซ€ เชคเซ‡ เชœ เชฐเซ€เชคเซ‡ เชฐเชนเซ‡เชถเซ‡.

เช† เชฎเชฐเซเชฏเชพเชฆเชพเชจเซ‡ เช˜เชฃเซ€ เชฐเซ€เชคเซ‡ เชฆเซ‚เชฐ เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡.

  • aws_autoscaling_schedule เชฎเชพเช‚ เชชเซเชจเชฐเชพเชตเชฐเซเชคเชฟเชค เชชเชฐเชฟเชฎเชพเชฃเชจเซ‡ 0 9 * * * ("เชธเชตเชพเชฐเซ‡ 9 เชตเชพเช—เซเชฏเซ‡ เชšเชฒเชพเชตเซ‹") เชฅเซ€ เช•เช‚เชˆเช• 0-59 9-17 * * * ("เชธเชตเชพเชฐเซ‡ 9 เชฅเซ€ เชธเชพเช‚เชœเชจเชพ 5 เชตเชพเช—เซเชฏเชพ เชธเซเชงเซ€ เชฆเชฐ เชฎเชฟเชจเชฟเชŸเซ‡ เชšเชฒเชพเชตเซ‹") เชฎเชพเช‚ เชฌเชฆเชฒเซ‹. เชœเซ‹ ASG เชชเชนเซ‡เชฒเชพเชฅเซ€ เชœ เชฆเชธ เชธเชฐเซเชตเชฐ เชงเชฐเชพเชตเซ‡ เช›เซ‡, เชคเซ‹ เช† เช“เชŸเซ‹เชธเซเช•เซ‡เชฒเชฟเช‚เช— เชจเชฟเชฏเชฎเชจเซ‡ เชซเชฐเซ€เชฅเซ€ เชšเชฒเชพเชตเชตเชพเชฅเซ€ เช•เช‚เชˆเชชเชฃ เชฌเชฆเชฒเชพเชถเซ‡ เชจเชนเซ€เช‚, เชœเซ‡ เช…เชฎเชจเซ‡ เชœเซ‹เชˆเช เช›เซ‡. เชชเชฐเช‚เชคเซ เชœเซ‹ ASG เชคเชพเชœเซ‡เชคเชฐเชฎเชพเช‚ เชœ เชคเซˆเชจเชพเชค เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เชนเซ‹เชฏ, เชคเซ‹ เช† เชจเชฟเชฏเชฎ เช–เชพเชคเชฐเซ€ เช•เชฐเชถเซ‡ เช•เซ‡ เชฎเชนเชคเซเชคเชฎ เชเช• เชฎเชฟเชจเชฟเชŸเชฎเชพเช‚ เชคเซ‡เชจเชพ เชธเชฐเซเชตเชฐเชจเซ€ เชธเช‚เช–เซเชฏเชพ เชฆเชธ เชธเซเชงเซ€ เชชเชนเซ‹เช‚เชšเซ€ เชœเชถเซ‡. เช† เชธเช‚เชชเซ‚เชฐเซเชฃเชชเชฃเซ‡ เชญเชตเซเชฏ เช…เชญเชฟเช—เชฎ เชจเชฅเซ€, เช…เชจเซ‡ เชฆเชธเชฅเซ€ เชฌเซ‡ เชธเชฐเซเชตเชฐ เช…เชจเซ‡ เชชเชพเช›เชณเชจเชพ เชฎเซ‹เชŸเชพ เช•เซ‚เชฆเช•เชพ เชชเชฃ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพเช“ เชฎเชพเชŸเซ‡ เชธเชฎเชธเซเชฏเชพเช“เชจเซเช‚ เช•เชพเชฐเชฃ เชฌเชจเซ€ เชถเช•เซ‡ เช›เซ‡.
  • ASG เชฎเชพเช‚ เชธเช•เซเชฐเชฟเชฏ เชธเชฐเซเชตเชฐเชจเซ€ เชธเช‚เช–เซเชฏเชพ เชจเช•เซเช•เซ€ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ AWS API เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชคเซ€ เช•เชธเซเชŸเชฎ เชธเซเช•เซเชฐเชฟเชชเซเชŸ เชฌเชจเชพเชตเซ‹, เชคเซ‡เชจเซ‡ เชฌเชพเชนเซเชฏ เชกเซ‡เชŸเชพ เชธเซเชคเซเชฐเซ‹เชคเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เช•เซ‰เชฒ เช•เชฐเซ‹ (เชชเซƒเชทเซเช  249 เชชเชฐ "เชฌเชพเชนเซเชฏ เชกเซ‡เชŸเชพ เชธเซเชคเซเชฐเซ‹เชค" เชœเซเช“), เช…เชจเซ‡ ASG เชจเชพ เช‡เชšเซเช›เชฟเชค_เช•เซเชทเชฎเชคเชพ เชชเชฐเชฟเชฎเชพเชฃเชจเซ‡ เชชเชฐเชค เช•เชฐเซ‡เชฒเชพ เชฎเซ‚เชฒเซเชฏ เชชเชฐ เชธเซ‡เชŸ เช•เชฐเซ‹. เชธเซเช•เซเชฐเชฟเชชเซเชŸ. เช† เชฐเซ€เชคเซ‡, เชฆเชฐเซ‡เช• เชจเชตเซ€ ASG เชฆเชพเช–เชฒเชพ เชนเช‚เชฎเซ‡เชถเชพ เชนเชพเชฒเชจเชพ เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎ เช•เซ‹เชกเชจเซ€ เชธเชฎเชพเชจ เช•เซเชทเชฎเชคเชพ เชชเชฐ เชšเชพเชฒเชถเซ‡ เช…เชจเซ‡ เชคเซ‡เชจเซ‡ เชœเชพเชณเชตเชตเชพเชจเซเช‚ เชตเชงเซ เชฎเซเชถเซเช•เซ‡เชฒ เชฌเชจเชพเชตเซ‡ เช›เซ‡.

เช…เชฒเชฌเชคเซเชค, เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎ เช†เชฆเชฐเซเชถ เชฐเซ€เชคเซ‡ เชถเซ‚เชจเซเชฏ-เชกเชพเช‰เชจเชŸเชพเช‡เชฎ เชœเชฎเชพเชตเชŸ เชฎเชพเชŸเซ‡ เชฌเชฟเชฒเซเชŸ-เช‡เชจ เชธเชชเซ‹เชฐเซเชŸ เชงเชฐเชพเชตเชถเซ‡, เชชเชฐเช‚เชคเซ เชฎเซ‡ 2019 เชธเซเชงเซ€เชฎเชพเช‚, HashiCorp เชŸเซ€เชฎ เชชเชพเชธเซ‡ เช† เช•เชพเชฐเซเชฏเช•เซเชทเชฎเชคเชพ เช‰เชฎเซ‡เชฐเชตเชพเชจเซ€ เช•เซ‹เชˆ เชฏเซ‹เชœเชจเชพ เชจเชนเซ‹เชคเซ€ (เชตเชฟเช—เชคเซ‹ - เช…เชนเซ€เช‚).

เชธเชพเชšเซ€ เชฏเซ‹เชœเชจเชพ เช…เชธเชซเชณ เชฐเซ€เชคเซ‡ เช…เชฎเชฒเชฎเชพเช‚ เช†เชตเซ€ เชถเช•เซ‡ เช›เซ‡

เช•เซ‡เชŸเชฒเซ€เช•เชตเชพเชฐ เชชเซเชฒเชพเชจ เช•เชฎเชพเชจเซเชก เชเช•เชฆเชฎ เชฏเซ‹เช—เซเชฏ เชกเชฟเชชเซเชฒเซ‹เชฏเชฎเซ‡เชจเซเชŸ เชชเซเชฒเชพเชจ เชฌเชจเชพเชตเซ‡ เช›เซ‡, เชชเชฐเช‚เชคเซ เชเชชเซเชฒเชพเชฏ เช•เชฎเชพเชจเซเชก เชญเซ‚เชฒ เชชเชฐเชค เช•เชฐเซ‡ เช›เซ‡. เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชคเชฎเซ‡ เชชเซเชฐเช•เชฐเชฃ 2 เชฎเชพเช‚ เช…เช—เชพเช‰ เชฌเชจเชพเชตเซ‡เชฒ IAM เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ เชฎเชพเชŸเซ‡ เช‰เชชเชฏเซ‹เช—เชฎเชพเช‚ เชฒเซ‡เชตเชพเชคเชพ เชธเชฎเชพเชจ เชจเชพเชฎ เชธเชพเชฅเซ‡ aws_iam_user เชธเซเชคเซเชฐเซ‹เชค เช‰เชฎเซ‡เชฐเชตเชพเชจเซ‹ เชชเซเชฐเชฏเชพเชธ เช•เชฐเซ‹:

resource "aws_iam_user" "existing_user" {
   # ะŸะพะดัั‚ะฐะฒัŒั‚ะต ััŽะดะฐ ะธะผั ัƒะถะต ััƒั‰ะตัั‚ะฒัƒัŽั‰ะตะณะพ ะฟะพะปัŒะทะพะฒะฐั‚ะตะปั IAM,
   # ั‡ั‚ะพะฑั‹ ะฟะพะฟั€ะฐะบั‚ะธะบะพะฒะฐั‚ัŒัั ะฒ ะธัะฟะพะปัŒะทะพะฒะฐะฝะธะธ ะบะพะผะฐะฝะดั‹ terraform import
   name = "yevgeniy.brikman"
}

เชนเชตเซ‡, เชœเซ‹ เชคเชฎเซ‡ เชชเซเชฒเชพเชจ เช•เชฎเชพเชจเซเชก เชšเชฒเชพเชตเซ‹ เช›เซ‹, เชคเซ‹ เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎ เชฎเซ‹เชŸเซ‡ เชญเชพเช—เซ‡ เชตเซเชฏเชพเชœเชฌเซ€ เชœเชฎเชพเชตเชŸ เชฏเซ‹เชœเชจเชพเชจเซเช‚ เช†เช‰เชŸเชชเซเชŸ เช•เชฐเชถเซ‡:

Terraform will perform the following actions:

   # aws_iam_user.existing_user will be created
   + resource "aws_iam_user" "existing_user" {
         + arn                  = (known after apply)
         + force_destroy   = false
         + id                    = (known after apply)
         + name               = "yevgeniy.brikman"
         + path                 = "/"
         + unique_id         = (known after apply)
      }

Plan: 1 to add, 0 to change, 0 to destroy.

เชœเซ‹ เชคเชฎเซ‡ เชฒเชพเช—เซ เช•เชฐเซ‹ เช†เชฆเซ‡เชถ เชšเชฒเชพเชตเซ‹ เช›เซ‹, เชคเซ‹ เชคเชฎเชจเซ‡ เชจเซ€เชšเซ‡เชจเซ€ เชญเซ‚เชฒ เชฎเชณเชถเซ‡:

Error: Error creating IAM User yevgeniy.brikman: EntityAlreadyExists:
User with name yevgeniy.brikman already exists.

   on main.tf line 10, in resource "aws_iam_user" "existing_user":
   10: resource "aws_iam_user" "existing_user" {

เชธเชฎเชธเซเชฏเชพ, เช…เชฒเชฌเชคเซเชค, เช เช›เซ‡ เช•เซ‡ เชคเซ‡ เชจเชพเชฎ เชธเชพเชฅเซ‡เชจเซ‹ IAM เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เชœ เช…เชธเซเชคเชฟเชคเซเชตเชฎเชพเช‚ เช›เซ‡. เช…เชจเซ‡ เช† เชฎเชพเชคเซเชฐ IAM เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพเช“ เชฎเชพเชŸเซ‡ เชœ เชจเชนเซ€เช‚, เชชเชฐเช‚เชคเซ เชฒเช—เชญเช— เช•เซ‹เชˆเชชเชฃ เชธเช‚เชธเชพเชงเชจ เชฎเชพเชŸเซ‡ เชฅเชˆ เชถเช•เซ‡ เช›เซ‡. เชถเช•เซเชฏ เช›เซ‡ เช•เซ‡ เช•เซ‹เชˆเช เช† เชธเช‚เชธเชพเชงเชจ เชฎเซ‡เชจเซเชฏเซเช…เชฒเซ€ เชฌเชจเชพเชตเซเชฏเซเช‚ เชนเซ‹เชฏ เช…เชฅเชตเชพ เช•เชฎเชพเชจเซเชก เชฒเชพเช‡เชจเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซเชฏเซ‹ เชนเซ‹เชฏ, เชชเชฐเช‚เชคเซ เช•เซ‹เชˆเชชเชฃ เชฐเซ€เชคเซ‡, เชฎเซ‡เชณ เช–เชพเชคเชพ ID เชคเช•เชฐเชพเชฐ เชคเชฐเชซ เชฆเซ‹เชฐเซ€ เชœเชพเชฏ เช›เซ‡. เช† เชญเซ‚เชฒเชจเซ€ เช˜เชฃเซ€ เชญเชฟเชจเซเชจเชคเชพเช“ เช›เซ‡ เชœเซ‡ เช˜เชฃเซ€เชตเชพเชฐ เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎเชฎเชพเช‚ เชจเชตเชพ เช†เชตเชจเชพเชฐเชพเช“เชจเซ‡ เช†เชถเซเชšเชฐเซเชฏเชšเช•เชฟเชค เช•เชฐเซ‡ เช›เซ‡.

เชฎเซเช–เซเชฏ เชฎเซเชฆเซเชฆเซ‹ เช เช›เซ‡ เช•เซ‡ เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎ เชชเซเชฒเชพเชจ เช•เชฎเชพเชจเซเชก เชซเช•เซเชค เชคเซ‡ เชธเช‚เชธเชพเชงเชจเซ‹เชจเซ‡ เชงเซเชฏเชพเชจเชฎเชพเช‚ เชฒเซ‡ เช›เซ‡ เชœเซ‡ เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎ เชธเซเชŸเซ‡เชŸ เชซเชพเช‡เชฒเชฎเชพเช‚ เช‰เชฒเซเชฒเซ‡เช–เชฟเชค เช›เซ‡. เชœเซ‹ เชธเช‚เชธเชพเชงเชจเซ‹ เช•เซ‹เชˆ เช…เชจเซเชฏ เชฐเซ€เชคเซ‡ เชฌเชจเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเชพ เชนเซ‹เชฏ (เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, AWS เช•เชจเซเชธเซ‹เชฒเชฎเชพเช‚ เชฎเซ‡เชจเซเชฏเซเช…เชฒเซ€ เช•เซเชฒเชฟเช• เช•เชฐเซ€เชจเซ‡), เชคเซ‹ เชคเซ‡ เชธเซเชŸเซ‡เชŸ เชซเชพเช‡เชฒเชฎเชพเช‚ เชธเชฎเชพเชชเซเชค เชฅเชถเซ‡ เชจเชนเซ€เช‚ เช…เชจเซ‡ เชคเซ‡เชฅเซ€ เชชเซเชฒเชพเชจ เช†เชฆเซ‡เชถเชจเซ‹ เช…เชฎเชฒ เช•เชฐเชคเซ€ เชตเช–เชคเซ‡ เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎ เชคเซ‡เชฎเชจเซ‡ เชงเซเชฏเชพเชจเชฎเชพเช‚ เชฒเซ‡เชถเซ‡ เชจเชนเซ€เช‚. เชชเชฐเชฟเชฃเชพเชฎเซ‡, เชชเซเชฐเชฅเชฎ เชจเชœเชฐเซ‡ เชธเชพเชšเซ€ เชฒเชพเช—เชคเซ€ เชฏเซ‹เชœเชจเชพ เช…เชธเชซเชณ เชธเชพเชฌเชฟเชค เชฅเชถเซ‡.

เช†เชฎเชพเช‚เชฅเซ€ เชฌเซ‡ เชชเชพเช  เชถเซ€เช–เชตเชพ เชœเซ‡เชตเชพ เช›เซ‡.

  • เชœเซ‹ เชคเชฎเซ‡ เชชเชนเซ‡เชฒเชพเชฅเซ€ เชœ เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎ เชธเชพเชฅเซ‡ เช•เชพเชฎ เช•เชฐเชตเชพเชจเซเช‚ เชถเชฐเซ‚ เช•เชฐเซเชฏเซเช‚ เชนเซ‹เชฏ, เชคเซ‹ เชฌเซ€เชœเซเช‚ เช•เช‚เชˆเชชเชฃ เชตเชพเชชเชฐเชถเซ‹ เชจเชนเซ€เช‚. เชœเซ‹ เชคเชฎเชพเชฐเชพ เชˆเชจเซเชซเซเชฐเชพเชธเซเชŸเซเชฐเช•เซเชšเชฐเชจเซ‹ เชญเชพเช— เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชฎเซ‡เชจเซ‡เชœ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡, เชคเซ‹ เชคเชฎเซ‡ เชคเซ‡เชจเซ‡ เชฎเซ‡เชจเซเชฏเซเช…เชฒเซ€ เชธเช‚เชถเซ‹เชงเชฟเชค เช•เชฐเซ€ เชถเช•เชถเซ‹ เชจเชนเซ€เช‚. เชจเชนเชฟเช‚เชคเชฐ, เชคเชฎเซ‡ เชฎเชพเชคเซเชฐ เชตเชฟเชšเชฟเชคเซเชฐ เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎ เชญเซ‚เชฒเซ‹เชจเซเช‚ เชœเซ‹เช–เชฎ เชฒเซ‡เชคเชพ เชจเชฅเซ€, เชชเชฐเช‚เชคเซ เชคเชฎเซ‡ IaC เชจเชพ เช˜เชฃเชพ เชซเชพเชฏเชฆเชพเช“เชจเซ‡ เชชเชฃ เชจเช•เชพเชฐเซ€ เชถเช•เซ‹ เช›เซ‹ เช•เชพเชฐเชฃ เช•เซ‡ เช•เซ‹เชก เชนเชตเซ‡ เชคเชฎเชพเชฐเชพ เช‡เชจเซเชซเซเชฐเชพเชธเซเชŸเซเชฐเช•เซเชšเชฐเชจเซเช‚ เชšเซ‹เช•เซเช•เชธ เชชเซเชฐเชคเชฟเชจเชฟเชงเชฟเชคเซเชต เชฐเชนเซ‡เชถเซ‡ เชจเชนเซ€เช‚.
  • เชœเซ‹ เชคเชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เชœ เช•เซ‡เชŸเชฒเซ€เช• เชˆเชจเซเชซเซเชฐเชพเชธเซเชŸเซเชฐเช•เซเชšเชฐ เช›เซ‡, เชคเซ‹ เช†เชฏเชพเชค เช†เชฆเซ‡เชถเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‹. เชœเซ‹ เชคเชฎเซ‡ เชนเชพเชฒเชจเชพ เชˆเชจเซเชซเซเชฐเชพเชธเซเชŸเซเชฐเช•เซเชšเชฐ เชธเชพเชฅเซ‡ เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพเชจเซเช‚ เชถเชฐเซ‚ เช•เชฐเซ€ เชฐเชนเซเชฏเชพ เช›เซ‹, เชคเซ‹ เชคเชฎเซ‡ เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎ เช†เชฏเชพเชค เช†เชฆเซ‡เชถเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชคเซ‡เชจเซ‡ เชธเซเชŸเซ‡เชŸ เชซเชพเช‡เชฒเชฎเชพเช‚ เช‰เชฎเซ‡เชฐเซ€ เชถเช•เซ‹ เช›เซ‹. เช† เชฐเซ€เชคเซ‡ เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎ เชœเชพเชฃเชถเซ‡ เช•เซ‡ เช•เชˆ เชˆเชจเซเชซเซเชฐเชพเชธเซเชŸเซเชฐเช•เซเชšเชฐเชจเซเช‚ เชธเช‚เชšเชพเชฒเชจ เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡. เช†เชฏเชพเชค เช†เชฆเซ‡เชถ เชฌเซ‡ เชฆเชฒเซ€เชฒเซ‹ เชฒเซ‡ เช›เซ‡. เชชเซเชฐเชฅเชฎ เชคเชฎเชพเชฐเซ€ เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจ เชซเชพเช‡เชฒเซ‹เชฎเชพเช‚ เชธเช‚เชธเชพเชงเชจ เชธเชฐเชจเชพเชฎเซเช‚ เช›เซ‡. เช…เชนเซ€เช‚เชจเซ€ เชตเชพเช•เซเชฏเชฐเชšเชจเชพ เชธเช‚เชธเชพเชงเชจ เชฒเชฟเช‚เช•เซเชธ เชœเซ‡เชตเซ€ เชœ เช›เซ‡: _. (เชœเซ‡เชฎ เช•เซ‡ aws_iam_user.existing_user). เชฌเซ€เชœเซ€ เชฆเชฒเซ€เชฒ เช†เชฏเชพเชค เช•เชฐเชตเชพเชจเชพ เชธเช‚เชธเชพเชงเชจเชจเซเช‚ ID เช›เซ‡. เชšเชพเชฒเซ‹ เช•เชนเซ€เช เช•เซ‡ เชธเช‚เชธเชพเชงเชจ ID aws_iam_user เช เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ เชจเชพเชฎ เช›เซ‡ (เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, yevgeniy.brikman), เช…เชจเซ‡ เชธเช‚เชธเชพเชงเชจ ID aws_instance เช EC2 เชธเชฐเซเชตเชฐ ID เช›เซ‡ (เชœเซ‡เชฎ เช•เซ‡ i-190e22e5). เชธเช‚เชธเชพเชงเชจเชจเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช†เชฏเชพเชค เช•เชฐเชตเซเช‚ เชคเซ‡ เชธเชพเชฎเชพเชจเซเชฏ เชฐเซ€เชคเซ‡ เชคเซ‡เชจเชพ เชชเซƒเชทเซเช เชจเชพ เชคเชณเชฟเชฏเซ‡ เชฆเชธเซเชคเชพเชตเซ‡เชœเซ€เช•เชฐเชฃเชฎเชพเช‚ เชธเซ‚เชšเชตเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡.

    เชจเซ€เชšเซ‡ เชเช• เช†เชฏเชพเชค เช†เชฆเซ‡เชถ เช›เซ‡ เชœเซ‡ aws_iam_user เชธเช‚เชธเชพเชงเชจเชจเซ‡ เชธเชฎเชจเซเชตเชฏเชฟเชค เช•เชฐเซ‡ เช›เซ‡ เชœเซ‡ เชคเชฎเซ‡ เชชเซเชฐเช•เชฐเชฃ 2 เชฎเชพเช‚ IAM เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ เชธเชพเชฅเซ‡ เชคเชฎเชพเชฐเชพ เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎ เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจเชฎเชพเช‚ เช‰เชฎเซ‡เชฐเซเชฏเซเช‚ เช›เซ‡ (เช…เชฒเชฌเชคเซเชค, yevgeniy.brikman เชฎเชพเชŸเซ‡ เชคเชฎเชพเชฐเซเช‚ เชจเชพเชฎ เชฌเชฆเชฒเซ€เชจเซ‡):

    $ terraform import aws_iam_user.existing_user yevgeniy.brikman

    Terraform เชคเชฎเชพเชฐเชพ IAM เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพเชจเซ‡ เชถเซ‹เชงเชตเชพ เชฎเชพเชŸเซ‡ AWS API เชจเซ‡ เช•เซ‰เชฒ เช•เชฐเชถเซ‡ เช…เชจเซ‡ เชคเชฎเชพเชฐเซ€ Terraform เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจเชฎเชพเช‚ เชคเซ‡เชจเซ€ เช…เชจเซ‡ aws_iam_user.existing_user เชฐเชฟเชธเซ‹เชฐเซเชธ เชตเชšเซเชšเซ‡ เชธเซเชŸเซ‡เชŸ เชซเชพเช‡เชฒ เชเชธเซ‹เชธเชฟเชเชถเชจ เชฌเชจเชพเชตเชถเซ‡. เชนเชตเซ‡เชฅเซ€, เชœเซเชฏเชพเชฐเซ‡ เชคเชฎเซ‡ เชชเซเชฒเชพเชจ เช•เชฎเชพเชจเซเชก เชšเชฒเชพเชตเซ‹ เช›เซ‹, เชคเซเชฏเชพเชฐเซ‡ เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎ เชœเชพเชฃเชถเซ‡ เช•เซ‡ IAM เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เชœ เช…เชธเซเชคเชฟเชคเซเชตเชฎเชพเช‚ เช›เซ‡ เช…เชจเซ‡ เชคเซ‡เชจเซ‡ เชซเชฐเซ€เชฅเซ€ เชฌเชจเชพเชตเชตเชพเชจเซ‹ เชชเซเชฐเชฏเชพเชธ เช•เชฐเชถเซ‡ เชจเชนเซ€เช‚.

    เช เชจเซ‹เช‚เชงเชตเซเช‚ เชฏเซ‹เช—เซเชฏ เช›เซ‡ เช•เซ‡ เชœเซ‹ เชคเชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ เชชเชนเซ‡เชฒเชพเชฅเซ€ เชœ เช˜เชฃเชพ เชฌเชงเชพ เชธเช‚เชธเชพเชงเชจเซ‹ เชนเซ‹เชฏ เช•เซ‡ เชœเซ‡เชจเซ‡ เชคเชฎเซ‡ เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎเชฎเชพเช‚ เช†เชฏเชพเชค เช•เชฐเชตเชพ เชฎเชพเช‚เช—เซ‹ เช›เซ‹, เชคเซ‹ เชฎเซ‡เชจเซเชฏเซเช…เชฒเซ€ เช•เซ‹เชก เชฒเช–เชตเชพ เช…เชจเซ‡ เชฆเชฐเซ‡เช• เชเช•เชจเซ‡ เชเช• เชธเชฎเชฏเซ‡ เช†เชฏเชพเชค เช•เชฐเชตเซเช‚ เช เชฎเซเชถเซเช•เซ‡เชฒเซ€ เชฌเชจเซ€ เชถเช•เซ‡ เช›เซ‡. เชคเซ‡เชฅเซ€ เชคเซ‡ เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎเชฟเช‚เช— (http://terraforming.dtan4.net/) เชœเซ‡เชตเชพ เชŸเซ‚เชฒเชฎเชพเช‚ เชœเซ‹เชตเชพ เชฏเซ‹เช—เซเชฏ เช›เซ‡, เชœเซ‡ เช†เชชเชฎเซ‡เชณเซ‡ เชคเชฎเชพเชฐเชพ AWS เชเช•เชพเช‰เชจเซเชŸเชฎเชพเช‚เชฅเซ€ เช•เซ‹เชก เช…เชจเซ‡ เชธเซเชŸเซ‡เชŸเชจเซ‡ เช†เชฏเชพเชค เช•เชฐเซ€ เชถเช•เซ‡ เช›เซ‡.

    เชฐเชฟเชซเซ‡เช•เซเชŸเชฐเชฟเช‚เช—เชฎเชพเช‚ เชคเซ‡เชจเซ€ เชฎเซเชถเซเช•เซ‡เชฒเซ€เช“ เชนเซ‹เชˆ เชถเช•เซ‡ เช›เซ‡

    เชฐเชฟเชซเซ…เช•เซเชŸเชฐเชฟเช‚เช— เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฟเช‚เช—เชฎเชพเช‚ เชเช• เชธเชพเชฎเชพเชจเซเชฏ เชชเซเชฐเชฅเชพ เช›เซ‡ เชœเซเชฏเชพเช‚ เชคเชฎเซ‡ เชฌเชพเชนเซเชฏ เชตเชฐเซเชคเชจเชจเซ‡ เชฏเชฅเชพเชตเชค เชฐเชพเช–เซ€เชจเซ‡ เช•เซ‹เชกเชจเซ€ เช†เช‚เชคเชฐเชฟเช• เชฐเชšเชจเชพเชฎเชพเช‚ เชซเซ‡เชฐเชซเชพเชฐ เช•เชฐเซ‹ เช›เซ‹. เช† เช•เซ‹เชกเชจเซ‡ เชตเชงเซ เชธเซเชชเชทเซเชŸ, เชธเซเช˜เชก เช…เชจเซ‡ เชœเชพเชณเชตเชตเชพเชฎเชพเช‚ เชธเชฐเชณ เชฌเชจเชพเชตเชตเชพ เชฎเชพเชŸเซ‡ เช›เซ‡. เชฐเชฟเชซเซ‡เช•เซเชŸเชฐเชฟเช‚เช— เช เชเช• เช…เชจเชฟเชตเชพเชฐเซเชฏ เชคเช•เชจเซ€เช• เช›เซ‡ เชœเซ‡เชจเซ‹ เชจเชฟเชฏเชฎเชฟเชค เช‰เชชเชฏเซ‹เช— เชฅเชตเซ‹ เชœเซ‹เชˆเช. เชชเชฐเช‚เชคเซ เชœเซเชฏเชพเชฐเซ‡ เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎ เช…เชฅเชตเชพ เช…เชจเซเชฏ เช•เซ‹เชˆเชชเชฃ IaC เชŸเซ‚เชฒเชจเซ€ เชตเชพเชค เช†เชตเซ‡ เช›เซ‡, เชคเซเชฏเชพเชฐเซ‡ เชคเชฎเชพเชฐเซ‡ เช•เซ‹เชกเชจเชพ เชญเชพเช—เชจเซ€ "เชฌเชพเชนเซเชฏ เชตเชฐเซเชคเชฃเซ‚เช•" เชฆเซเชตเชพเชฐเชพ เชคเชฎเชพเชฐเซ‹ เช…เชฐเซเชฅ เชถเซเช‚ เช›เซ‡ เชคเซ‡ เชตเชฟเชถเซ‡ เช…เชคเซเชฏเช‚เชค เชธเชพเชตเชšเซ‡เชค เชฐเชนเซ‡เชตเซเช‚ เชœเซ‹เชˆเช, เช…เชจเซเชฏเชฅเชพ เช…เชฃเชงเชพเชฐเซ€ เชธเชฎเชธเซเชฏเชพเช“ เชŠเชญเซ€ เชฅเชถเซ‡.

    เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชเช• เชธเชพเชฎเชพเชจเซเชฏ เชชเซเชฐเช•เชพเชฐเชจเซเช‚ เชฐเชฟเชซเซ‡เช•เซเชŸเชฐเชฟเช‚เช— เช เชตเซ‡เชฐเชฟเชฏเซ‡เชฌเชฒ เช…เชฅเชตเชพ เชซเช‚เช•เซเชถเชจเชจเชพ เชจเชพเชฎเซ‹เชจเซ‡ เชตเชงเซ เชธเชฎเชœเซ€ เชถเช•เชพเชฏ เชคเซ‡เชตเชพ เชจเชพเชฎเซ‹ เชธเชพเชฅเซ‡ เชฌเชฆเชฒเชตเชพเชจเซเช‚ เช›เซ‡. เช˜เชฃเชพ IDE เชฎเชพเช‚ เชฐเชฟเชซเซ‡เช•เซเชŸเชฐเชฟเช‚เช— เชฎเชพเชŸเซ‡ เชฌเชฟเชฒเซเชŸ-เช‡เชจ เชธเชชเซ‹เชฐเซเชŸ เชนเซ‹เชฏ เช›เซ‡ เช…เชจเซ‡ เชธเชฎเช—เซเชฐ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ เชฆเชฐเชฎเชฟเชฏเชพเชจ เชตเซ‡เชฐเชฟเชฏเซ‡เชฌเชฒเซเชธ เช…เชจเซ‡ เชซเช‚เช•เซเชถเชจเซเชธเชจเซเช‚ เชจเชพเชฎ เช†เชชเซ‹เช†เชช เชฌเชฆเชฒเซ€ เชถเช•เซ‡ เช›เซ‡. เชธเชพเชฎเชพเชจเซเชฏ เชนเซ‡เชคเซเชตเชพเชณเซ€ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฟเช‚เช— เชญเชพเชทเชพเช“เชฎเชพเช‚, เช† เชเช• เชคเซเชšเซเช› เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ เช›เซ‡ เชœเซ‡เชจเชพ เชตเชฟเชถเซ‡ เชคเชฎเซ‡ เช•เชฆเชพเชš เชตเชฟเชšเชพเชฐเซ€ เชชเชฃ เชจ เชถเช•เซ‹, เชชเชฐเช‚เชคเซ เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎเชฎเชพเช‚ เชคเชฎเชพเชฐเซ‡ เช† เชฌเชพเชฌเชคเซ‡ เช–เซ‚เชฌ เช•เชพเชณเชœเซ€ เชฐเชพเช–เชตเซ€ เชชเชกเชถเซ‡, เช…เชจเซเชฏเชฅเชพ เชคเชฎเซ‡ เช†เช‰เชŸเซ‡เชœ เช…เชจเซเชญเชตเซ€ เชถเช•เซ‹ เช›เซ‹.

    เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชตเซ‡เชฌเชธเชฐเซเชตเชฐ-เช•เซเชฒเชธเซเชŸเชฐ เชฎเซ‹เชกเซเชฏเซเชฒเชฎเชพเช‚ เช‡เชจเชชเซเชŸ เชšเชฒ cluster_name เช›เซ‡:

    variable "cluster_name" {
       description = "The name to use for all the cluster resources"
       type          = string
    }

    เช•เชฒเซเชชเชจเชพ เช•เชฐเซ‹ เช•เซ‡ เชคเชฎเซ‡ เช† เชฎเซ‹เชกเซเชฏเซเชฒเชจเซ‹ เช‰เชชเชฏเซ‹เช— foo เชจเชพเชฎเชจเซ€ เชฎเชพเช‡เช•เซเชฐเซ‹เชธเชฐเซเชตเชฟเชธ เชœเชฎเชพเชตเชตเชพ เชฎเชพเชŸเซ‡ เชถเชฐเซ‚ เช•เชฐเซเชฏเซ‹ เช›เซ‡. เชฌเชพเชฆเชฎเชพเช‚, เชคเชฎเซ‡ เชคเชฎเชพเชฐเซ€ เชธเซ‡เชตเชพเชจเซเช‚ เชจเชพเชฎ เชฌเชฆเชฒเซ€เชจเซ‡ เชฌเชพเชฐ เช•เชฐเชตเชพ เชฎเชพเช‚เช—เซ‹ เช›เซ‹. เช† เชซเซ‡เชฐเชซเชพเชฐ เชฎเชพเชฎเซ‚เชฒเซ€ เชฒเชพเช—เซ‡ เช›เซ‡, เชชเชฐเช‚เชคเซ เชตเชพเชธเซเชคเชตเชฎเชพเช‚ เชคเซ‡ เชธเซ‡เชตเชพเชฎเชพเช‚ เชตเชฟเช•เซเชทเซ‡เชช เชชเซ‡เชฆเชพ เช•เชฐเซ€ เชถเช•เซ‡ เช›เซ‡.

    เชนเช•เซ€เช•เชค เช เช›เซ‡ เช•เซ‡ เชตเซ‡เชฌเชธเชฐเซเชตเชฐ-เช•เซเชฒเชธเซเชŸเชฐ เชฎเซ‹เชกเซเชฏเซเชฒ เชธเช‚เช–เซเชฏเชพเชฌเช‚เชง เชธเช‚เชธเชพเชงเชจเซ‹เชฎเชพเช‚ เช•เซเชฒเชธเซเชŸเชฐ_เชจเชพเชฎ เชตเซ‡เชฐเซ€เชเชฌเชฒเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‡ เช›เซ‡, เชœเซ‡เชฎเชพเช‚ เชฌเซ‡ เชธเซเชฐเช•เซเชทเชพ เชœเซ‚เชฅเซ‹เชจเชพ เชจเชพเชฎ เชชเชฐเชฟเชฎเชพเชฃ เช…เชจเซ‡ เชเชเชฒเชฌเซ€เชจเซ‹ เชธเชฎเชพเชตเซ‡เชถ เชฅเชพเชฏ เช›เซ‡:

    resource "aws_lb" "example" {
       name                    = var.cluster_name
       load_balancer_type = "application"
       subnets = data.aws_subnet_ids.default.ids
       security_groups      = [aws_security_group.alb.id]
    }

    เชœเซ‹ เชคเชฎเซ‡ เชธเช‚เชธเชพเชงเชจ เชชเชฐ เชจเชพเชฎ เชชเชฐเชฟเชฎเชพเชฃ เชฌเชฆเชฒเซ‹ เช›เซ‹, เชคเซ‹ เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎ เชคเซ‡ เชธเช‚เชธเชพเชงเชจเชจเซเช‚ เชœเซ‚เชจเซเช‚ เชธเช‚เชธเซเช•เชฐเชฃ เช•เชพเชขเซ€ เชจเชพเช–เชถเซ‡ เช…เชจเซ‡ เชคเซ‡เชจเซ€ เชœเช—เซเชฏเชพเช เชเช• เชจเชตเซเช‚ เชฌเชจเชพเชตเชถเซ‡. เชชเชฐเช‚เชคเซ เชœเซ‹ เชคเซ‡ เชธเช‚เชธเชพเชงเชจ เชเช• ALB เช›เซ‡, เชคเซ‹ เชคเซ‡เชจเซ‡ เช•เชพเชขเซ€ เชจเชพเช–เชตเชพ เช…เชจเซ‡ เชจเชตเซเช‚ เชธเช‚เชธเซเช•เชฐเชฃ เชกเชพเช‰เชจเชฒเซ‹เชก เช•เชฐเชตเชพ เชตเชšเซเชšเซ‡, เชคเชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ เชคเชฎเชพเชฐเชพ เชตเซ‡เชฌ เชธเชฐเซเชตเชฐ เชชเชฐ เชŸเซเชฐเชพเชซเชฟเช•เชจเซ‡ เชฐเซ€เชกเชพเชฏเชฐเซ‡เช•เซเชŸ เช•เชฐเชตเชพเชจเซ€ เช•เซ‹เชˆ เชชเชฆเซเชงเชคเชฟ เชจเชฅเซ€. เชคเซ‡เชตเซ€ เชœ เชฐเซ€เชคเซ‡, เชœเซ‹ เช•เซ‹เชˆ เชธเซเชฐเช•เซเชทเชพ เชœเซ‚เชฅ เช•เชพเชขเซ€ เชจเชพเช–เชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡, เชคเซ‹ เชคเชฎเชพเชฐเซเช‚ เชธเชฐเซเชตเชฐ เชจเชตเซเช‚ เชœเซ‚เชฅ เชจ เชฌเชจเซ‡ เชคเซเชฏเชพเช‚ เชธเซเชงเซ€ เช•เซ‹เชˆเชชเชฃ เชจเซ‡เชŸเชตเชฐเซเช• เชŸเซเชฐเชพเชซเชฟเช•เชจเซ‡ เชจเช•เชพเชฐเชตเชพเชจเซเช‚ เชถเชฐเซ‚ เช•เชฐเชถเซ‡.

    เช…เชจเซเชฏ เชชเซเชฐเช•เชพเชฐเชจเซเช‚ เชฐเชฟเชซเซ‡เช•เซเชŸเชฐเชฟเช‚เช— เชคเชฎเชจเซ‡ เชฐเชธ เชนเซ‹เชˆ เชถเช•เซ‡ เช›เซ‡ เชคเซ‡ เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎ ID เชจเซ‡ เชฌเชฆเชฒเชตเซเช‚ เช›เซ‡. เชšเชพเชฒเซ‹ เชตเซ‡เชฌเชธเชฐเซเชตเชฐ-เช•เซเชฒเชธเซเชŸเชฐ เชฎเซ‹เชกเซเชฏเซเชฒเชฎเชพเช‚ aws_security_group เชธเช‚เชธเชพเชงเชจเชจเซ‡ เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡ เชฒเชˆเช:

    resource "aws_security_group" "instance" {
      # (...)
    }

    เช† เชธเช‚เชธเชพเชงเชจเชจเชพ เช“เชณเช–เช•เชฐเซเชคเชพเชจเซ‡ เช‰เชฆเชพเชนเชฐเชฃ เช•เชนเซ‡เชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡. เช•เชฒเซเชชเชจเชพ เช•เชฐเซ‹ เช•เซ‡ เชฐเชฟเชซเซ‡เช•เซเชŸเชฐเชฟเช‚เช— เชฆเชฐเชฎเชฟเชฏเชพเชจ เชคเชฎเซ‡ เชคเซ‡เชจเซ‡ เชตเชงเซ เชธเชฎเชœเซ€ เชถเช•เชพเชฏ เชคเซ‡เชตเชพ (เชคเชฎเชพเชฐเชพ เชฎเชคเซ‡) เชจเชพเชฎ เช•เซเชฒเชธเซเชŸเชฐ_เช‡เชจเซเชธเซเชŸเชจเซเชธเชฎเชพเช‚ เชฌเชฆเชฒเชตเชพเชจเซเช‚ เชจเช•เซเช•เซ€ เช•เชฐเซเชฏเซเช‚ เช›เซ‡:

    resource "aws_security_group" "cluster_instance" {
       # (...)
    }

    เช…เช‚เชคเซ‡ เชถเซเช‚ เชฅเชถเซ‡? เชคเซ‡ เชธเชพเชšเซเช‚ เช›เซ‡: เชเช• เชตเชฟเช•เซเชทเซ‡เชช.

    เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎ เชฆเชฐเซ‡เช• เชธเช‚เชธเชพเชงเชจ ID เชจเซ‡ เช•เซเชฒเชพเช‰เชก เชชเซเชฐเชฆเชพเชคเชพ ID เชธเชพเชฅเซ‡ เชธเชพเช‚เช•เชณเซ‡ เช›เซ‡. เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, iam_user เช AWS IAM เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ ID เชธเชพเชฅเซ‡ เชธเช‚เช•เชณเชพเชฏเซ‡เชฒ เช›เซ‡, เช…เชจเซ‡ aws_instance เช AWS EC2 เชธเชฐเซเชตเชฐ ID เชธเชพเชฅเซ‡ เชธเช‚เช•เชณเชพเชฏเซ‡เชฒ เช›เซ‡. เชœเซ‹ เชคเชฎเซ‡ เชธเช‚เชธเชพเชงเชจ ID (เช‰เชฆเชพเชนเชฐเชฃเชฅเซ€ เช•เซเชฒเชธเซเชŸเชฐ_เช‡เชจเซเชธเซเชŸเชจเซเชธเชฎเชพเช‚ เช•เชนเซ‹, เชœเซ‡เชฎ เช•เซ‡ aws_security_group เชธเชพเชฅเซ‡ เช•เซ‡เชธ เช›เซ‡) เชฌเชฆเชฒเซ‹ เช›เซ‹, เชคเซ‹ เชคเซ‡ เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎเชฎเชพเช‚ เชฆเซ‡เช–เชพเชถเซ‡ เช•เซ‡ เชคเชฎเซ‡ เชœเซ‚เชจเชพ เชธเช‚เชธเชพเชงเชจเชจเซ‡ เช•เชพเชขเซ€ เชจเชพเช–เซเชฏเซเช‚ เชนเซ‹เชฏ เช…เชจเซ‡ เชจเชตเซเช‚ เช‰เชฎเซ‡เชฐเซเชฏเซเช‚ เชนเซ‹เชฏ. เชœเซ‹ เชคเชฎเซ‡ เช† เชซเซ‡เชฐเชซเชพเชฐเซ‹ เชฒเชพเช—เซ เช•เชฐเซ‹ เช›เซ‹, เชคเซ‹ Terraform เชœเซ‚เชจเชพ เชธเซเชฐเช•เซเชทเชพ เชœเซ‚เชฅเชจเซ‡ เช•เชพเชขเซ€ เชจเชพเช–เชถเซ‡ เช…เชจเซ‡ เชเช• เชจเชตเซเช‚ เชฌเชจเชพเชตเชถเซ‡, เชœเซเชฏเชพเชฐเซ‡ เชคเชฎเชพเชฐเชพ เชธเชฐเซเชตเชฐเซเชธ เช•เซ‹เชˆเชชเชฃ เชจเซ‡เชŸเชตเชฐเซเช• เชŸเซเชฐเชพเชซเชฟเช•เชจเซ‡ เชจเช•เชพเชฐเชตเชพเชจเซเช‚ เชถเชฐเซ‚ เช•เชฐเชถเซ‡.

    เช…เชนเซ€เช‚ เชšเชพเชฐ เชฎเซเช–เซเชฏ เชชเชพเช  เช›เซ‡ เชœเซ‡ เชคเชฎเชพเชฐเซ‡ เช† เชšเชฐเซเชšเชพเชฎเชพเช‚เชฅเซ€ เชฆเซ‚เชฐ เช•เชฐเชตเชพ เชœเซ‹เชˆเช.

    • เชนเช‚เชฎเซ‡เชถเชพ เชชเซเชฒเชพเชจ เช†เชฆเซ‡เชถเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‹. เชคเซ‡ เช† เชคเชฎเชพเชฎ snags เชœเชพเชนเซ‡เชฐ เช•เชฐเซ€ เชถเช•เซ‡ เช›เซ‡. เชคเซ‡เชจเชพ เช†เช‰เชŸเชชเซเชŸเชจเซ€ เช•เชพเชณเชœเซ€เชชเซ‚เชฐเซเชตเช• เชธเชฎเซ€เช•เซเชทเชพ เช•เชฐเซ‹ เช…เชจเซ‡ เชเชตเซ€ เชชเชฐเชฟเชธเซเชฅเชฟเชคเชฟเช“ เชชเชฐ เชงเซเชฏเชพเชจ เช†เชชเซ‹ เชœเซเชฏเชพเช‚ เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎ เชธเช‚เชธเชพเชงเชจเซ‹เชจเซ‡ เช•เชพเชขเซ€ เชจเชพเช–เชตเชพเชจเซ€ เชฏเซ‹เชœเชจเชพ เชงเชฐเชพเชตเซ‡ เช›เซ‡ เชœเซ‡ เชฎเซ‹เชŸเชพเชญเชพเช—เซ‡ เช•เชพเชขเซ€ เชจเชพเช–เชตเชพเชฎเชพเช‚ เชจ เช†เชตเซ‡.
    • เชคเชฎเซ‡ เช•เชพเชขเซ€ เชจเชพเช–เซ‹ เชคเซ‡ เชชเชนเซ‡เชฒเชพเช‚ เชฌเชจเชพเชตเซ‹. เชœเซ‹ เชคเชฎเซ‡ เชธเช‚เชธเชพเชงเชจเชจเซ‡ เชฌเชฆเชฒเชตเชพ เชฎเชพเช‚เช—เชคเชพ เชนเซ‹, เชคเซ‹ เชฎเซ‚เชณ เช•เชพเชขเซ€ เชจเชพเช–เชคเชพ เชชเชนเซ‡เชฒเชพ เชคเชฎเชพเชฐเซ‡ เชฐเชฟเชชเซเชฒเซ‡เชธเชฎเซ‡เชจเซเชŸ เชฌเชจเชพเชตเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡ เช•เซ‡ เช•เซ‡เชฎ เชคเซ‡ เชตเชฟเชถเซ‡ เช•เชพเชณเชœเซ€เชชเซ‚เชฐเซเชตเช• เชตเชฟเชšเชพเชฐเซ‹. เชœเซ‹ เชœเชตเชพเชฌ เชนเชพ เชนเซ‹เชฏ, เชคเซ‹ create_before_destroy เชฎเชฆเชฆ เช•เชฐเซ€ เชถเช•เซ‡ เช›เซ‡. เชธเชฎเชพเชจ เชชเชฐเชฟเชฃเชพเชฎ เชฌเซ‡ เชชเช—เชฒเชพเช‚เช“ เช•เชฐเซ€เชจเซ‡ เชœเชพเชคเซ‡ เชœ เชชเซเชฐเชพเชชเซเชค เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡: เชชเชนเซ‡เชฒเชพ เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจเชฎเชพเช‚ เชเช• เชจเชตเซเช‚ เชธเช‚เชธเชพเชงเชจ เช‰เชฎเซ‡เชฐเซ‹ เช…เชจเซ‡ เชฒเชพเช—เซ เช•เชฐเซ‹ เช†เชฆเซ‡เชถ เชšเชฒเชพเชตเซ‹, เช…เชจเซ‡ เชชเช›เซ€ เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจเชฎเชพเช‚เชฅเซ€ เชœเซ‚เชจเชพ เชธเช‚เชธเชพเชงเชจเชจเซ‡ เชฆเซ‚เชฐ เช•เชฐเซ‹ เช…เชจเซ‡ เชซเชฐเซ€เชฅเซ€ เชฒเชพเช—เซ เช•เชฐเซ‹ เช†เชฆเซ‡เชถเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‹.
    • เช“เชณเช–เช•เชฐเซเชคเชพ เชฌเชฆเชฒเชตเชพ เชฎเชพเชŸเซ‡ เชธเซเชฅเชฟเชคเชฟ เชฌเชฆเชฒเชตเซ€ เชœเชฐเซ‚เชฐเซ€ เช›เซ‡. เชœเซ‹ เชคเชฎเซ‡ เชธเช‚เชธเชพเชงเชจเชจเซ‡ เช•เชพเชขเซ€ เชจเชพเช–เซเชฏเชพ เชตเชฟเชจเชพ เช…เชจเซ‡ เชคเซ‡เชจเซเช‚ เชจเชตเซเช‚ เชธเช‚เชธเซเช•เชฐเชฃ เชฌเชจเชพเชตเซเชฏเชพ เชตเชฟเชจเชพ เชธเช‚เชธเชพเชงเชจ เชธเชพเชฅเซ‡ เชธเช‚เช•เชณเชพเชฏเซ‡เชฒ ID (เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, aws_security_groupเชจเซเช‚ เชจเชพเชฎ เชฌเชฆเชฒเซ€เชจเซ‡ เช•เซเชฒเชธเซเชŸเชฐ_instance เช•เชฐเซ‹) เชฌเชฆเชฒเชตเชพ เชฎเชพเช‚เช—เซ‹ เช›เซ‹, เชคเซ‹ เชคเชฎเชพเชฐเซ‡ เชคเซ‡ เชฎเซเชœเชฌ เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎ เชธเซเชŸเซ‡เชŸ เชซเชพเช‡เชฒ เช…เชชเชกเซ‡เชŸ เช•เชฐเชตเซ€ เชชเชกเชถเซ‡. เช† เชœเชพเชคเซ‡ เช•เซเชฏเชพเชฐเซ‡เชฏ เช•เชฐเชถเซ‹ เชจเชนเซ€เช‚ - เชคเซ‡เชจเชพ เชฌเชฆเชฒเซ‡ เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎ เชธเซเชŸเซ‡เชŸ เช†เชฆเซ‡เชถเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‹. เช“เชณเช–เช•เชฐเซเชคเชพเช“เชจเซเช‚ เชจเชพเชฎ เชฌเชฆเชฒเชคเซ€ เชตเช–เชคเซ‡, เชคเชฎเชพเชฐเซ‡ เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎ เชธเซเชŸเซ‡เชŸ เชเชฎเชตเซ€ เช†เชฆเซ‡เชถ เชšเชฒเชพเชตเชตเซ‹ เชœเซ‹เชˆเช, เชœเซ‡เชฎเชพเช‚ เชจเซ€เชšเซ‡เชจเซ‹ เชตเชพเช•เซเชฏเชฐเชšเชจเชพ เช›เซ‡:
      terraform state mv <ORIGINAL_REFERENCE> <NEW_REFERENCE>

      ORIGINAL_REFERENCE เช เชเช• เช…เชญเชฟเชตเซเชฏเช•เซเชคเชฟ เช›เซ‡ เชœเซ‡ เชคเซ‡เชจเชพ เชตเชฐเซเชคเชฎเชพเชจ เชธเซเชตเชฐเซ‚เชชเชฎเชพเช‚ เชธเช‚เชธเชพเชงเชจเชจเซ‹ เชธเช‚เชฆเชฐเซเชญ เช†เชชเซ‡ เช›เซ‡, เช…เชจเซ‡ NEW_REFERENCE เช เช›เซ‡ เชœเซเชฏเชพเช‚ เชคเชฎเซ‡ เชคเซ‡เชจเซ‡ เช–เชธเซ‡เชกเชตเชพ เชฎเชพเช‚เช—เซ‹ เช›เซ‹. เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชœเซเชฏเชพเชฐเซ‡ aws_security_group เช—เซเชฐเซ‚เชชเชจเซเช‚ instance เชฅเซ€ cluster_instance เชฎเชพเช‚ เชจเชพเชฎ เชฌเชฆเชฒเซ‹, เชคเชฎเชพเชฐเซ‡ เชจเซ€เชšเซ‡เชจเซ‹ เช†เชฆเซ‡เชถ เชšเชฒเชพเชตเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡:

      $ terraform state mv 
         aws_security_group.instance 
         aws_security_group.cluster_instance

      เช† เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎเชจเซ‡ เช•เชนเซ‡ เช›เซ‡ เช•เซ‡ เชœเซ‡ เชฐเชพเชœเซเชฏ เช…เช—เชพเช‰ aws_security_group.instance เชธเชพเชฅเซ‡ เชธเช‚เช•เชณเชพเชฏเซ‡เชฒเซเช‚ เชนเชคเซเช‚ เชคเซ‡ เชนเชตเซ‡ aws_security_group.cluster_instance เชธเชพเชฅเซ‡ เชธเช‚เช•เชณเชพเชฏเซ‡เชฒเซเช‚ เชนเซ‹เชตเซเช‚ เชœเซ‹เชˆเช. เชœเซ‹ เช† เช†เชฆเซ‡เชถเชจเซเช‚ เชจเชพเชฎ เชฌเชฆเชฒเซเชฏเชพ เชชเช›เซ€ เช…เชจเซ‡ เชšเชฒเชพเชตเซเชฏเชพ เชชเช›เซ€ เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎ เชชเซเชฒเชพเชจ เช•เซ‹เชˆ เชซเซ‡เชฐเชซเชพเชฐเซ‹ เชฌเชคเชพเชตเชคเซเช‚ เชจเชฅเซ€, เชคเซ‹ เชคเชฎเซ‡ เชฌเชงเซเช‚ เชฌเชฐเชพเชฌเชฐ เช•เชฐเซเชฏเซเช‚ เช›เซ‡.

    • เช•เซ‡เชŸเชฒเซ€เช• เชธเซ‡เชŸเชฟเช‚เช—เซเชธ เชฌเชฆเชฒเซ€ เชถเช•เชพเชคเซ€ เชจเชฅเซ€. เช˜เชฃเชพ เชธเช‚เชธเชพเชงเชจเซ‹เชจเชพ เชชเชฐเชฟเชฎเชพเชฃเซ‹ เช…เชชเชฐเชฟเชตเชฐเซเชคเชจเชถเซ€เชฒ เช›เซ‡. เชœเซ‹ เชคเชฎเซ‡ เชคเซ‡เชฎเชจเซ‡ เชฌเชฆเชฒเชตเชพเชจเซ‹ เชชเซเชฐเชฏเชพเชธ เช•เชฐเซ‹ เช›เซ‹, เชคเซ‹ Terraform เชœเซ‚เชจเชพ เชธเช‚เชธเชพเชงเชจเชจเซ‡ เช•เชพเชขเซ€ เชจเชพเช–เชถเซ‡ เช…เชจเซ‡ เชคเซ‡เชจเซ€ เชœเช—เซเชฏเชพเช เชเช• เชจเชตเซเช‚ เชฌเชจเชพเชตเชถเซ‡. เชฆเชฐเซ‡เช• เชธเช‚เชธเชพเชงเชจ เชชเซƒเชทเซเช  เชธเชพเชฎเชพเชจเซเชฏ เชฐเซ€เชคเซ‡ เชธเซ‚เชšเชตเซ‡ เช›เซ‡ เช•เซ‡ เชœเซเชฏเชพเชฐเซ‡ เชคเชฎเซ‡ เช•เซ‹เชˆ เชšเซ‹เช•เซเช•เชธ เชธเซ‡เชŸเชฟเช‚เช— เชฌเชฆเชฒเซ‹ เชคเซเชฏเชพเชฐเซ‡ เชถเซเช‚ เชฅเชพเชฏ เช›เซ‡, เชคเซ‡เชฅเซ€ เชฆเชธเซเชคเชพเชตเซ‡เชœเซ€เช•เชฐเชฃ เชคเชชเชพเชธเชตเชพเชจเซ€ เช–เชพเชคเชฐเซ€ เช•เชฐเซ‹. เชนเช‚เชฎเซ‡เชถเชพ เชชเซเชฒเชพเชจ เช†เชฆเซ‡เชถเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‹ เช…เชจเซ‡ create_before_destroy เชตเซเชฏเซ‚เชนเชฐเชšเชจเชพเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพเชจเซเช‚ เชตเชฟเชšเชพเชฐเซ‹.

    เชตเชฟเชฒเช‚เชฌเชฟเชค เชธเซเชธเช‚เช—เชคเชคเชพ เชธเซเชธเช‚เช—เชค เช›เซ‡... เชธเซเชฅเช—เชฟเชค เชธเชพเชฅเซ‡

    เช•เซ‡เชŸเชฒเชพเช• เช•เซเชฒเชพเช‰เชก เชชเซเชฐเชฆเชพเชคเชพเช“เชจเชพ API, เชœเซ‡เชฎ เช•เซ‡ AWS, เชเชธเชฟเช‚เช•เซเชฐเซ‹เชจเชธ เช›เซ‡ เช…เชจเซ‡ เชคเซ‡เชฎเชพเช‚ เชตเชฟเชฒเช‚เชฌเชฟเชค เชธเซเชธเช‚เช—เชคเชคเชพ เช›เซ‡. เช…เชธเชฟเช‚เช•เซเชฐเซ‹เชจเซ‹ เช…เชฐเซเชฅ เช เช›เซ‡ เช•เซ‡ เช‡เชจเซเชŸเชฐเชซเซ‡เชธ เชตเชฟเชจเช‚เชคเซ€ เช•เชฐเซ‡เชฒ เช•เซเชฐเชฟเชฏเชพ เชชเซ‚เชฐเซเชฃ เชฅเชตเชพเชจเซ€ เชฐเชพเชน เชœเซ‹เชฏเชพ เชตเชฟเชจเชพ เชคเชฐเชค เชœ เชชเซเชฐเชคเชฟเชธเชพเชฆ เช†เชชเซ€ เชถเช•เซ‡ เช›เซ‡. เชตเชฟเชฒเช‚เชฌเชฟเชค เชธเซเชธเช‚เช—เชคเชคเชพเชจเซ‹ เช…เชฐเซเชฅ เช เช›เซ‡ เช•เซ‡ เชซเซ‡เชฐเชซเชพเชฐเซ‹เชจเซ‡ เชธเชฎเช—เซเชฐ เชธเชฟเชธเซเชŸเชฎเชฎเชพเช‚ เชซเซ‡เชฒเชพเชตเชตเชพเชฎเชพเช‚ เชธเชฎเชฏ เชฒเชพเช—เซ€ เชถเช•เซ‡ เช›เซ‡; เชœเซเชฏเชพเชฐเซ‡ เช† เชฅเชˆ เชฐเชนเซเชฏเซเช‚ เช›เซ‡, เชคเซเชฏเชพเชฐเซ‡ เชคเชฎเชพเชฐเชพ เชชเซเชฐเชคเชฟเชธเชพเชฆเซ‹ เช…เชธเช‚เช—เชค เชนเซ‹เชˆ เชถเช•เซ‡ เช›เซ‡ เช…เชจเซ‡ เชคเชฎเชพเชฐเชพ API เช•เซ‰เชฒเซเชธเชจเซ‡ เช•เชฏเชพ เชกเซ‡เชŸเชพ เชธเซเชคเซเชฐเซ‹เชคเชจเซ€ เชชเซเชฐเชคเชฟเช•เซƒเชคเชฟ เชชเซเชฐเชคเชฟเชญเชพเชต เช†เชชเซ€ เชฐเชนเซ€ เช›เซ‡ เชคเซ‡เชจเชพ เชชเชฐ เชจเชฟเชฐเซเชญเชฐ เชนเซ‹เชˆ เชถเช•เซ‡ เช›เซ‡.

    เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เช•เชฒเซเชชเชจเชพ เช•เชฐเซ‹ เช•เซ‡ เชคเชฎเซ‡ AWS เชจเซ‡ EC2 เชธเชฐเซเชตเชฐ เชฌเชจเชพเชตเชตเชพ เชฎเชพเชŸเซ‡ เช•เชนเซ€เชจเซ‡ API เช•เซ‰เชฒ เช•เชฐเซ‹ เช›เซ‹. API เชธเชฐเซเชตเชฐ เชชเซ‹เชคเซ‡ เชœ เชฌเชจเซ‡ เชคเซ‡เชจเซ€ เชฐเชพเชน เชœเซ‹เชฏเชพ เชตเชฟเชจเชพ, เชฒเช—เชญเช— เชคเชฐเชค เชœ "เชธเชซเชณ" เชชเซเชฐเชคเชฟเชธเชพเชฆ (201 เชฌเชจเชพเชตเชพเชฏเซ‡เชฒ) เช†เชชเชถเซ‡. เชœเซ‹ เชคเชฎเซ‡ เชคเซ‡เชจเซ‡ เชคเชฐเชค เชœ เช•เชจเซ‡เช•เซเชŸ เช•เชฐเชตเชพเชจเซ‹ เชชเซเชฐเชฏเชพเชธ เช•เชฐเซ‹ เช›เซ‹, เชคเซ‹ เชคเซ‡ เชฒเช—เชญเช— เชšเซ‹เช•เซเช•เชธเชชเชฃเซ‡ เชจเชฟเชทเซเชซเชณ เชœเชถเซ‡ เช•เชพเชฐเชฃ เช•เซ‡ เชคเซ‡ เชธเชฎเชฏเซ‡ AWS เชนเชœเซ เชชเชฃ เชธเช‚เชธเชพเชงเชจเซ‹ เชถเชฐเซ‚ เช•เชฐเซ€ เชฐเชนเซเชฏเซเช‚ เช›เซ‡ เช…เชฅเชตเชพ, เชตเซˆเช•เชฒเซเชชเชฟเช• เชฐเซ€เชคเซ‡, เชธเชฐเซเชตเชฐ เชนเชœเซ เชธเซเชงเซ€ เชฌเซเชŸ เชฅเชฏเซเช‚ เชจเชฅเซ€. เชตเชงเซเชฎเชพเช‚, เชœเซ‹ เชคเชฎเซ‡ เช† เชธเชฐเซเชตเชฐ เชตเชฟเชถเซ‡ เชฎเชพเชนเชฟเชคเซ€ เชฎเซ‡เชณเชตเชตเชพ เชฎเชพเชŸเซ‡ เชฌเซ€เชœเซ‹ เช•เซ‰เชฒ เช•เชฐเซ‹ เช›เซ‹, เชคเซ‹ เชคเชฎเชจเซ‡ เชเช• เชญเซ‚เชฒ (404 เชฎเชณเซ€ เชจเชฅเซ€) เชชเซเชฐเชพเชชเซเชค เชฅเชˆ เชถเช•เซ‡ เช›เซ‡. เชตเชพเชค เช เช›เซ‡ เช•เซ‡ เช† EC2 เชธเชฐเซเชตเชฐ เชตเชฟเชถเซ‡เชจเซ€ เชฎเชพเชนเชฟเชคเซ€ เชนเชœเซ€ เชชเชฃ AWS เชฎเชพเช‚ เชชเซเชฐเชšเชพเชฐเชฟเชค เชฅเชˆ เชถเช•เซ‡ เช›เซ‡ เชคเซ‡ เชชเชนเซ‡เชฒเชพเช‚ เชคเซ‡ เชธเชฐเซเชตเชคเซเชฐ เช‰เชชเชฒเชฌเซเชง เชฅเชพเชฏ เชคเซ‡ เชชเชนเซ‡เชฒเชพเช‚, เชคเชฎเชพเชฐเซ‡ เชฅเซ‹เชกเซ€ เชธเซ‡เช•เช‚เชก เชฐเชพเชน เชœเซ‹เชตเซ€ เชชเชกเชถเซ‡.

    เชœเซเชฏเชพเชฐเซ‡ เชชเชฃ เชคเชฎเซ‡ เชธเซเชธเซเชค เชธเซเชธเช‚เช—เชคเชคเชพ เชธเชพเชฅเซ‡ เช…เชธเซเชฎเซ‡เชณ API เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‹ เช›เซ‹, เชคเซเชฏเชพเชฐเซ‡ เชคเชฎเชพเชฐเซ‡ เชธเชฎเชฏเชพเช‚เชคเชฐเซ‡ เชคเชฎเชพเชฐเซ€ เชตเชฟเชจเช‚เชคเซ€เชจเซ‹ เชซเชฐเซ€เชฅเซ€ เชชเซเชฐเชฏเชพเชธ เช•เชฐเชตเซ‹ เชœเซ‹เชˆเช เชœเซเชฏเชพเช‚ เชธเซเชงเซ€ เช•เซเชฐเชฟเชฏเชพ เชชเซ‚เชฐเซเชฃ เชจ เชฅเชพเชฏ เช…เชจเซ‡ เชธเชฟเชธเซเชŸเชฎ เชฆเซเชตเชพเชฐเชพ เชชเซเชฐเชšเชพเชฐ เชจ เชฅเชพเชฏ. เช•เชฎเชจเชธเซ€เชฌเซ‡, AWS SDK เช† เชฎเชพเชŸเซ‡ เช•เซ‹เชˆ เชธเชพเชฐเชพ เชธเชพเชงเชจเซ‹ เชชเซเชฐเชฆเชพเชจ เช•เชฐเชคเซเช‚ เชจเชฅเซ€, เช…เชจเซ‡ เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ 6813 (https://github.com/hashicorp/terraform/issues/6813) เชœเซ‡เชตเซ€ เช˜เชฃเซ€ เชฌเชงเซ€ เชญเซ‚เชฒเซ‹เชฅเซ€ เชชเซ€เชกเชพเชคเซ‹ เชนเชคเซ‹:

    $ terraform apply
    aws_subnet.private-persistence.2: InvalidSubnetID.NotFound:
    The subnet ID 'subnet-xxxxxxx' does not exist

    เชฌเซ€เชœเชพ เชถเชฌเซเชฆเซ‹เชฎเชพเช‚ เช•เชนเซ€เช เชคเซ‹, เชคเชฎเซ‡ เชธเช‚เชธเชพเชงเชจ เชฌเชจเชพเชตเซ‹ (เชœเซ‡เชฎ เช•เซ‡ เชธเชฌเชจเซ‡เชŸ) เช…เชจเซ‡ เชชเช›เซ€ เชคเซ‡เชจเชพ เชตเชฟเชถเซ‡ เช•เซ‡เชŸเชฒเซ€เช• เชฎเชพเชนเชฟเชคเซ€ เชฎเซ‡เชณเชตเชตเชพเชจเซ‹ เชชเซเชฐเชฏเชพเชธ เช•เชฐเซ‹ (เชœเซ‡เชฎ เช•เซ‡ เชจเชตเชพ เชฌเชจเชพเชตเซ‡เชฒเชพ เชธเชฌเชจเซ‡เชŸเชจเซเช‚ ID), เช…เชจเซ‡ เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎ เชคเซ‡เชจเซ‡ เชถเซ‹เชงเซ€ เชถเช•เชคเซเช‚ เชจเชฅเซ€. เช†เชฎเชพเช‚เชจเซ€ เชฎเซ‹เชŸเชพเชญเชพเช—เชจเซ€ เชญเซ‚เชฒเซ‹ (6813 เชธเชนเชฟเชค) เช เซ€เช• เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เช›เซ‡, เชชเชฐเช‚เชคเซ เชคเซ‡ เชนเชœเซ เชชเชฃ เชธเชฎเชฏ เชธเชฎเชฏ เชชเชฐ เชชเชพเช•เชคเซ€ เชฐเชนเซ‡ เช›เซ‡, เช–เชพเชธ เช•เชฐเซ€เชจเซ‡ เชœเซเชฏเชพเชฐเซ‡ เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎ เชจเชตเชพ เชธเช‚เชธเชพเชงเชจ เชชเซเชฐเช•เชพเชฐ เชฎเชพเชŸเซ‡ เชธเชฎเชฐเซเชฅเชจ เช‰เชฎเซ‡เชฐเซ‡ เช›เซ‡. เช† เชนเซ‡เชฐเชพเชจ เช•เชฐเซ‡ เช›เซ‡, เชชเชฐเช‚เชคเซ เชฎเซ‹เชŸเชพเชญเชพเช—เชจเชพ เช•เชฟเชธเซเชธเชพเช“เชฎเชพเช‚ เช•เซ‹เชˆ เชจเซเช•เชธเชพเชจ เชฅเชคเซเช‚ เชจเชฅเซ€. เชœเซเชฏเชพเชฐเซ‡ เชคเชฎเซ‡ เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎ เชเชชเซเชฒเชพเชฏ เชซเชฐเซ€เชฅเซ€ เชšเชฒเชพเชตเซ‹ เช›เซ‹, เชคเซเชฏเชพเชฐเซ‡ เชฌเชงเซเช‚ เช•เชพเชฎ เช•เชฐเชตเซเช‚ เชœเซ‹เชˆเช, เช•เชพเชฐเชฃ เช•เซ‡ เช† เชธเชฎเชฏ เชธเซเชงเซ€เชฎเชพเช‚ เชฎเชพเชนเชฟเชคเซ€ เชธเชฎเช—เซเชฐ เชธเชฟเชธเซเชŸเชฎเชฎเชพเช‚ เชซเซ‡เชฒเชพเชˆ เช—เชˆ เชนเชถเซ‡.

    เช† เช…เชตเชคเชฐเชฃ Evgeniy Brikman เชฆเซเชตเชพเชฐเชพ เชชเซเชธเซเชคเช•เชฎเชพเช‚เชฅเซ€ เชฐเชœเซ‚ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เช›เซ‡ "เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎ: เช•เซ‹เชก เชฒเซ‡เชตเชฒ เชชเชฐ เช‡เชจเซเชซเซเชฐเชพเชธเซเชŸเซเชฐเช•เซเชšเชฐ".

เชธเซ‹เชฐเซเชธ: www.habr.com

เชเช• เชŸเชฟเชชเซเชชเชฃเซ€ เช‰เชฎเซ‡เชฐเซ‹