เจŸเฉˆเจฐเจพเจซเจพเจฐเจฎ เจจเฉเจ•เจธเจพเจจ

เจŸเฉˆเจฐเจพเจซเจพเจฐเจฎ เจจเฉเจ•เจธเจพเจจ
เจ†เจ‰ เจ•เฉเจ เจ–เจคเจฐเจฟเจ†เจ‚ เจจเฉ‚เฉฐ เจ‰เจœเจพเจ—เจฐ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚, เจœเจฟเจธ เจตเจฟเฉฑเจš เจฒเฉ‚เจชเจธ, เจœเฉ‡ เจธเจŸเฉ‡เจŸเจฎเฉˆเจ‚เจŸเจธ เจ…เจคเฉ‡ เจกเจฟเจชเจฒเจพเจ‡เจฎเฉˆเจ‚เจŸ เจคเจ•เจจเฉ€เจ•เจพเจ‚, เจ…เจคเฉ‡ เจจเจพเจฒ เจนเฉ€ เจนเฉ‹เจฐ เจ†เจฎ เจฎเฉเฉฑเจฆเฉ‡ เจœเฉ‹ เจŸเฉˆเจฐเจพเจซเจพเจฐเจฎ เจจเฉ‚เฉฐ เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡ เจชเฉเจฐเจญเจพเจตเจฟเจค เจ•เจฐเจฆเฉ‡ เจนเจจ, เจจเจพเจฒ เจธเจฌเฉฐเจงเจค เจนเจจ:

  • เจ—เจฟเจฃเจคเฉ€ เจ…เจคเฉ‡ for_each เจชเฉˆเจฐเจพเจฎเฉ€เจŸเจฐเจพเจ‚ เจฆเฉ€เจ†เจ‚ เจธเฉ€เจฎเจพเจตเจพเจ‚ เจนเจจ;
  • เจœเจผเฉ€เจฐเฉ‹ เจกเจพเจŠเจจเจŸเจพเจˆเจฎ เจคเฉˆเจจเจพเจคเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจธเฉ€เจฎเจค เจ•เจฐเฉ‹;
  • เจ‡เฉฑเจ• เจšเฉฐเจ—เฉ€ เจฏเฉ‹เจœเจจเจพ เจตเฉ€ เจ…เจธเจซเจฒ เจนเฉ‹ เจธเจ•เจฆเฉ€ เจนเฉˆ;
  • เจฐเฉ€เจซเฉˆเจ•เจŸเจฐเจฟเฉฐเจ— เจฆเฉ‡ เจจเฉเจ•เจธเจพเจจ เจนเฉ‹ เจธเจ•เจฆเฉ‡ เจนเจจ;
  • เจฎเฉเจฒเจคเจตเฉ€ เจคเจพเจฒเจฎเฉ‡เจฒ เจ‡เฉฑเจ•เจธเจพเจฐ เจนเฉเฉฐเจฆเจพ เจนเฉˆ... เจฎเฉเจฒเจคเจตเฉ€ เจฆเฉ‡ เจจเจพเจฒเฅค

เจ—เจฟเจฃเจคเฉ€ เจ…เจคเฉ‡ for_each เจชเฉˆเจฐเจพเจฎเฉ€เจŸเจฐเจพเจ‚ เจฆเฉ€เจ†เจ‚ เจธเฉ€เจฎเจพเจตเจพเจ‚ เจนเจจ

เจ‡เจธ เจ…เจงเจฟเจ†เจ‡ เจฆเฉ€เจ†เจ‚ เจ‰เจฆเจพเจนเจฐเจจเจพเจ‚ เจฒเฉ‚เจชเจธ เจ…เจคเฉ‡ เจ•เฉฐเจกเฉ€เจธเจผเจจเจฒ เจคเจฐเจ• เจตเจฟเฉฑเจš เจ—เจฟเจฃเจคเฉ€ เจชเฉˆเจฐเจพเจฎเฉ€เจŸเจฐ เจ…เจคเฉ‡ for_each เจธเจฎเฉ€เจ•เจฐเจจ เจฆเฉ€ เจตเจฟเจ†เจชเจ• เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ€เจ†เจ‚ เจนเจจเฅค เจ‰เจน เจตเจงเฉ€เจ† เจชเฉเจฐเจฆเจฐเจธเจผเจจ เจ•เจฐเจฆเฉ‡ เจนเจจ, เจชเจฐ เจ‰เจนเจจเจพเจ‚ เจฆเฉ€เจ†เจ‚ เจฆเฉ‹ เจฎเจนเฉฑเจคเจตเจชเฉ‚เจฐเจจ เจธเฉ€เจฎเจพเจตเจพเจ‚ เจนเจจ เจœเจฟเจนเจจเจพเจ‚ เจฌเจพเจฐเฉ‡ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจธเฉเจšเฉ‡เจค เจนเฉ‹เจฃ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆเฅค

  • Count and for_each เจ•เจฟเจธเฉ‡ เจตเฉ€ เจธเจฐเฉ‹เจค เจ†เจ‰เจŸเจชเฉเฉฑเจŸ เจตเฉ‡เจฐเฉ€เจเจฌเจฒ เจฆเจพ เจนเจตเจพเจฒเจพ เจจเจนเฉ€เจ‚ เจฆเฉ‡ เจธเจ•เจฆเจพ เจนเฉˆเฅค
  • เจ—เจฟเจฃเจคเฉ€ เจ…เจคเฉ‡ for_each เจจเฉ‚เฉฐ เจฎเฉ‹เจกเฉ€เจŠเจฒ เจธเฉฐเจฐเจšเจจเจพ เจตเจฟเฉฑเจš เจตเจฐเจคเจฟเจ† เจจเจนเฉ€เจ‚ เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆเฅค

count เจ…เจคเฉ‡ 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 เจคเฉฑเจ•, เจนเฉˆเจธเจผเฉ€เจ•เจพเจฐเจช เจŸเฉ€เจฎ เจฆเฉ€ เจ‡เจธ เจ•เจพเจฐเจœเจธเจผเฉ€เจฒเจคเจพ เจจเฉ‚เฉฐ เจœเฉ‹เฉœเจจ เจฆเฉ€ เจ•เฉ‹เจˆ เจฏเฉ‹เจœเจจเจพ เจจเจนเฉ€เจ‚ เจธเฉ€ (เจตเฉ‡เจฐเจตเฉ‡ - เจ‡เฉฑเจฅเฉ‡).

เจธเจนเฉ€ เจฏเฉ‹เจœเจจเจพ เจจเฉ‚เฉฐ เจ…เจธเจซเจฒเจคเจพ เจจเจพเจฒ เจฒเจพเจ—เฉ‚ เจ•เฉ€เจคเจพ เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ

เจ•เจˆ เจตเจพเจฐ เจฏเฉ‹เจœเจจเจพ เจ•เจฎเจพเจ‚เจก เจ‡เฉฑเจ• เจฌเจฟเจฒเจ•เฉเจฒ เจธเจนเฉ€ เจคเฉˆเจจเจพเจคเฉ€ เจฏเฉ‹เจœเจจเจพ เจคเจฟเจ†เจฐ เจ•เจฐเจฆเฉ€ เจนเฉˆ, เจชเจฐ เจฒเจพเจ—เฉ‚ เจ•เจฎเจพเจ‚เจก เจ‡เฉฑเจ• เจ—เจฒเจคเฉ€ เจตเจพเจชเจธ เจ•เจฐเจฆเฉ€ เจนเฉˆเฅค เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, aws_iam_user เจธเจฐเฉ‹เจค เจจเฉ‚เฉฐ เจ‰เจธเฉ‡ เจจเจพเจฎ เจจเจพเจฒ เจœเฉ‹เฉœเจจ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เจฐเฉ‹ เจœเฉ‹ เจคเฉเจธเฉ€เจ‚ เจชเจนเจฟเจฒเจพเจ‚ เจ…เจงเจฟเจ†เจ‡ 2 เจตเจฟเฉฑเจš เจฌเจฃเจพเจ IAM เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจฒเจˆ เจตเจฐเจคเจฟเจ† เจธเฉ€:

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 เจ‰เจชเจญเฉ‹เจ—เจคเจพเจตเจพเจ‚ เจฒเจˆ เจนเฉ‹ เจธเจ•เจฆเจพ เจนเฉˆ, เจชเจฐ เจฒเจ—เจญเจ— เจ•เจฟเจธเฉ‡ เจตเฉ€ เจธเจฐเฉ‹เจค เจจเจพเจฒ เจนเฉ‹ เจธเจ•เจฆเจพ เจนเฉˆ. เจ‡เจน เจธเฉฐเจญเจต เจนเฉˆ เจ•เจฟ เจ•เจฟเจธเฉ‡ เจจเฉ‡ เจ‡เจธ เจธเจฐเฉ‹เจค เจจเฉ‚เฉฐ เจนเฉฑเจฅเฉ€เจ‚ เจฌเจฃเจพเจ‡เจ† เจนเฉ‹เจตเฉ‡ เจœเจพเจ‚ เจ•เจฎเจพเจ‚เจก เจฒเจพเจˆเจจ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เฉ€เจคเฉ€ เจนเฉ‹เจตเฉ‡, เจชเจฐ เจ•เจฟเจธเฉ‡ เจตเฉ€ เจคเจฐเฉเจนเจพเจ‚, เจฎเฉ‡เจฒ เจ–เจพเจ‚เจฆเฉ€เจ†เจ‚ เจ†เจˆเจกเฉ€เจœเจผ เจตเจฟเจตเจพเจฆเจพเจ‚ เจตเฉฑเจฒ เจฒเฉˆ เจœเจพเจ‚เจฆเฉ€เจ†เจ‚ เจนเจจเฅค เจ‡เจธ เจ—เจฒเจคเฉ€ เจฆเฉ€เจ†เจ‚ เจฌเจนเฉเจค เจธเจพเจฐเฉ€เจ†เจ‚ เจญเจฟเฉฐเจจเจคเจพเจตเจพเจ‚ เจนเจจ เจœเฉ‹ เจ…เจ•เจธเจฐ เจŸเฉˆเจฐเจพเจซเจพเจฐเจฎ เจตเจฟเฉฑเจš เจจเจตเฉ‡เจ‚ เจ†เจ‰เจฃ เจตเจพเจฒเจฟเจ†เจ‚ เจจเฉ‚เฉฐ เจนเฉˆเจฐเจพเจจเฉ€ เจจเจพเจฒ เจซเฉœเจฆเฉ€เจ†เจ‚ เจนเจจเฅค

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

เจ‡เจธ เจคเฉ‹เจ‚ เจฆเฉ‹ เจธเจฌเจ• เจธเจฟเฉฑเจ–เจฃ เจฒเจˆ เจนเจจเฅค

  • เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ Terraform เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจจเจพ เจธเจผเฉเจฐเฉ‚ เจ•เจฐ เจฆเจฟเฉฑเจคเจพ เจนเฉˆ, เจคเจพเจ‚ เจนเฉ‹เจฐ เจ•เจฟเจธเฉ‡ เจšเฉ€เจœเจผ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจจเจพ เจ•เจฐเฉ‹เฅค เจœเฉ‡เจ•เจฐ เจคเฉเจนเจพเจกเฉ‡ เจฌเฉเจจเจฟเจ†เจฆเฉ€ เจขเจพเจ‚เจšเฉ‡ เจฆเฉ‡ เจนเจฟเฉฑเจธเฉ‡ เจจเฉ‚เฉฐ Terraform เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจชเฉเจฐเจฌเฉฐเจงเจฟเจค เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ, เจคเจพเจ‚ เจคเฉเจธเฉ€เจ‚ เจนเฉเจฃ เจ‡เจธเจจเฉ‚เฉฐ เจนเฉฑเจฅเฉ€เจ‚ เจจเจนเฉ€เจ‚ เจฌเจฆเจฒ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค เจจเจนเฉ€เจ‚ เจคเจพเจ‚, เจคเฉเจธเฉ€เจ‚ เจจเจพ เจธเจฟเจฐเจซ เจ…เจœเฉ€เจฌ เจŸเฉˆเจฐเจพเจซเจพเจฐเจฎ เจ—เจฒเจคเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจ–เจคเจฐเฉ‡ เจตเจฟเฉฑเจš เจชเจพเจ‰เจ‚เจฆเฉ‡ เจนเฉ‹, เจธเจ—เฉ‹เจ‚ เจคเฉเจธเฉ€เจ‚ 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 เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจฆเฉ‡ เจจเจพเจฒ เจคเฉเจนเจพเจกเฉ€ Terraform เจธเฉฐเจฐเจšเจจเจพ เจตเจฟเฉฑเจš เจœเฉ‹เฉœเจฟเจ† เจนเฉˆ (เจฌเฉ‡เจธเจผเจ•, เจคเฉเจนเจพเจกเฉ‡ เจจเจพเจฎ เจจเฉ‚เฉฐ 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 เจŸเฉ‚เจฒ เจฆเฉ€ เจ—เฉฑเจฒ เจ†เจ‰เจ‚เจฆเฉ€ เจนเฉˆ, เจคเจพเจ‚ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ•เฉ‹เจก เจฆเฉ‡ เจŸเฉเจ•เฉœเฉ‡ เจฆเฉ‡ "เจฌเจพเจนเจฐเฉ€ เจตเจฟเจตเจนเจพเจฐ" เจคเฉ‹เจ‚ เจคเฉเจนเจพเจกเจพ เจ•เฉ€ เจฎเจคเจฒเจฌ เจนเฉˆ, เจ‡เจธ เจฌเจพเจฐเฉ‡ เจฌเจนเฉเจค เจงเจฟเจ†เจจ เจฐเฉฑเจ–เจฃเจพ เจนเฉ‹เจตเฉ‡เจ—เจพ, เจจเจนเฉ€เจ‚ เจคเจพเจ‚ เจ…เจšเจพเจจเจ• เจธเจฎเฉฑเจธเจฟเจ†เจตเจพเจ‚ เจชเฉˆเจฆเจพ เจนเฉ‹เจฃเจ—เฉ€เจ†เจ‚เฅค

    เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจฐเฉ€เจซเฉˆเจ•เจŸเจฐเจฟเฉฐเจ— เจฆเฉ€ เจ‡เฉฑเจ• เจ†เจฎ เจ•เจฟเจธเจฎ เจตเฉ‡เจฐเฉ€เจเจฌเจฒเจพเจ‚ เจœเจพเจ‚ เจซเฉฐเจ•เจธเจผเจจเจพเจ‚ เจฆเฉ‡ เจจเจพเจตเจพเจ‚ เจจเฉ‚เฉฐ เจตเจงเฉ‡เจฐเฉ‡ เจธเจฎเจเจฃ เจฏเฉ‹เจ— เจฒเฉ‹เจ•เจพเจ‚ เจจเจพเจฒ เจฌเจฆเจฒ เจฐเจนเฉ€ เจนเฉˆเฅค เจฌเจนเฉเจค เจธเจพเจฐเฉ‡ IDEs เจ•เฉ‹เจฒ เจฐเฉ€เจซเฉˆเจ•เจŸเจฐเจฟเฉฐเจ— เจฒเจˆ เจฌเจฟเจฒเจŸ-เจ‡เจจ เจธเจฎเจฐเจฅเจจ เจนเฉเฉฐเจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจชเฉ‚เจฐเฉ‡ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจตเจฟเฉฑเจš เจตเฉ‡เจฐเฉ€เจเจฌเจฒเจพเจ‚ เจ…เจคเฉ‡ เจซเฉฐเจ•เจธเจผเจจเจพเจ‚ เจฆเจพ เจ†เจชเจฃเฉ‡ เจ†เจช เจจเจพเจฎ เจฌเจฆเจฒ เจธเจ•เจฆเจพ เจนเฉˆเฅค เจ†เจฎ-เจ‰เจฆเฉ‡เจธเจผ เจตเจพเจฒเฉ€เจ†เจ‚ เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎเจฟเฉฐเจ— เจญเจพเจธเจผเจพเจตเจพเจ‚ เจตเจฟเฉฑเจš, เจ‡เจน เจ‡เฉฑเจ• เจฎเจพเจฎเฉ‚เจฒเฉ€ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจนเฉˆ เจœเจฟเจธ เจฌเจพเจฐเฉ‡ เจคเฉเจธเฉ€เจ‚ เจธเจผเจพเจ‡เจฆ เจจเจพ เจธเฉ‹เจšเฉ‹, เจชเจฐ เจŸเฉ‡เจฐเจพเจซเจพเจฐเจฎ เจตเจฟเฉฑเจš เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‡เจธ เจจเจพเจฒ เจฌเจนเฉเจค เจธเจพเจตเจงเจพเจจ เจฐเจนเจฟเจฃเจพ เจชเจตเฉ‡เจ—เจพ, เจจเจนเฉ€เจ‚ เจคเจพเจ‚ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ†เจŠเจŸเฉ‡เจœ เจฆเจพ เจ…เจจเฉเจญเจต เจนเฉ‹ เจธเจ•เจฆเจพ เจนเฉˆเฅค

    เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจตเฉˆเจฌเจธเจฐเจตเจฐ-เจ•เจฒเฉฑเจธเจŸเจฐ เจฎเฉ‹เจกเฉ€เจŠเจฒ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจ‡เจจเจชเฉเจŸ เจตเฉ‡เจฐเฉ€เจเจฌเจฒ cluster_name เจนเฉˆ:

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

    เจ•เจฒเจชเจจเจพ เจ•เจฐเฉ‹ เจ•เจฟ เจคเฉเจธเฉ€เจ‚ เจ‡เจธ เจฎเฉ‹เจกเฉ€เจŠเจฒ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ foo เจจเจพเจฎเจ• เจฎเจพเจˆเจ•เฉเจฐเฉ‹เจธเจฐเจตเจฟเจธ เจจเฉ‚เฉฐ เจฒเจพเจ—เฉ‚ เจ•เจฐเจจ เจฒเจˆ เจธเจผเฉเจฐเฉ‚ เจ•เฉ€เจคเฉ€ เจนเฉˆเฅค เจฌเจพเจ…เจฆ เจตเจฟเฉฑเจš, เจคเฉเจธเฉ€เจ‚ เจ†เจชเจฃเฉ€ เจธเฉ‡เจตเจพ เจฆเจพ เจจเจพเจฎ เจฌเจฆเจฒ เจ•เฉ‡ เจฌเจพเจฐ เจ•เจฐเจจเจพ เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจนเฉ‹เฅค เจ‡เจน เจคเจฌเจฆเฉ€เจฒเฉ€ เจฎเจพเจฎเฉ‚เจฒเฉ€ เจฒเฉฑเจ— เจธเจ•เจฆเฉ€ เจนเฉˆ, เจชเจฐ เจ…เจธเจฒ เจตเจฟเฉฑเจš เจ‡เจน เจธเฉ‡เจตเจพ เจตเจฟเฉฑเจš เจตเจฟเจ˜เจจ เจชเฉˆเจฆเจพ เจ•เจฐ เจธเจ•เจฆเฉ€ เจนเฉˆเฅค

    เจคเฉฑเจฅ เจ‡เจน เจนเฉˆ เจ•เจฟ เจตเฉˆเจฌเจธเจฐเจตเจฐ-เจ•เจฒเฉฑเจธเจŸเจฐ เจฎเฉ‹เจกเฉ€เจŠเจฒ เจ•เจˆ เจธเจฐเฉ‹เจคเจพเจ‚ เจตเจฟเฉฑเจš cluster_name เจตเฉ‡เจฐเฉ€เจเจฌเจฒ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเจพ เจนเฉˆ, เจœเจฟเจธ เจตเจฟเฉฑเจš เจฆเฉ‹ เจธเฉเจฐเฉฑเจ–เจฟเจ† เจธเจฎเฉ‚เจนเจพเจ‚ เจฆเฉ‡ เจจเจพเจฎ เจชเฉˆเจฐเจพเจฎเฉ€เจŸเจฐ เจ…เจคเฉ‡ ALB เจธเจผเจพเจฎเจฒ เจนเจจ:

    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 เจนเฉˆ, เจคเจพเจ‚ เจ‡เจธเจจเฉ‚เฉฐ เจฎเจฟเจŸเจพเจ‰เจฃ เจ…เจคเฉ‡ เจ‡เฉฑเจ• เจจเจตเจพเจ‚ เจธเฉฐเจธเจ•เจฐเจฃ เจกเจพเจ‰เจจเจฒเฉ‹เจก เจ•เจฐเจจ เจฆเฉ‡ เจตเจฟเจšเจ•เจพเจฐ, เจคเฉเจนเจพเจกเฉ‡ เจ•เฉ‹เจฒ เจคเฉเจนเจพเจกเฉ‡ เจตเฉˆเจฌ เจธเจฐเจตเจฐ เจคเฉ‡ เจŸเฉเจฐเฉˆเจซเจฟเจ• เจจเฉ‚เฉฐ เจฐเฉ€เจกเจพเจ‡เจฐเฉˆเจ•เจŸ เจ•เจฐเจจ เจฒเจˆ เจ•เฉ‹เจˆ เจตเจฟเจงเฉ€ เจจเจนเฉ€เจ‚ เจนเฉ‹เจตเฉ‡เจ—เฉ€เฅค เจ‡เจธเฉ‡ เจคเจฐเฉเจนเจพเจ‚, เจœเฉ‡เจ•เจฐ เจ‡เฉฑเจ• เจธเฉเจฐเฉฑเจ–เจฟเจ† เจธเจฎเฉ‚เจน เจจเฉ‚เฉฐ เจฎเจฟเจŸเจพเจ‡เจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆ, เจคเจพเจ‚ เจคเฉเจนเจพเจกเฉ‡ เจธเจฐเจตเจฐ เจ•เจฟเจธเฉ‡ เจตเฉ€ เจจเฉˆเฉฑเจŸเจตเจฐเจ• เจŸเฉเจฐเฉˆเจซเจฟเจ• เจจเฉ‚เฉฐ เจ‰เจฆเฉ‹เจ‚ เจคเฉฑเจ• เจฐเฉฑเจฆ เจ•เจฐเจจเจพ เจธเจผเฉเจฐเฉ‚ เจ•เจฐ เจฆเฉ‡เจฃเจ—เฉ‡ เจœเจฆเฉ‹เจ‚ เจคเฉฑเจ• เจ‡เฉฑเจ• เจจเจตเจพเจ‚ เจธเจฎเฉ‚เจน เจจเจนเฉ€เจ‚ เจฌเจฃ เจœเจพเจ‚เจฆเจพเฅค

    เจ‡เฉฑเจ• เจนเฉ‹เจฐ เจ•เจฟเจธเจฎ เจฆเฉ€ เจฐเฉ€เจซเฉˆเจ•เจŸเจฐเจฟเฉฐเจ— เจœเจฟเจธ เจตเจฟเฉฑเจš เจคเฉเจนเจพเจกเฉ€ เจฆเจฟเจฒเจšเจธเจชเฉ€ เจนเฉ‹ เจธเจ•เจฆเฉ€ เจนเฉˆ เจŸเฉˆเจฐเจพเจซเจพเจฐเจฎ เจ†เจˆเจกเฉ€ เจจเฉ‚เฉฐ เจฌเจฆเจฒเจฃเจพเฅค เจ†เจ‰ เจ‡เฉฑเจ• เจ‰เจฆเจพเจนเจฐเจฃ เจตเจœเฉ‹เจ‚ เจตเฉˆเจฌเจธเจฐเจตเจฐ-เจ•เจฒเฉฑเจธเจŸเจฐ เจฎเฉ‹เจกเฉ€เจŠเจฒ เจตเจฟเฉฑเจš 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 เจจเฉ‚เฉฐ เจฌเจฆเจฒเจฆเฉ‡ เจนเฉ‹ (เจ‰เจฆเจพเจนเจฐเจจ เจคเฉ‹เจ‚ cluster_instance, เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ aws_security_group เจฆเฉ‡ เจฎเจพเจฎเจฒเฉ‡ เจตเจฟเฉฑเจš เจนเฉˆ), เจŸเฉˆเจฐเจพเจซเจพเจฐเจฎ เจตเจฟเฉฑเจš เจ‡เจน เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚ เจฆเจฟเจ–เจพเจˆ เจฆเฉ‡เจตเฉ‡เจ—เจพ เจœเจฟเจตเฉ‡เจ‚ เจคเฉเจธเฉ€เจ‚ เจชเฉเจฐเจพเจฃเฉ‡ เจธเจฐเฉ‹เจค เจจเฉ‚เฉฐ เจฎเจฟเจŸเจพ เจฆเจฟเฉฑเจคเจพ เจนเฉˆ เจ…เจคเฉ‡ เจ‡เฉฑเจ• เจจเจตเจพเจ‚ เจœเฉ‹เฉœเจฟเจ† เจนเฉˆเฅค เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจ‡เจนเจจเจพเจ‚ เจคเจฌเจฆเฉ€เจฒเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจฒเจพเจ—เฉ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจŸเฉˆเจฐเจพเจซเจพเจฐเจฎ เจชเฉเจฐเจพเจฃเฉ‡ เจธเฉเจฐเฉฑเจ–เจฟเจ† เจธเจฎเฉ‚เจน เจจเฉ‚เฉฐ เจฎเจฟเจŸเจพ เจฆเฉ‡เจตเฉ‡เจ—เจพ เจ…เจคเฉ‡ เจ‡เฉฑเจ• เจจเจตเจพเจ‚ เจฌเจฃเจพ เจฆเฉ‡เจตเฉ‡เจ—เจพ, เจœเจฆเฉ‹เจ‚ เจ•เจฟ เจคเฉเจนเจพเจกเฉ‡ เจธเจฐเจตเจฐ เจ•เจฟเจธเฉ‡ เจตเฉ€ เจจเฉˆเฉฑเจŸเจตเจฐเจ• เจŸเฉเจฐเฉˆเจซเจฟเจ• เจจเฉ‚เฉฐ เจฐเฉฑเจฆ เจ•เจฐเจจเจพ เจธเจผเฉเจฐเฉ‚ เจ•เจฐ เจฆเจฟเฉฐเจฆเฉ‡ เจนเจจเฅค

    เจ‡เฉฑเจฅเฉ‡ เจšเจพเจฐ เจฎเฉเฉฑเจ– เจธเจฌเจ• เจนเจจ เจœเฉ‹ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‡เจธ เจšเจฐเจšเจพ เจคเฉ‹เจ‚ เจฆเฉ‚เจฐ เจ•เจฐเจจเฉ‡ เจšเจพเจนเฉ€เจฆเฉ‡ เจนเจจเฅค

    • เจนเจฎเฉ‡เจธเจผเจพ เจฏเฉ‹เจœเจจเจพ เจ•เจฎเจพเจ‚เจก เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเฉ‹เฅค เจ‡เจน เจ‡เจนเจจเจพเจ‚ เจธเจพเจฐเฉ€เจ†เจ‚ เจ–เฉ‹เจ–เจฒเฉ€เจ†เจ‚ โ€‹โ€‹เจ—เฉฑเจฒเจพเจ‚ เจจเฉ‚เฉฐ เจ‰เจœเจพเจ—เจฐ เจ•เจฐ เจธเจ•เจฆเจพ เจนเฉˆเฅค เจ‡เจธเจฆเฉ‡ เจ†เจ‰เจŸเจชเฉเฉฑเจŸ เจฆเฉ€ เจธเจพเจตเจงเจพเจจเฉ€ เจจเจพเจฒ เจธเจฎเฉ€เจ–เจฟเจ† เจ•เจฐเฉ‹ เจ…เจคเฉ‡ เจ‰เจนเจจเจพเจ‚ เจธเจฅเจฟเจคเฉ€เจ†เจ‚ เจตเฉฑเจฒ เจงเจฟเจ†เจจ เจฆเจฟเจ“ เจœเจฟเฉฑเจฅเฉ‡ เจŸเฉˆเจฐเจพเจซเจพเจฐเจฎ เจ‰เจนเจจเจพเจ‚ เจธเจฐเฉ‹เจคเจพเจ‚ เจจเฉ‚เฉฐ เจฎเจฟเจŸเจพเจ‰เจฃ เจฆเฉ€ เจฏเฉ‹เจœเจจเจพ เจฌเจฃเจพเจ‰เจ‚เจฆเจพ เจนเฉˆ เจœเจฟเจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจฎเจฟเจŸเจพเจ‡เจ† เจจเจนเฉ€เจ‚ เจœเจพเจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆเฅค
    • เจฎเจฟเจŸเจพเจ‰เจฃ เจคเฉ‹เจ‚ เจชเจนเจฟเจฒเจพเจ‚ เจฌเจฃเจพเจ“เฅค เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจ‡เฉฑเจ• เจธเจฐเฉ‹เจค เจจเฉ‚เฉฐ เจฌเจฆเจฒเจฃเจพ เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจ‡เจธ เจฌเจพเจฐเฉ‡ เจงเจฟเจ†เจจ เจจเจพเจฒ เจธเฉ‹เจšเฉ‹ เจ•เจฟ เจ•เฉ€ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ…เจธเจฒเฉ€ เจจเฉ‚เฉฐ เจฎเจฟเจŸเจพเจ‰เจฃ เจคเฉ‹เจ‚ เจชเจนเจฟเจฒเจพเจ‚ เจ‡เฉฑเจ• เจฐเจฟเจชเจฒเฉ‡เจธเจฎเฉˆเจ‚เจŸ เจฌเจฃเจพเจ‰เจฃ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆเฅค เจœเฉ‡เจ•เจฐ เจœเจตเจพเจฌ เจนเจพเจ‚ เจนเฉˆ, เจคเจพเจ‚ create_before_destroy เจฎเจฆเจฆ เจ•เจฐ เจธเจ•เจฆเจพ เจนเฉˆเฅค เจ‰เจนเฉ€ เจจเจคเฉ€เจœเจพ เจฆเฉ‹ เจ•เจฆเจฎเจพเจ‚ เจจเฉ‚เฉฐ เจšเจฒเจพ เจ•เฉ‡ เจนเฉฑเจฅเฉ€เจ‚ เจชเฉเจฐเจพเจชเจค เจ•เฉ€เจคเจพ เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ: เจชเจนเจฟเจฒเจพเจ‚ เจธเฉฐเจฐเจšเจจเจพ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจจเจตเจพเจ‚ เจธเจฐเฉ‹เจค เจธเจผเจพเจฎเจฒ เจ•เจฐเฉ‹ เจ…เจคเฉ‡ เจฒเจพเจ—เฉ‚ เจ•เจฎเจพเจ‚เจก เจšเจฒเจพเจ“, เจ…เจคเฉ‡ เจซเจฟเจฐ เจธเฉฐเจฐเจšเจจเจพ เจคเฉ‹เจ‚ เจชเฉเจฐเจพเจฃเฉ‡ เจธเจฐเฉ‹เจค เจจเฉ‚เฉฐ เจนเจŸเจพเจ“ เจ…เจคเฉ‡ เจฒเจพเจ—เฉ‚ เจ•เจฎเจพเจ‚เจก เจฆเฉ€ เจฆเฉเจฌเจพเจฐเจพ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเฉ‹เฅค
    • เจชเจ›เจพเจฃเจ•เจฐเจคเจพเจตเจพเจ‚ เจจเฉ‚เฉฐ เจฌเจฆเจฒเจฃ เจฒเจˆ เจธเจฅเจฟเจคเฉ€ เจฌเจฆเจฒเจฃ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆเฅค เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจ•เจฟเจธเฉ‡ เจธเจฐเฉ‹เจค เจจเจพเจฒ เจธเฉฐเจฌเฉฐเจงเจฟเจค เจ†เจˆเจกเฉ€ เจจเฉ‚เฉฐ เจฌเจฆเจฒเจฃเจพ เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจนเฉ‹ (เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, aws_security_group เจฆเจพ เจจเจพเจฎ เจฌเจฆเจฒเฉ‹ instance เจคเฉ‹เจ‚ cluster_instance) เจคเจพเจ‚ เจธเจฐเฉ‹เจค เจจเฉ‚เฉฐ เจฎเจฟเจŸเจพเจ เจ…เจคเฉ‡ เจ‡เจธเจฆเจพ เจจเจตเจพเจ‚ เจธเฉฐเจธเจ•เจฐเจฃ เจฌเจฃเจพเจ เจฌเจฟเจจเจพเจ‚, เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‰เจธ เจ…เจจเฉเจธเจพเจฐ เจŸเฉˆเจฐเจพเจซเจพเจฐเจฎ เจธเจŸเฉ‡เจŸ เจซเจพเจˆเจฒ เจจเฉ‚เฉฐ เจ…เจชเจกเฉ‡เจŸ เจ•เจฐเจจเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆเฅค เจ‡เจธเจจเฉ‚เฉฐ เจ•เจฆเฉ‡ เจตเฉ€ เจนเฉฑเจฅเฉ€เจ‚ เจจเจพ เจ•เจฐเฉ‹ - เจ‡เจธเจฆเฉ€ เจฌเจœเจพเจ เจŸเฉˆเจฐเจพเจซเจพเจฐเจฎ เจธเจŸเฉ‡เจŸ เจ•เจฎเจพเจ‚เจก เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเฉ‹เฅค เจชเจ›เจพเจฃเจ•เจฐเจคเจพเจตเจพเจ‚ เจฆเจพ เจจเจพเจฎ เจฌเจฆเจฒเจฃ เจตเฉ‡เจฒเฉ‡, เจคเฉเจนเจพเจจเฉ‚เฉฐ เจŸเฉˆเจฐเจพเจซเจพเจฐเจฎ เจธเจŸเฉ‡เจŸ mv เจ•เจฎเจพเจ‚เจก เจšเจฒเจพเจ‰เจฃเฉ€ เจšเจพเจนเฉ€เจฆเฉ€ เจนเฉˆ, เจœเจฟเจธ เจตเจฟเฉฑเจš เจนเฉ‡เจ  เจฒเจฟเจ–เฉ‡ เจธเฉฐเจŸเฉˆเจ•เจธ เจนเจจ:
      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 เจจเจพเจฒ เจœเฉเฉœเจฟเจ† เจนเฉ‹เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆเฅค เจœเฉ‡เจ•เจฐ เจ‡เจธ เจ•เจฎเจพเจ‚เจก เจฆเจพ เจจเจพเจ‚ เจฌเจฆเจฒเจฃ เจ…เจคเฉ‡ เจšเจฒเจพเจ‰เจฃ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ เจŸเฉˆเจฐเจพเจซเจพเจฐเจฎ เจชเจฒเจพเจจ เจ•เฉ‹เจˆ เจฌเจฆเจฒเจพเจ… เจจเจนเฉ€เจ‚ เจฆเจฟเจ–เจพเจ‰เจ‚เจฆเจพ เจนเฉˆ, เจคเจพเจ‚ เจคเฉเจธเฉ€เจ‚ เจธเจญ เจ•เฉเจ เจ เฉ€เจ• เจ•เฉ€เจคเจพ เจนเฉˆเฅค

    • เจ•เฉเจ เจธเฉˆเจŸเจฟเฉฐเจ—เจพเจ‚ เจฌเจฆเจฒเฉ€เจ†เจ‚ เจจเจนเฉ€เจ‚ เจœเจพ เจธเจ•เจฆเฉ€เจ†เจ‚เฅค เจฌเจนเฉเจค เจธเจพเจฐเฉ‡ เจธเจฐเฉ‹เจคเจพเจ‚ เจฆเฉ‡ เจฎเจพเจชเจฆเฉฐเจก เจฌเจฆเจฒเฉ‡ เจจเจนเฉ€เจ‚ เจœเจพ เจธเจ•เจฆเฉ‡ เจนเจจเฅค เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจฌเจฆเจฒเจฃ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เจฐเจฆเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจŸเฉˆเจฐเจพเจซเจพเจฐเจฎ เจชเฉเจฐเจพเจฃเฉ‡ เจธเจฐเฉ‹เจค เจจเฉ‚เฉฐ เจฎเจฟเจŸเจพ เจฆเฉ‡เจตเฉ‡เจ—เจพ เจ…เจคเฉ‡ เจ‡เจธเจฆเฉ€ เจฅเจพเจ‚ เจ‡เฉฑเจ• เจจเจตเจพเจ‚ เจฌเจฃเจพ เจฆเฉ‡เจตเฉ‡เจ—เจพเฅค เจนเจฐเฉ‡เจ• เจธเจฐเฉ‹เจค เจชเฉฐเจจเจพ เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡ เจ‡เจน เจฆเจฐเจธเจพเจเจ—เจพ เจ•เจฟ เจœเจฆเฉ‹เจ‚ เจคเฉเจธเฉ€เจ‚ เจ•เจฟเจธเฉ‡ เจ–เจพเจธ เจธเฉˆเจŸเจฟเฉฐเจ— เจจเฉ‚เฉฐ เจฌเจฆเจฒเจฆเฉ‡ เจนเฉ‹ เจคเจพเจ‚ เจ•เฉ€ เจนเฉเฉฐเจฆเจพ เจนเฉˆ, เจ‡เจธ เจฒเจˆ เจฆเจธเจคเจพเจตเฉ‡เจœเจผเจพเจ‚ เจฆเฉ€ เจœเจพเจ‚เจš เจ•เจฐเจจเจพ เจฏเจ•เฉ€เจจเฉ€ เจฌเจฃเจพเจ“เฅค เจนเจฎเฉ‡เจธเจผเจพ เจฏเฉ‹เจœเจจเจพ เจ•เจฎเจพเจ‚เจก เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเฉ‹ เจ…เจคเฉ‡ create_before_destroy เจฐเจฃเจจเฉ€เจคเฉ€ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจ 'เจคเฉ‡ เจตเจฟเจšเจพเจฐ เจ•เจฐเฉ‹เฅค

    เจฎเฉเจฒเจคเจตเฉ€ เจ‡เจ•เจธเจพเจฐเจคเจพ เจ‡เจ•เจธเจพเจฐ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆ... เจฎเฉเจฒเจคเจตเฉ€ เจฆเฉ‡ เจจเจพเจฒ

    เจ•เฉเจ เจ•เจฒเจพเจ‰เจก เจชเฉเจฐเจฆเจพเจคเจพเจตเจพเจ‚ เจฆเฉ‡ API, เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ AWS, เจ…เจธเจฟเฉฐเจ•เจฐเฉ‹เจจเจธ เจนเฉเฉฐเจฆเฉ‡ เจนเจจ เจ…เจคเฉ‡ เจ‡เฉฑเจ•เจธเจพเจฐเจคเจพ เจตเจฟเฉฑเจš เจฆเฉ‡เจฐเฉ€ เจ•เจฐเจฆเฉ‡ เจนเจจเฅค เจ…เจธเจฟเฉฐเจ•เฉเจฐเฉ‹เจจเฉ€ เจฆเจพ เจฎเจคเจฒเจฌ เจนเฉˆ เจ•เจฟ เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธ เจฌเฉ‡เจจเจคเฉ€ เจ•เฉ€เจคเฉ€ เจ•เจพเจฐเจตเจพเจˆ เจฆเฉ‡ เจชเฉ‚เจฐเจพ เจนเฉ‹เจฃ เจฆเฉ€ เจ‰เจกเฉ€เจ• เจ•เฉ€เจคเฉ‡ เจฌเจฟเจจเจพเจ‚ เจคเฉเจฐเฉฐเจค เจœเจตเจพเจฌ เจตเจพเจชเจธ เจ•เจฐ เจธเจ•เจฆเจพ เจนเฉˆเฅค เจฆเฉ‡เจฐเฉ€ เจจเจพเจฒ เจ‡เจ•เจธเจพเจฐเจคเจพ เจฆเจพ เจฎเจคเจฒเจฌ เจนเฉˆ เจ•เจฟ เจคเจฌเจฆเฉ€เจฒเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจชเฉ‚เจฐเฉ‡ เจธเจฟเจธเจŸเจฎ เจตเจฟเฉฑเจš เจซเฉˆเจฒเจฃ เจตเจฟเฉฑเจš เจธเจฎเจพเจ‚ เจฒเฉฑเจ— เจธเจ•เจฆเจพ เจนเฉˆ; เจœเจฆเฉ‹เจ‚ เจ‡เจน เจนเฉ‹ เจฐเจฟเจนเจพ เจนเฉˆ, เจคเฉเจนเจพเจกเฉ‡ เจœเจตเจพเจฌ เจ…เจธเฉฐเจ—เจค เจนเฉ‹ เจธเจ•เจฆเฉ‡ เจนเจจ เจ…เจคเฉ‡ เจ‡เจธ เจ—เฉฑเจฒ 'เจคเฉ‡ เจจเจฟเจฐเจญเจฐ เจนเฉ‹ เจธเจ•เจฆเฉ‡ เจนเจจ เจ•เจฟ เจ•เจฟเจนเฉœเจพ เจกเฉ‡เจŸเจพ เจธเจฐเฉ‹เจค เจชเฉเจฐเจคเฉ€เจ•เฉเจฐเจฟเจคเฉ€ เจคเฉเจนเจพเจกเฉ€ API เจ•เจพเจฒเจพเจ‚ เจฆเจพ เจœเจตเจพเจฌ เจฆเฉ‡ เจฐเจนเฉ€ เจนเฉˆเฅค

    เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจ•เจฒเจชเจจเจพ เจ•เจฐเฉ‹ เจ•เจฟ เจคเฉเจธเฉ€เจ‚ AWS เจจเฉ‚เฉฐ เจ‡เฉฑเจ• EC2 เจธเจฐเจตเจฐ เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ เจ‡เฉฑเจ• API เจ•เจพเจฒ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เฅค เจเจชเฉ€เจ†เจˆ เจธเจฐเจตเจฐ เจฆเฉ‡ เจฌเจฃเจพเจ เจœเจพเจฃ เจฆเฉ€ เจ‰เจกเฉ€เจ• เจ•เฉ€เจคเฉ‡ เจฌเจฟเจจเจพเจ‚, เจฒเจ—เจญเจ— เจคเฉเจฐเฉฐเจค เจ‡เฉฑเจ• "เจธเจซเจฒ" เจœเจตเจพเจฌ (201 เจฌเจฃเจพเจ‡เจ† เจ—เจฟเจ†) เจตเจพเจชเจธ เจ•เจฐเฉ‡เจ—เจพเฅค เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจคเฉเจฐเฉฐเจค เจ‡เจธ เจจเจพเจฒ เจœเฉเฉœเจจ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เจฐเจฆเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจ‡เจน เจฒเจ—เจญเจ— เจจเจฟเจธเจผเจšเจค เจคเฉŒเจฐ 'เจคเฉ‡ เจ…เจธเจซเจฒ เจนเฉ‹ เจœเจพเจตเฉ‡เจ—เจพ เจ•เจฟเจ‰เจ‚เจ•เจฟ เจ‰เจธ เจธเจฎเฉ‡เจ‚ AWS เจ…เจœเฉ‡ เจตเฉ€ เจธเจฐเฉ‹เจคเจพเจ‚ เจฆเฉ€ เจธเจผเฉเจฐเฉ‚เจ†เจค เจ•เจฐ เจฐเจฟเจนเจพ เจนเฉˆ เจœเจพเจ‚, เจตเจฟเจ•เจฒเจชเจ• เจคเฉŒเจฐ 'เจคเฉ‡, เจธเจฐเจตเจฐ เจ…เจœเฉ‡ เจฌเฉ‚เจŸ เจจเจนเฉ€เจ‚ เจนเฉ‹เจ‡เจ† เจนเฉˆเฅค เจ‡เจธ เจคเฉ‹เจ‚ เจ‡เจฒเจพเจตเจพ, เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจ‡เจธ เจธเจฐเจตเจฐ เจฌเจพเจฐเฉ‡ เจœเจพเจฃเจ•เจพเจฐเฉ€ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจ เจฒเจˆ เจ‡เฉฑเจ• เจนเฉ‹เจฐ เจ•เจพเจฒ เจ•เจฐเจฆเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจ—เจฒเจคเฉ€ (404 เจจเจนเฉ€เจ‚ เจฎเจฟเจฒเฉ€) เจชเฉเจฐเจพเจชเจค เจนเฉ‹ เจธเจ•เจฆเฉ€ เจนเฉˆเฅค เจ—เฉฑเจฒ เจ‡เจน เจนเฉˆ เจ•เจฟ เจ‡เจธ EC2 เจธเจฐเจตเจฐ เจฌเจพเจฐเฉ‡ เจœเจพเจฃเจ•เจพเจฐเฉ€ เจ…เจœเฉ‡ เจตเฉ€ AWS เจตเจฟเฉฑเจš เจนเจฐ เจœเจ—เฉเจนเจพ เจ‰เจชเจฒเจฌเจง เจนเฉ‹เจฃ เจคเฉ‹เจ‚ เจชเจนเจฟเจฒเจพเจ‚ เจซเฉˆเจฒเจพเจˆ เจœเจพ เจธเจ•เจฆเฉ€ เจนเฉˆ, เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ•เฉเจ เจธเจ•เจฟเฉฐเจŸ เจ‰เจกเฉ€เจ• เจ•เจฐเจจเฉ€ เจชเจตเฉ‡เจ—เฉ€เฅค

    เจœเจฆเฉ‹เจ‚ เจตเฉ€ เจคเฉเจธเฉ€เจ‚ เจ†เจฒเจธเฉ€ เจ‡เจ•เจธเจพเจฐเจคเจพ เจฆเฉ‡ เจจเจพเจฒ เจ‡เฉฑเจ• เจ…เจธเจฟเฉฐเจ•เจฐเฉ‹เจจเจธ API เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจธเจฎเฉ‡เจ‚-เจธเจฎเฉ‡เจ‚ 'เจคเฉ‡ เจ†เจชเจฃเฉ€ เจฌเฉ‡เจจเจคเฉ€ เจจเฉ‚เฉฐ เจฆเฉเจฌเจพเจฐเจพ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เจฐเจจเฉ€ เจšเจพเจนเฉ€เจฆเฉ€ เจนเฉˆ เจœเจฆเฉ‹เจ‚ เจคเฉฑเจ• เจ•เจพเจฐเจตเจพเจˆ เจชเฉ‚เจฐเฉ€ เจจเจนเฉ€เจ‚ เจนเฉ‹ เจœเจพเจ‚เจฆเฉ€ เจ…เจคเฉ‡ เจธเจฟเจธเจŸเจฎ เจฆเฉเจ†เจฐเจพ เจชเฉเจฐเจธเจพเจฐเจฟเจค เจจเจนเฉ€เจ‚ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆเฅค เจฌเจฆเจ•เจฟเจธเจฎเจคเฉ€ เจจเจพเจฒ, AWS SDK เจ‡เจธเจฆเฉ‡ เจฒเจˆ เจ•เฉ‹เจˆ เจตเจงเฉ€เจ† เจŸเฉ‚เจฒ เจชเฉเจฐเจฆเจพเจจ เจจเจนเฉ€เจ‚ เจ•เจฐเจฆเจพ เจนเฉˆ, เจ…เจคเฉ‡ Terraform เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ 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

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹