แƒขแƒ”แƒ แƒแƒคแƒแƒ แƒ›แƒฃแƒšแƒ˜ แƒฎแƒแƒคแƒแƒœแƒ’แƒ”แƒ‘แƒ˜

แƒขแƒ”แƒ แƒแƒคแƒแƒ แƒ›แƒฃแƒšแƒ˜ แƒฎแƒแƒคแƒแƒœแƒ’แƒ”แƒ‘แƒ˜
แƒ›แƒแƒ“แƒ˜ แƒฎแƒแƒ–แƒ’แƒแƒกแƒ›แƒ˜แƒ— แƒแƒฆแƒ•แƒœแƒ˜แƒจแƒœแƒแƒ— แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒฎแƒแƒ แƒ•แƒ”แƒ–แƒ˜, แƒ›แƒแƒ— แƒจแƒแƒ แƒ˜แƒก แƒ›แƒแƒ แƒงแƒฃแƒŸแƒ”แƒ‘แƒ—แƒแƒœ แƒ“แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜, แƒ—แƒฃ แƒ’แƒแƒœแƒชแƒฎแƒแƒ“แƒ”แƒ‘แƒ”แƒ‘แƒ˜ แƒ“แƒ แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒ˜แƒก แƒขแƒ”แƒฅแƒœแƒ˜แƒ™แƒ, แƒแƒกแƒ”แƒ•แƒ” แƒฃแƒคแƒ แƒ แƒ–แƒแƒ’แƒแƒ“แƒ˜ แƒกแƒแƒ™แƒ˜แƒ—แƒฎแƒ”แƒ‘แƒ˜, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒ’แƒแƒ•แƒšแƒ”แƒœแƒแƒก แƒแƒฎแƒ“แƒ”แƒœแƒก Terraform-แƒ–แƒ” แƒ–แƒแƒ’แƒแƒ“แƒแƒ“:

  • count แƒ“แƒ for_each แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒก แƒแƒฅแƒ•แƒ— แƒจแƒ”แƒ–แƒฆแƒฃแƒ“แƒ•แƒ”แƒ‘แƒ˜;
  • แƒœแƒฃแƒšแƒแƒ•แƒแƒœแƒ˜ แƒจแƒ”แƒคแƒ”แƒ แƒฎแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ–แƒฆแƒฃแƒ“แƒ•แƒ;
  • แƒ™แƒแƒ แƒ’แƒ˜ แƒ’แƒ”แƒ’แƒ›แƒแƒช แƒ™แƒ˜ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒฉแƒแƒ•แƒแƒ แƒ“แƒ”แƒก;
  • แƒ แƒ”แƒคแƒแƒฅแƒขแƒแƒ แƒ˜แƒ แƒ”แƒ‘แƒแƒก แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒฐแƒฅแƒแƒœแƒ“แƒ”แƒก แƒ—แƒแƒ•แƒ˜แƒกแƒ˜ แƒœแƒแƒ™แƒšแƒ˜;
  • แƒ’แƒแƒ“แƒแƒ•แƒแƒ“แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ—แƒแƒœแƒ›แƒ˜แƒ›แƒ“แƒ”แƒ•แƒ แƒฃแƒšแƒแƒ‘แƒ แƒจแƒ”แƒ”แƒกแƒแƒ‘แƒแƒ›แƒ”แƒ‘แƒ... แƒ’แƒแƒ“แƒแƒ•แƒแƒ“แƒ”แƒ‘แƒแƒก.

แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒแƒก แƒ“แƒ for_each แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒก แƒแƒฅแƒ•แƒก แƒจแƒ”แƒ–แƒฆแƒฃแƒ“แƒ•แƒ”แƒ‘แƒ˜

แƒแƒ› แƒ—แƒแƒ•แƒจแƒ˜ แƒ›แƒแƒชแƒ”แƒ›แƒฃแƒšแƒ˜ แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ”แƒ‘แƒ˜ แƒคแƒแƒ แƒ—แƒแƒ“ แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒก count แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒก แƒ“แƒ for_each แƒ’แƒแƒ›แƒแƒฎแƒแƒขแƒ•แƒแƒก แƒ›แƒแƒ แƒงแƒฃแƒŸแƒ”แƒ‘แƒจแƒ˜ แƒ“แƒ แƒžแƒ˜แƒ แƒแƒ‘แƒ˜แƒ— แƒšแƒแƒ’แƒ˜แƒ™แƒแƒจแƒ˜. แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒ™แƒแƒ แƒ’แƒแƒ“ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ”แƒœ, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ›แƒแƒ— แƒแƒฅแƒ•แƒ— แƒแƒ แƒ˜ แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ•แƒแƒœแƒ˜ แƒจแƒ”แƒ–แƒฆแƒฃแƒ“แƒ•แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒฃแƒœแƒ“แƒ แƒ˜แƒชแƒแƒ“แƒ”แƒ—.

  • Count แƒ“แƒ for_each แƒ•แƒ”แƒ  แƒ›แƒ˜แƒฃแƒ—แƒ˜แƒ—แƒ”แƒ‘แƒก แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜แƒก แƒ’แƒแƒ›แƒแƒ›แƒแƒ•แƒแƒš แƒชแƒ•แƒšแƒแƒ“แƒ”แƒ‘แƒ–แƒ”.
  • count แƒ“แƒ for_each แƒแƒ  แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒš แƒ˜แƒฅแƒœแƒแƒก แƒ›แƒแƒ“แƒฃแƒšแƒ˜แƒก แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒแƒจแƒ˜.

count แƒ“แƒ for_each แƒ•แƒ”แƒ  แƒ›แƒ˜แƒฃแƒ—แƒ˜แƒ—แƒ”แƒ‘แƒก แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜แƒก แƒ’แƒแƒ›แƒแƒ›แƒแƒ•แƒแƒš แƒชแƒ•แƒšแƒแƒ“แƒ”แƒ‘แƒ–แƒ”

แƒฌแƒแƒ แƒ›แƒแƒ˜แƒ“แƒ’แƒ˜แƒœแƒ”แƒ—, แƒ แƒแƒ› แƒ’แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒแƒ— แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” EC2 แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜แƒก แƒ“แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒ“แƒ แƒ แƒแƒขแƒแƒ›แƒฆแƒแƒช แƒแƒ  แƒ’แƒกแƒฃแƒ แƒ— ASG-แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ. แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒ™แƒแƒ“แƒ˜ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ˜แƒงแƒแƒก แƒแƒกแƒ”แƒ—แƒ˜:

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

แƒ›แƒแƒ“แƒ˜แƒ— แƒจแƒ”แƒ•แƒฎแƒ”แƒ“แƒแƒ— แƒ›แƒแƒ— แƒกแƒแƒ—แƒ˜แƒ—แƒแƒแƒ“.

แƒ•แƒ˜แƒœแƒแƒ˜แƒ“แƒแƒœ แƒ“แƒแƒ—แƒ•แƒšแƒ˜แƒก แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ˜ แƒ“แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒกแƒขแƒแƒขแƒ˜แƒ™แƒฃแƒ  แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒแƒ–แƒ”, แƒ”แƒก แƒ™แƒแƒ“แƒ˜ แƒ˜แƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒก แƒฃแƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒแƒ“: แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒแƒฌแƒแƒ แƒ›แƒแƒ”แƒ‘แƒ— แƒ’แƒแƒœแƒแƒชแƒฎแƒแƒ“แƒ˜แƒก แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒแƒก, แƒ˜แƒก แƒจแƒ”แƒฅแƒ›แƒœแƒ˜แƒก แƒกแƒแƒ› EC2 แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒก. แƒ แƒ แƒ›แƒแƒฎแƒ“แƒ”แƒ‘แƒ, แƒ—แƒฃ แƒ’แƒ˜แƒœแƒ“แƒแƒ“แƒแƒ— แƒ”แƒ แƒ—แƒ˜ แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜แƒก แƒ’แƒแƒœแƒ—แƒแƒ•แƒกแƒ”แƒ‘แƒ แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒš แƒฎแƒ”แƒšแƒ›แƒ˜แƒกแƒแƒฌแƒ•แƒ“แƒแƒ›แƒแƒ‘แƒ˜แƒก แƒ–แƒแƒœแƒแƒจแƒ˜ (AZ) แƒ—แƒฅแƒ•แƒ”แƒœแƒก แƒแƒ›แƒŸแƒแƒ›แƒ˜แƒœแƒ“แƒ”แƒš AWS แƒ แƒ”แƒ’แƒ˜แƒแƒœแƒจแƒ˜? แƒ—แƒฅแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒ™แƒแƒ“แƒ˜ แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒแƒ— แƒ–แƒแƒœแƒ”แƒ‘แƒ˜แƒก แƒกแƒ˜แƒ 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 แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜แƒก count แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒจแƒ˜:

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.

Terraform แƒ›แƒแƒ˜แƒ—แƒฎแƒแƒ•แƒก, แƒ แƒแƒ› count แƒ“แƒ for_each แƒ’แƒแƒ›แƒแƒ˜แƒ—แƒ•แƒแƒšแƒแƒก แƒ“แƒแƒ’แƒ”แƒ’แƒ›แƒ•แƒ˜แƒก แƒคแƒแƒ–แƒแƒจแƒ˜, แƒกแƒแƒœแƒแƒ› แƒ แƒแƒ˜แƒ›แƒ” แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜ แƒจแƒ”แƒ˜แƒฅแƒ›แƒœแƒ”แƒ‘แƒ แƒแƒœ แƒจแƒ”แƒ˜แƒชแƒ•แƒšแƒ”แƒ‘แƒ. แƒ”แƒก แƒœแƒ˜แƒจแƒœแƒแƒ•แƒก, แƒ แƒแƒ› count แƒ“แƒ for_each แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ”แƒฎแƒ”แƒ‘แƒแƒ“แƒ”แƒก แƒšแƒ˜แƒขแƒ”แƒ แƒแƒšแƒ”แƒ‘แƒก, แƒชแƒ•แƒšแƒแƒ“แƒ”แƒ‘แƒก, แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒฌแƒงแƒแƒ แƒแƒ”แƒ‘แƒก แƒ“แƒ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒ˜แƒก แƒกแƒ˜แƒ”แƒ‘แƒกแƒแƒช แƒ™แƒ˜ (แƒกแƒแƒœแƒแƒ› แƒ›แƒแƒ—แƒ˜ แƒกแƒ˜แƒ’แƒ แƒซแƒ” แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ’แƒแƒœแƒ˜แƒกแƒแƒ–แƒฆแƒ•แƒ แƒแƒก แƒ“แƒแƒ’แƒ”แƒ’แƒ›แƒ•แƒ˜แƒก แƒ“แƒ แƒแƒก), แƒ›แƒแƒ’แƒ แƒแƒ› แƒแƒ แƒ แƒ’แƒแƒ›แƒแƒ—แƒ•แƒšแƒ˜แƒš แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒ›แƒแƒ•แƒแƒš แƒชแƒ•แƒšแƒแƒ“แƒ”แƒ‘แƒก.

count แƒ“แƒ 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.

แƒกแƒแƒ›แƒฌแƒฃแƒฎแƒแƒ แƒแƒ“, Terraform 0.12.6-แƒ“แƒแƒœ แƒ›แƒแƒ“แƒฃแƒšแƒ˜แƒก แƒ แƒ”แƒกแƒฃแƒ แƒกแƒจแƒ˜ count แƒแƒœ for_each-แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒแƒ  แƒแƒ แƒ˜แƒก แƒ›แƒฎแƒแƒ แƒ“แƒแƒญแƒ”แƒ แƒ˜แƒšแƒ˜. Terraform 0.12 แƒ’แƒแƒ›แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒ‘แƒ˜แƒก แƒ›แƒ˜แƒฎแƒ”แƒ“แƒ•แƒ˜แƒ— (http://bit.ly/3257bv4), HashiCorp แƒ’แƒ”แƒ’แƒ›แƒแƒ•แƒก แƒ›แƒแƒ›แƒแƒ•แƒแƒšแƒจแƒ˜ แƒแƒ› แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒšแƒแƒ‘แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒแƒก, แƒแƒกแƒ” แƒ แƒแƒ›, แƒ˜แƒ›แƒ˜แƒกแƒ“แƒ แƒ›แƒ˜แƒฎแƒ”แƒ“แƒ•แƒ˜แƒ—, แƒ—แƒฃ แƒ แƒแƒ“แƒ˜แƒก แƒฌแƒแƒ˜แƒ™แƒ˜แƒ—แƒฎแƒแƒ•แƒ— แƒแƒ› แƒฌแƒ˜แƒ’แƒœแƒก, แƒ˜แƒก แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒฃแƒ™แƒ•แƒ” แƒฎแƒ”แƒšแƒ›แƒ˜แƒกแƒแƒฌแƒ•แƒ“แƒแƒ›แƒ˜ แƒ˜แƒงแƒแƒก. แƒ“แƒแƒœแƒแƒ›แƒ“แƒ•แƒ˜แƒšแƒ”แƒ‘แƒ˜แƒ— แƒ’แƒแƒกแƒแƒ แƒ™แƒ•แƒ”แƒ•แƒแƒ“, แƒฌแƒแƒ˜แƒ™แƒ˜แƒ—แƒฎแƒ”แƒ— Terraform แƒชแƒ•แƒšแƒ˜แƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒก แƒŸแƒฃแƒ แƒœแƒแƒšแƒ˜ แƒแƒฅ.

แƒœแƒฃแƒšแƒแƒ•แƒแƒœแƒ˜ แƒจแƒ”แƒคแƒ”แƒ แƒฎแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ–แƒฆแƒฃแƒ“แƒ•แƒ”แƒ‘แƒ˜

ASG-แƒ—แƒแƒœ แƒ™แƒแƒ›แƒ‘แƒ˜แƒœแƒแƒชแƒ˜แƒแƒจแƒ˜ create_before_destroy แƒ‘แƒšแƒแƒ™แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒจแƒ”แƒกแƒแƒœแƒ˜แƒจแƒœแƒแƒ•แƒ˜ แƒ’แƒแƒ›แƒแƒกแƒแƒ•แƒแƒšแƒ˜แƒ แƒœแƒฃแƒšแƒแƒ•แƒแƒœแƒ˜ แƒจแƒ”แƒคแƒ”แƒ แƒฎแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฅแƒ›แƒœแƒ”แƒšแƒแƒ“, แƒ’แƒแƒ แƒ“แƒ แƒ”แƒ แƒ—แƒ˜ แƒกแƒ˜แƒคแƒ แƒ—แƒฎแƒ˜แƒšแƒ˜แƒกแƒ: แƒแƒ•แƒขแƒแƒกแƒ™แƒแƒšแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒฌแƒ”แƒกแƒ”แƒ‘แƒ˜ แƒแƒ  แƒแƒ แƒ˜แƒก แƒ›แƒฎแƒแƒ แƒ“แƒแƒญแƒ”แƒ แƒ˜แƒšแƒ˜. แƒแƒœ แƒฃแƒคแƒ แƒ แƒ–แƒฃแƒกแƒขแƒแƒ“ แƒ แƒแƒ› แƒ•แƒ—แƒฅแƒ•แƒแƒ—, แƒ”แƒก แƒแƒฆแƒแƒ“แƒ’แƒ”แƒœแƒก ASG แƒ–แƒแƒ›แƒแƒก min_size-แƒ›แƒ“แƒ” แƒงแƒ•แƒ”แƒšแƒ แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒ˜แƒกแƒแƒก, แƒ แƒแƒช แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ˜แƒงแƒแƒก แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ, แƒ—แƒฃ แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ“แƒ˜แƒ— แƒแƒ•แƒขแƒแƒกแƒ™แƒแƒšแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒฌแƒ”แƒกแƒ”แƒ‘แƒก แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ”แƒ‘แƒ˜แƒก แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒ˜แƒก แƒ’แƒแƒกแƒแƒ–แƒ แƒ“แƒ”แƒšแƒแƒ“.

แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, webserver-cluster แƒ›แƒแƒ“แƒฃแƒšแƒ˜ แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก แƒฌแƒงแƒ•แƒ˜แƒš aws_autoscaling_schedule แƒ แƒ”แƒกแƒฃแƒ แƒกแƒก, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ“แƒ˜แƒšแƒ˜แƒก 9 แƒกแƒแƒแƒ—แƒ–แƒ” แƒ–แƒ แƒ“แƒ˜แƒก แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ”แƒ‘แƒ˜แƒก แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒแƒก แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒจแƒ˜ แƒแƒ แƒ˜แƒ“แƒแƒœ แƒแƒ—แƒแƒ›แƒ“แƒ”. แƒ—แƒฃ แƒ—แƒฅแƒ•แƒ”แƒœ แƒ’แƒแƒœแƒแƒ—แƒแƒ•แƒกแƒ”แƒ‘แƒ—, แƒ•แƒ—แƒฅแƒ•แƒแƒ—, แƒ“แƒ˜แƒšแƒ˜แƒก 11 แƒกแƒแƒแƒ—แƒ–แƒ”, แƒแƒฎแƒแƒšแƒ˜ ASG แƒฉแƒแƒ˜แƒขแƒ•แƒ˜แƒ แƒ—แƒ”แƒ‘แƒ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒแƒ แƒ˜ แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜แƒ—, แƒ•แƒ˜แƒ“แƒ แƒ” แƒแƒ—แƒ˜ แƒ“แƒ แƒแƒกแƒ” แƒ“แƒแƒ แƒฉแƒ”แƒ‘แƒ แƒ›แƒ”แƒแƒ แƒ” แƒ“แƒฆแƒ˜แƒก แƒ“แƒ˜แƒšแƒ˜แƒก 9 แƒกแƒแƒแƒ—แƒแƒ›แƒ“แƒ”.

แƒแƒ› แƒจแƒ”แƒ–แƒฆแƒฃแƒ“แƒ•แƒ˜แƒก แƒ—แƒแƒ•แƒ˜แƒ“แƒแƒœ แƒแƒชแƒ˜แƒšแƒ”แƒ‘แƒ แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒ’แƒ–แƒ˜แƒ—.

  • แƒจแƒ”แƒชแƒ•แƒแƒšแƒ”แƒ— แƒ’แƒแƒœแƒ›แƒ”แƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ˜ aws_autoscaling_schedule-แƒจแƒ˜ 0 9 * * * (โ€žแƒ“แƒ˜แƒšแƒ˜แƒก 9 แƒกแƒแƒแƒ—แƒ–แƒ” แƒกแƒ˜แƒ แƒ‘แƒ˜แƒšแƒ˜โ€œ) แƒ“แƒแƒแƒฎแƒšแƒแƒ”แƒ‘แƒ˜แƒ— 0-59 9-17 * * * (โ€žแƒ˜แƒ แƒ‘แƒ˜แƒœแƒ”แƒ— แƒงแƒแƒ•แƒ”แƒš แƒฌแƒฃแƒ—แƒก แƒ“แƒ˜แƒšแƒ˜แƒก 9 แƒกแƒแƒแƒ—แƒ˜แƒ“แƒแƒœ แƒกแƒแƒฆแƒแƒ›แƒแƒก 5 แƒกแƒแƒแƒ—แƒแƒ›แƒ“แƒ”โ€œ). แƒ—แƒฃ ASG-แƒก แƒฃแƒ™แƒ•แƒ” แƒแƒฅแƒ•แƒก แƒแƒ—แƒ˜ แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜, แƒแƒ› แƒแƒ•แƒขแƒแƒกแƒ™แƒแƒšแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒฌแƒ”แƒกแƒ˜แƒก แƒฎแƒ”แƒšแƒแƒฎแƒšแƒ แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ แƒแƒ แƒแƒคแƒ”แƒ แƒก แƒจแƒ”แƒชแƒ•แƒšแƒ˜แƒก, แƒ แƒแƒช แƒฉแƒ•แƒ”แƒœ แƒ’แƒ•แƒ˜แƒœแƒ“แƒ. แƒ›แƒแƒ’แƒ แƒแƒ› แƒ—แƒฃ ASG แƒแƒฎแƒšแƒแƒฎแƒแƒœ แƒ’แƒแƒœแƒšแƒแƒ’แƒ“แƒ, แƒ”แƒก แƒฌแƒ”แƒกแƒ˜ แƒฃแƒ–แƒ แƒฃแƒœแƒ•แƒ”แƒšแƒงแƒแƒคแƒก, แƒ แƒแƒ› แƒ›แƒแƒฅแƒกแƒ˜แƒ›แƒฃแƒ› แƒ”แƒ แƒ— แƒฌแƒฃแƒ—แƒจแƒ˜ แƒ›แƒ˜แƒกแƒ˜ แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ”แƒ‘แƒ˜แƒก แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒ แƒแƒ—แƒก แƒ›แƒ˜แƒแƒฆแƒฌแƒ”แƒ•แƒก. แƒ”แƒก แƒแƒ  แƒแƒ แƒ˜แƒก แƒ›แƒ—แƒšแƒ˜แƒแƒœแƒแƒ“ แƒ”แƒšแƒ”แƒ’แƒแƒœแƒขแƒฃแƒ แƒ˜ แƒ›แƒ˜แƒ“แƒ’แƒแƒ›แƒ แƒ“แƒ แƒ“แƒ˜แƒ“แƒ›แƒ แƒ’แƒแƒ“แƒแƒฎแƒขแƒแƒ›แƒ”แƒ‘แƒ›แƒ แƒแƒ—แƒ˜แƒ“แƒแƒœ แƒแƒ  แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ–แƒ” แƒ“แƒ แƒฃแƒ™แƒแƒœ แƒแƒกแƒ”แƒ•แƒ” แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ’แƒแƒ›แƒแƒ˜แƒฌแƒ•แƒ˜แƒแƒก แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ”แƒ‘แƒ˜ แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒšแƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก.
  • แƒจแƒ”แƒฅแƒ›แƒ”แƒœแƒ˜แƒ— แƒ›แƒแƒ แƒ’แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒก AWS API-แƒก ASG-แƒจแƒ˜ แƒแƒฅแƒขแƒ˜แƒฃแƒ แƒ˜ แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ”แƒ‘แƒ˜แƒก แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒ˜แƒก แƒ“แƒแƒกแƒแƒ“แƒ’แƒ”แƒœแƒแƒ“, แƒ“แƒแƒ แƒ”แƒ™แƒ”แƒ— แƒ›แƒแƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ’แƒแƒ แƒ” แƒฌแƒงแƒแƒ แƒแƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ— (แƒ˜แƒฎแƒ˜แƒšแƒ”แƒ— โ€žแƒ’แƒแƒ แƒ” แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒฌแƒงแƒแƒ แƒโ€œ 249 แƒ’แƒ•แƒ”แƒ แƒ“แƒ–แƒ”) แƒ“แƒ แƒ“แƒแƒแƒงแƒ”แƒœแƒ”แƒ— ASG-แƒ˜แƒก แƒกแƒแƒกแƒฃแƒ แƒ•แƒ”แƒšแƒ˜_แƒขแƒ”แƒ•แƒแƒ“แƒแƒ‘แƒ˜แƒก แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ˜ แƒ“แƒแƒ‘แƒ แƒฃแƒœแƒ”แƒ‘แƒฃแƒš แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒแƒ–แƒ” แƒกแƒชแƒ”แƒœแƒแƒ แƒ˜. แƒแƒ› แƒ’แƒ–แƒ˜แƒ—, แƒงแƒแƒ•แƒ”แƒšแƒ˜ แƒแƒฎแƒแƒšแƒ˜ ASG แƒ˜แƒœแƒกแƒขแƒแƒœแƒชแƒ˜แƒ แƒงแƒแƒ•แƒ”แƒšแƒ—แƒ•แƒ˜แƒก แƒ˜แƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒก แƒ˜แƒ›แƒแƒ•แƒ” แƒกแƒ˜แƒ›แƒซแƒšแƒแƒ•แƒ แƒ˜แƒ—, แƒ แƒแƒ’แƒแƒ แƒช แƒแƒ แƒกแƒ”แƒ‘แƒฃแƒšแƒ˜ Terraform แƒ™แƒแƒ“แƒ˜ แƒ“แƒ แƒแƒ แƒ—แƒฃแƒšแƒ”แƒ‘แƒก แƒ›แƒ˜แƒก แƒจแƒ”แƒœแƒแƒ แƒฉแƒฃแƒœแƒ”แƒ‘แƒแƒก.

แƒ แƒ แƒ—แƒฅแƒ›แƒ แƒฃแƒœแƒ“แƒ, Terraform-แƒก แƒ˜แƒ“แƒ”แƒแƒšแƒฃแƒ แƒแƒ“ แƒ”แƒฅแƒœแƒ”แƒ‘แƒแƒ“แƒ แƒฉแƒแƒจแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ›แƒฎแƒแƒ แƒ“แƒแƒญแƒ”แƒ แƒ แƒœแƒฃแƒšแƒแƒ•แƒแƒœแƒ˜ แƒจแƒ”แƒคแƒ”แƒ แƒฎแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ›แƒแƒ’แƒ แƒแƒ› 2019 แƒฌแƒšแƒ˜แƒก แƒ›แƒแƒ˜แƒกแƒ˜แƒก แƒ›แƒ“แƒ’แƒแƒ›แƒแƒ แƒ”แƒแƒ‘แƒ˜แƒ—, HashiCorp-แƒ˜แƒก แƒ’แƒฃแƒœแƒ“แƒก แƒแƒ  แƒฐแƒฅแƒแƒœแƒ“แƒ แƒ’แƒ”แƒ’แƒ›แƒ”แƒ‘แƒ˜ แƒแƒ› แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒแƒก (แƒ“แƒ”แƒขแƒแƒšแƒ”แƒ‘แƒ˜ - แƒแƒฅ).

แƒกแƒฌแƒแƒ แƒ˜ แƒ’แƒ”แƒ’แƒ›แƒ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒฌแƒแƒ แƒฃแƒ›แƒแƒขแƒ”แƒ‘แƒšแƒแƒ“ แƒ’แƒแƒœแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ“แƒ”แƒก

แƒ–แƒแƒ’แƒฏแƒ”แƒ  แƒ’แƒ”แƒ’แƒ›แƒ˜แƒก แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ แƒแƒฌแƒแƒ แƒ›แƒแƒ”แƒ‘แƒก แƒ˜แƒ“แƒ”แƒแƒšแƒฃแƒ แƒแƒ“ แƒกแƒฌแƒแƒ  แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒ˜แƒก แƒ’แƒ”แƒ’แƒ›แƒแƒก, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ’แƒแƒœแƒแƒชแƒฎแƒแƒ“แƒ˜แƒก แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ แƒแƒ‘แƒ แƒฃแƒœแƒ”แƒ‘แƒก แƒจแƒ”แƒชแƒ“แƒแƒ›แƒแƒก. แƒกแƒชแƒแƒ“แƒ”แƒ—, แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒ“แƒแƒแƒ›แƒแƒขแƒแƒ— aws_iam_user แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜ แƒ˜แƒ›แƒแƒ•แƒ” แƒกแƒแƒฎแƒ”แƒšแƒ˜แƒ—, แƒ แƒแƒ›แƒ”แƒšแƒกแƒแƒช แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ“แƒ˜แƒ— แƒ›แƒ”-2 แƒ—แƒแƒ•แƒจแƒ˜ แƒแƒ“แƒ แƒ” แƒจแƒ”แƒฅแƒ›แƒœแƒ˜แƒšแƒ˜ IAM แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒšแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก:

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

แƒแƒฎแƒšแƒ, แƒ—แƒฃ แƒ—แƒฅแƒ•แƒ”แƒœ แƒแƒฌแƒแƒ แƒ›แƒแƒ”แƒ‘แƒ— แƒ’แƒ”แƒ’แƒ›แƒ˜แƒก แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒแƒก, Terraform แƒ’แƒแƒ›แƒแƒกแƒชแƒ”แƒ›แƒก แƒ”แƒ แƒ—แƒ˜ แƒจแƒ”แƒฎแƒ”แƒ“แƒ•แƒ˜แƒ— แƒ’แƒแƒœแƒ˜แƒ•แƒ แƒฃแƒš แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒ˜แƒก แƒ’แƒ”แƒ’แƒ›แƒแƒก:

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-แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒ‘แƒแƒ›แƒ˜แƒกแƒแƒ‘แƒ แƒ˜แƒฌแƒ•แƒ”แƒ•แƒก แƒ™แƒแƒœแƒคแƒšแƒ˜แƒฅแƒขแƒ”แƒ‘แƒก. แƒแƒ› แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ˜แƒก แƒ›แƒ แƒแƒ•แƒแƒšแƒ˜ แƒ•แƒแƒ แƒ˜แƒแƒชแƒ˜แƒแƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒฎแƒจแƒ˜แƒ แƒแƒ“ แƒแƒ™แƒ•แƒ˜แƒ แƒ•แƒ”แƒ‘แƒก Terraform-แƒจแƒ˜ แƒแƒฎแƒแƒšแƒ›แƒแƒกแƒฃแƒšแƒ”แƒ‘แƒก.

แƒ›แƒ—แƒแƒ•แƒแƒ แƒ˜ แƒ˜แƒก แƒแƒ แƒ˜แƒก, แƒ แƒแƒ› terraform plan แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ แƒ˜แƒ—แƒ•แƒแƒšแƒ˜แƒกแƒฌแƒ˜แƒœแƒ”แƒ‘แƒก แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ˜แƒ› แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒก, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒ›แƒ˜แƒ—แƒ˜แƒ—แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ Terraform State แƒคแƒแƒ˜แƒšแƒจแƒ˜. แƒ—แƒฃ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒ˜ แƒ˜แƒฅแƒ›แƒœแƒ”แƒ‘แƒ แƒกแƒฎแƒ•แƒ แƒ’แƒ–แƒ˜แƒ— (แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒฎแƒ”แƒšแƒ˜แƒ— AWS แƒ™แƒแƒœแƒกแƒแƒšแƒ–แƒ” แƒ“แƒแƒฌแƒ™แƒแƒžแƒฃแƒœแƒ”แƒ‘แƒ˜แƒ—), แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒแƒ  แƒแƒฆแƒ›แƒแƒฉแƒœแƒ“แƒ”แƒ‘แƒ˜แƒแƒœ แƒกแƒแƒฎแƒ”แƒšแƒ›แƒฌแƒ˜แƒคแƒ แƒคแƒแƒ˜แƒšแƒจแƒ˜ แƒ“แƒ แƒแƒ›แƒ˜แƒขแƒแƒ› Terraform แƒแƒ  แƒ’แƒแƒ˜แƒ—แƒ•แƒแƒšแƒ˜แƒกแƒฌแƒ˜แƒœแƒ”แƒ‘แƒก แƒ›แƒแƒ— แƒ’แƒ”แƒ’แƒ›แƒ˜แƒก แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ˜แƒกแƒแƒก. แƒจแƒ”แƒ“แƒ”แƒ’แƒแƒ“, แƒ’แƒ”แƒ’แƒ›แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ”แƒ แƒ—แƒ˜ แƒจแƒ”แƒฎแƒ”แƒ“แƒ•แƒ˜แƒ— แƒกแƒฌแƒแƒ แƒ˜ แƒฉแƒแƒœแƒก, แƒฌแƒแƒ แƒฃแƒ›แƒแƒขแƒ”แƒ‘แƒ”แƒšแƒ˜ แƒแƒฆแƒ›แƒแƒฉแƒœแƒ“แƒ”แƒ‘แƒ.

แƒแƒฅแƒ”แƒ“แƒแƒœ แƒแƒ แƒ˜ แƒ’แƒแƒ™แƒ•แƒ”แƒ—แƒ˜แƒšแƒ˜ แƒฃแƒœแƒ“แƒ แƒ•แƒ˜แƒกแƒฌแƒแƒ•แƒšแƒแƒ—.

  • แƒ—แƒฃ แƒฃแƒ™แƒ•แƒ” แƒ“แƒแƒ˜แƒฌแƒงแƒ”แƒ— Terraform-แƒ—แƒแƒœ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ, แƒแƒ  แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒแƒ— แƒกแƒฎแƒ•แƒ แƒแƒ แƒแƒคแƒ”แƒ แƒ˜. แƒ—แƒฃ แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒ˜แƒœแƒคแƒ แƒแƒกแƒขแƒ แƒฃแƒฅแƒขแƒฃแƒ แƒ˜แƒก แƒœแƒแƒฌแƒ˜แƒšแƒ˜ แƒ˜แƒ›แƒแƒ แƒ—แƒ”แƒ‘แƒ Terraform-แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—, แƒ—แƒฅแƒ•แƒ”แƒœ แƒแƒฆแƒแƒ  แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ›แƒ˜แƒกแƒ˜ แƒฎแƒ”แƒšแƒ˜แƒ— แƒจแƒ”แƒชแƒ•แƒšแƒ. แƒฌแƒ˜แƒœแƒแƒแƒฆแƒ›แƒ“แƒ”แƒ’ แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜, แƒ—แƒฅแƒ•แƒ”แƒœ แƒแƒ แƒ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ แƒ˜แƒกแƒ™แƒแƒ•แƒ— Terraform-แƒ˜แƒก แƒฃแƒชแƒœแƒแƒฃแƒ  แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ”แƒ‘แƒก, แƒแƒ แƒแƒ›แƒ”แƒ“ แƒฃแƒแƒ แƒงแƒแƒคแƒ— IaC-แƒ˜แƒก แƒ‘แƒ”แƒ•แƒ  แƒกแƒแƒ แƒ’แƒ”แƒ‘แƒ”แƒšแƒก, แƒ แƒแƒ“แƒ’แƒแƒœ แƒ™แƒแƒ“แƒ˜ แƒแƒฆแƒแƒ  แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒ˜แƒœแƒคแƒ แƒแƒกแƒขแƒ แƒฃแƒฅแƒขแƒฃแƒ แƒ˜แƒก แƒ–แƒฃแƒกแƒขแƒ˜ แƒฌแƒแƒ แƒ›แƒแƒ“แƒ’แƒ”แƒœแƒ.
  • แƒ—แƒฃ แƒฃแƒ™แƒ•แƒ” แƒ’แƒแƒฅแƒ•แƒ— แƒ˜แƒœแƒคแƒ แƒแƒกแƒขแƒ แƒฃแƒฅแƒขแƒฃแƒ แƒ, แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ— แƒ˜แƒ›แƒžแƒแƒ แƒขแƒ˜แƒก แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ. แƒ—แƒฃ แƒ—แƒฅแƒ•แƒ”แƒœ แƒ˜แƒฌแƒงแƒ”แƒ‘แƒ— Terraform-แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒแƒก แƒแƒ แƒกแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ˜แƒœแƒคแƒ แƒแƒกแƒขแƒ แƒฃแƒฅแƒขแƒฃแƒ แƒ˜แƒ—, แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ“แƒแƒแƒ›แƒแƒขแƒแƒ— แƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ›แƒฌแƒ˜แƒคแƒ แƒคแƒแƒ˜แƒšแƒจแƒ˜ terraform import แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—. แƒแƒ› แƒ’แƒ–แƒ˜แƒ— Terraform แƒ’แƒแƒ˜แƒ’แƒ”แƒ‘แƒก แƒ แƒ แƒ˜แƒœแƒคแƒ แƒแƒกแƒขแƒ แƒฃแƒฅแƒขแƒฃแƒ แƒ˜แƒก แƒ›แƒแƒ แƒ—แƒ•แƒแƒ แƒกแƒแƒญแƒ˜แƒ แƒ. แƒ˜แƒ›แƒžแƒแƒ แƒขแƒ˜แƒก แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ แƒ˜แƒฆแƒ”แƒ‘แƒก แƒแƒ  แƒแƒ แƒ’แƒฃแƒ›แƒ”แƒœแƒขแƒก. แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒแƒ แƒ˜แƒก แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜แƒก แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ˜ แƒ—แƒฅแƒ•แƒ”แƒœแƒก แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ˜แƒก แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒจแƒ˜. แƒกแƒ˜แƒœแƒขแƒแƒฅแƒกแƒ˜ แƒแƒฅ แƒ˜แƒ’แƒ˜แƒ•แƒ”แƒ, แƒ แƒแƒช แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜แƒก แƒ‘แƒ›แƒฃแƒšแƒ”แƒ‘แƒ˜แƒก: _. (แƒ แƒแƒ’แƒแƒ แƒช aws_iam_user.existing_user). แƒ›แƒ”แƒแƒ แƒ” แƒแƒ แƒ’แƒฃแƒ›แƒ”แƒœแƒขแƒ˜ แƒแƒ แƒ˜แƒก แƒ˜แƒ›แƒžแƒแƒ แƒขแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜แƒก ID. แƒ•แƒ—แƒฅแƒ•แƒแƒ—, แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜แƒก ID aws_iam_user แƒแƒ แƒ˜แƒก แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒšแƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ˜ (แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, yevgeniy.brikman), แƒ“แƒ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜แƒก ID aws_instance แƒแƒ แƒ˜แƒก EC2 แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜แƒก ID (แƒ แƒแƒ’แƒแƒ แƒช i-190e22e5). แƒ แƒแƒ’แƒแƒ  แƒฎแƒ“แƒ”แƒ‘แƒ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜แƒก แƒ˜แƒ›แƒžแƒแƒ แƒขแƒ˜, แƒ แƒแƒ’แƒแƒ แƒช แƒฌแƒ”แƒกแƒ˜, แƒ›แƒ˜แƒ—แƒ˜แƒ—แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒ“แƒแƒ™แƒฃแƒ›แƒ”แƒœแƒขแƒแƒชแƒ˜แƒแƒจแƒ˜ แƒ›แƒ˜แƒกแƒ˜ แƒ’แƒ•แƒ”แƒ แƒ“แƒ˜แƒก แƒ‘แƒแƒšแƒแƒจแƒ˜.

    แƒฅแƒ•แƒ”แƒ›แƒแƒ— แƒ›แƒแƒชแƒ”แƒ›แƒฃแƒšแƒ˜แƒ แƒ˜แƒ›แƒžแƒแƒ แƒขแƒ˜แƒก แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒกแƒ˜แƒœแƒฅแƒ แƒแƒœแƒ˜แƒ–แƒ”แƒ‘แƒก aws_iam_user แƒ แƒ”แƒกแƒฃแƒ แƒกแƒก, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ“แƒแƒแƒ›แƒแƒขแƒ”แƒ— แƒ—แƒฅแƒ•แƒ”แƒœแƒก Terraform-แƒ˜แƒก แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒแƒจแƒ˜ IAM แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ”แƒšแƒ—แƒแƒœ แƒ”แƒ แƒ—แƒแƒ“ แƒ›แƒ”-2 แƒ—แƒแƒ•แƒจแƒ˜ (แƒ แƒ แƒ—แƒฅแƒ›แƒ แƒฃแƒœแƒ“แƒ, แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒกแƒแƒฎแƒ”แƒšแƒ˜แƒก แƒฉแƒแƒœแƒแƒชแƒ•แƒšแƒ”แƒ‘แƒ yevgeniy.brikman-แƒ˜แƒ—):

    $ terraform import aws_iam_user.existing_user yevgeniy.brikman

    Terraform แƒ“แƒแƒฃแƒ แƒ”แƒ™แƒแƒ•แƒก AWS API-แƒก แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ IAM แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒšแƒ˜แƒก แƒ›แƒแƒกแƒแƒซแƒ”แƒ‘แƒœแƒแƒ“ แƒ“แƒ แƒจแƒ”แƒฅแƒ›แƒœแƒแƒก แƒกแƒแƒฎแƒ”แƒšแƒ›แƒฌแƒ˜แƒคแƒ แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒแƒกแƒแƒชแƒ˜แƒแƒชแƒ˜แƒ แƒ›แƒแƒกแƒกแƒ แƒ“แƒ aws_iam_user.existing_user แƒ แƒ”แƒกแƒฃแƒ แƒกแƒก แƒจแƒแƒ แƒ˜แƒก แƒ—แƒฅแƒ•แƒ”แƒœแƒก Terraform-แƒ˜แƒก แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒแƒจแƒ˜. แƒแƒ›แƒ˜แƒ”แƒ แƒ˜แƒ“แƒแƒœ, แƒ แƒแƒชแƒ แƒ’แƒ”แƒ’แƒ›แƒ˜แƒก แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒแƒก แƒ’แƒแƒฃแƒจแƒ•แƒ˜แƒ—, Terraform แƒ’แƒแƒ˜แƒ’แƒ”แƒ‘แƒก, แƒ แƒแƒ› IAM แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ”แƒšแƒ˜ แƒฃแƒ™แƒ•แƒ” แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก แƒ“แƒ แƒแƒฆแƒแƒ  แƒจแƒ”แƒ”แƒชแƒ“แƒ”แƒ‘แƒ แƒ›แƒ˜แƒก แƒจแƒ”แƒฅแƒ›แƒœแƒแƒก.

    แƒแƒฆแƒกแƒแƒœแƒ˜แƒจแƒœแƒแƒ•แƒ˜แƒ, แƒ แƒแƒ› แƒ—แƒฃ แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒ™แƒ•แƒ” แƒ’แƒแƒฅแƒ•แƒ— แƒฃแƒแƒ›แƒ แƒแƒ•แƒ˜ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜, แƒ แƒแƒ›แƒšแƒ˜แƒก แƒ˜แƒ›แƒžแƒแƒ แƒขแƒ˜ แƒ’แƒกแƒฃแƒ แƒ— Terraform-แƒจแƒ˜, แƒ™แƒแƒ“แƒ˜แƒก แƒฎแƒ”แƒšแƒ˜แƒ— แƒ“แƒแƒฌแƒ”แƒ แƒ แƒ“แƒ แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ˜แƒก แƒ˜แƒ›แƒžแƒแƒ แƒขแƒ˜ แƒ”แƒ แƒ—แƒ“แƒ แƒแƒฃแƒšแƒแƒ“ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ˜แƒงแƒแƒก แƒ แƒ—แƒฃแƒšแƒ˜. แƒแƒกแƒ” แƒ แƒแƒ›, แƒฆแƒ˜แƒ แƒก แƒ˜แƒกแƒ”แƒ—แƒ˜ แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒ˜แƒก แƒซแƒ˜แƒ”แƒ‘แƒ, แƒ แƒแƒ’แƒแƒ แƒ˜แƒชแƒแƒ Terraforming (http://terraforming.dtan4.net/), แƒ แƒแƒ›แƒ”แƒšแƒกแƒแƒช แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒ แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒฃแƒ แƒแƒ“ แƒจแƒ”แƒ›แƒแƒ˜แƒขแƒแƒœแƒแƒก แƒ™แƒแƒ“แƒ˜ แƒ“แƒ แƒ›แƒ“แƒ’แƒแƒ›แƒแƒ แƒ”แƒแƒ‘แƒ แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ AWS แƒแƒœแƒ’แƒแƒ แƒ˜แƒจแƒ˜แƒ“แƒแƒœ.

    แƒ แƒ”แƒคแƒแƒฅแƒขแƒแƒ แƒ˜แƒ แƒ”แƒ‘แƒแƒก แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒฐแƒฅแƒแƒœแƒ“แƒ”แƒก แƒ—แƒแƒ•แƒ˜แƒกแƒ˜ แƒœแƒแƒ™แƒšแƒ˜

    แƒ แƒ”แƒคแƒแƒฅแƒขแƒแƒ แƒ˜แƒ แƒ”แƒ‘แƒ แƒแƒ แƒ˜แƒก แƒฉแƒ•แƒ”แƒฃแƒšแƒ”แƒ‘แƒ แƒ˜แƒ•แƒ˜ แƒžแƒ แƒแƒฅแƒขแƒ˜แƒ™แƒ แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ˜แƒ แƒ”แƒ‘แƒแƒจแƒ˜, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒ—แƒฅแƒ•แƒ”แƒœ แƒชแƒ•แƒšแƒ˜แƒ— แƒ™แƒแƒ“แƒ˜แƒก แƒจแƒ˜แƒ“แƒ แƒกแƒขแƒ แƒฃแƒฅแƒขแƒฃแƒ แƒแƒก, แƒฎแƒแƒšแƒ แƒ’แƒแƒ แƒ” แƒฅแƒชแƒ”แƒ•แƒ แƒฃแƒชแƒ•แƒšแƒ”แƒšแƒ˜ แƒ แƒฉแƒ”แƒ‘แƒ. แƒ”แƒก แƒแƒ แƒ˜แƒก แƒ˜แƒ›แƒ˜แƒกแƒแƒ—แƒ•แƒ˜แƒก, แƒ แƒแƒ› แƒ™แƒแƒ“แƒ˜ แƒฃแƒคแƒ แƒ แƒ›แƒ™แƒแƒคแƒ˜แƒ, แƒ“แƒแƒฎแƒ•แƒ”แƒฌแƒ˜แƒšแƒ˜ แƒ“แƒ แƒแƒ“แƒ•แƒ˜แƒšแƒแƒ“ แƒจแƒ”แƒกแƒแƒœแƒแƒฎแƒ˜ แƒ’แƒแƒฎแƒ“แƒ”แƒก. แƒ แƒ”แƒคแƒแƒฅแƒขแƒแƒ แƒ˜แƒ แƒ”แƒ‘แƒ แƒจแƒ”แƒฃแƒชแƒ•แƒšแƒ”แƒšแƒ˜ แƒขแƒ”แƒฅแƒœแƒ˜แƒ™แƒแƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ แƒ”แƒ’แƒฃแƒšแƒแƒ แƒฃแƒšแƒแƒ“ แƒฃแƒœแƒ“แƒ แƒ˜แƒฅแƒœแƒแƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜. แƒ›แƒแƒ’แƒ แƒแƒ› แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒกแƒแƒฅแƒ›แƒ” แƒ”แƒฎแƒ”แƒ‘แƒ Terraform-แƒก แƒแƒœ IaC-แƒ˜แƒก แƒœแƒ”แƒ‘แƒ˜แƒกแƒ›แƒ˜แƒ”แƒ  แƒกแƒฎแƒ•แƒ แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒก, แƒซแƒแƒšแƒ˜แƒแƒœ แƒคแƒ แƒ—แƒฎแƒ˜แƒšแƒแƒ“ แƒฃแƒœแƒ“แƒ แƒ˜แƒงแƒแƒ—, แƒ—แƒฃ แƒ แƒแƒก แƒ’แƒฃแƒšแƒ˜แƒกแƒฎแƒ›แƒแƒ‘แƒ— แƒ™แƒแƒ“แƒ˜แƒก แƒœแƒแƒฌแƒ˜แƒšแƒ˜แƒก โ€žแƒ’แƒแƒ แƒ” แƒฅแƒชแƒ”แƒ•แƒแƒจแƒ˜โ€œ, แƒฌแƒ˜แƒœแƒแƒแƒฆแƒ›แƒ“แƒ”แƒ’ แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜ แƒฌแƒแƒ แƒ›แƒแƒ˜แƒฅแƒ›แƒœแƒ”แƒ‘แƒ แƒ›แƒแƒฃแƒšแƒแƒ“แƒœแƒ”แƒšแƒ˜ แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ”แƒ‘แƒ˜.

    แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒ แƒ”แƒคแƒแƒฅแƒขแƒแƒ แƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒฉแƒ•แƒ”แƒฃแƒšแƒ”แƒ‘แƒ แƒ˜แƒ•แƒ˜ แƒขแƒ˜แƒžแƒ˜แƒ แƒชแƒ•แƒšแƒแƒ“แƒ”แƒ‘แƒ˜แƒก แƒแƒœ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ”แƒ‘แƒ˜แƒก แƒฉแƒแƒœแƒแƒชแƒ•แƒšแƒ”แƒ‘แƒ แƒฃแƒคแƒ แƒ แƒ’แƒแƒกแƒแƒ’แƒ”แƒ‘แƒ˜ แƒกแƒแƒฎแƒ”แƒšแƒ”แƒ‘แƒ˜แƒ—. แƒ‘แƒ”แƒ•แƒ  IDE-แƒก แƒแƒฅแƒ•แƒก แƒฉแƒแƒจแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ›แƒฎแƒแƒ แƒ“แƒแƒญแƒ”แƒ แƒ แƒ แƒ”แƒคแƒแƒฅแƒขแƒแƒ แƒแƒชแƒ˜แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ“แƒ แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒ แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒฃแƒ แƒแƒ“ แƒ’แƒแƒ“แƒแƒ แƒฅแƒ›แƒ”แƒ•แƒ แƒชแƒ•แƒšแƒแƒ“แƒ”แƒ‘แƒ˜ แƒ“แƒ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜ แƒ›แƒ—แƒ”แƒšแƒ˜ แƒžแƒ แƒแƒ”แƒฅแƒขแƒ˜แƒก แƒ’แƒแƒœแƒ›แƒแƒ•แƒšแƒแƒ‘แƒแƒจแƒ˜. แƒ–แƒแƒ’แƒแƒ“แƒ˜ แƒ“แƒแƒœแƒ˜แƒจแƒœแƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒ”แƒœแƒ”แƒ‘แƒจแƒ˜, แƒ”แƒก แƒแƒ แƒ˜แƒก แƒขแƒ แƒ˜แƒ•แƒ˜แƒแƒšแƒฃแƒ แƒ˜ แƒžแƒ แƒแƒชแƒ”แƒ“แƒฃแƒ แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ–แƒ”แƒช แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒแƒ  แƒ˜แƒคแƒ˜แƒฅแƒ แƒแƒ—, แƒ›แƒแƒ’แƒ แƒแƒ› Terraform-แƒจแƒ˜ แƒซแƒแƒšแƒ˜แƒแƒœ แƒคแƒ แƒ—แƒฎแƒ˜แƒšแƒแƒ“ แƒฃแƒœแƒ“แƒ แƒ˜แƒงแƒแƒ— แƒแƒ›แƒแƒกแƒ—แƒแƒœ แƒ“แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒ—, แƒฌแƒ˜แƒœแƒแƒแƒฆแƒ›แƒ“แƒ”แƒ’ แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒจแƒ”แƒ’แƒ”แƒจแƒแƒšแƒแƒ—.

    แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, webserver-cluster แƒ›แƒแƒ“แƒฃแƒšแƒก แƒแƒฅแƒ•แƒก แƒจแƒ”แƒงแƒ•แƒแƒœแƒ˜แƒก แƒชแƒ•แƒšแƒแƒ“แƒ˜ cluster_name:

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

    แƒฌแƒแƒ แƒ›แƒแƒ˜แƒ“แƒ’แƒ˜แƒœแƒ”แƒ—, แƒ แƒแƒ› แƒ—แƒฅแƒ•แƒ”แƒœ แƒ“แƒแƒ˜แƒฌแƒงแƒ”แƒ— แƒแƒ› แƒ›แƒแƒ“แƒฃแƒšแƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒ›แƒ˜แƒ™แƒ แƒแƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ˜แƒก แƒ’แƒแƒ›แƒแƒกแƒแƒงแƒ”แƒœแƒ”แƒ‘แƒšแƒแƒ“, แƒกแƒแƒฎแƒ”แƒšแƒฌแƒแƒ“แƒ”แƒ‘แƒ˜แƒ— foo. แƒ›แƒแƒ’แƒ•แƒ˜แƒแƒœแƒ”แƒ‘แƒ˜แƒ—, แƒ’แƒกแƒฃแƒ แƒ— แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ˜แƒก แƒ’แƒแƒ“แƒแƒ แƒฅแƒ›แƒ”แƒ•แƒ แƒ‘แƒแƒ แƒแƒ“. แƒ”แƒก แƒชแƒ•แƒšแƒ˜แƒšแƒ”แƒ‘แƒ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒขแƒ แƒ˜แƒ•แƒ˜แƒแƒšแƒฃแƒ แƒ˜ แƒฉแƒแƒœแƒ“แƒ”แƒก, แƒ›แƒแƒ’แƒ แƒแƒ› แƒกแƒ˜แƒœแƒแƒ›แƒ“แƒ•แƒ˜แƒšแƒ”แƒจแƒ˜ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ’แƒแƒ›แƒแƒ˜แƒฌแƒ•แƒ˜แƒแƒก แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ˜แƒก แƒจแƒ”แƒคแƒ”แƒ แƒฎแƒ”แƒ‘แƒ.

    แƒคแƒแƒฅแƒขแƒ˜แƒ, แƒ แƒแƒ› webserver-cluster แƒ›แƒแƒ“แƒฃแƒšแƒ˜ แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒก 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]
    }

    แƒ—แƒฃ แƒ—แƒฅแƒ•แƒ”แƒœ แƒจแƒ”แƒชแƒ•แƒšแƒ˜แƒ— แƒกแƒแƒฎแƒ”แƒšแƒ˜แƒก แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒก แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ–แƒ”, Terraform แƒฌแƒแƒจแƒšแƒ˜แƒก แƒแƒ› แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜แƒก แƒซแƒ•แƒ”แƒš แƒ•แƒ”แƒ แƒกแƒ˜แƒแƒก แƒ“แƒ แƒ›แƒ˜แƒก แƒœแƒแƒชแƒ•แƒšแƒแƒ“ แƒจแƒ”แƒฅแƒ›แƒœแƒ˜แƒก แƒแƒฎแƒแƒšแƒก. แƒ›แƒแƒ’แƒ แƒแƒ› แƒ—แƒฃ แƒ”แƒก แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜ แƒแƒ แƒ˜แƒก ALB, แƒ›แƒ˜แƒก แƒฌแƒแƒจแƒšแƒแƒกแƒ แƒ“แƒ แƒแƒฎแƒแƒšแƒ˜ แƒ•แƒ”แƒ แƒกแƒ˜แƒ˜แƒก แƒฉแƒแƒ›แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒแƒก แƒจแƒแƒ แƒ˜แƒก, แƒ—แƒฅแƒ•แƒ”แƒœ แƒแƒ  แƒ’แƒ”แƒฅแƒœแƒ”แƒ‘แƒแƒ— แƒ›แƒ”แƒฅแƒแƒœแƒ˜แƒ–แƒ›แƒ˜, แƒ แƒแƒ› แƒ’แƒแƒ“แƒแƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒแƒ— แƒขแƒ แƒแƒคแƒ˜แƒ™แƒ˜ แƒ—แƒฅแƒ•แƒ”แƒœแƒก แƒ•แƒ”แƒ‘ แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ–แƒ”. แƒแƒœแƒแƒšแƒแƒ’แƒ˜แƒฃแƒ แƒแƒ“, แƒ—แƒฃ แƒฃแƒกแƒแƒคแƒ แƒ—แƒฎแƒแƒ”แƒ‘แƒ˜แƒก แƒฏแƒ’แƒฃแƒคแƒ˜ แƒฌแƒแƒ˜แƒจแƒšแƒ”แƒ‘แƒ, แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ”แƒ‘แƒ˜ แƒ“แƒแƒ˜แƒฌแƒงแƒ”แƒ‘แƒ”แƒœ แƒœแƒ”แƒ‘แƒ˜แƒกแƒ›แƒ˜แƒ”แƒ แƒ˜ แƒฅแƒกแƒ”แƒšแƒ˜แƒก แƒขแƒ แƒแƒคแƒ˜แƒ™แƒ˜แƒก แƒฃแƒแƒ แƒงแƒแƒคแƒแƒก แƒแƒฎแƒแƒšแƒ˜ แƒฏแƒ’แƒฃแƒคแƒ˜แƒก แƒจแƒ”แƒฅแƒ›แƒœแƒแƒ›แƒ“แƒ”.

    แƒ แƒ”แƒคแƒแƒฅแƒขแƒแƒ แƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒ™แƒ˜แƒ“แƒ”แƒ• แƒ”แƒ แƒ—แƒ˜ แƒขแƒ˜แƒžแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ“แƒแƒ’แƒแƒ˜แƒœแƒขแƒ”แƒ แƒ”แƒกแƒแƒ—, แƒแƒ แƒ˜แƒก Terraform ID-แƒ˜แƒก แƒจแƒ”แƒชแƒ•แƒšแƒ. แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒแƒ•แƒ˜แƒฆแƒแƒ— aws_security_group แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜ แƒ•แƒ”แƒ‘ แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜แƒก แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒจแƒ˜:

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

    แƒแƒ› แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜แƒก แƒ˜แƒ“แƒ”แƒœแƒขแƒ˜แƒคแƒ˜แƒ™แƒแƒขแƒแƒ แƒก แƒ”แƒฌแƒแƒ“แƒ”แƒ‘แƒ แƒ˜แƒœแƒกแƒขแƒแƒœแƒชแƒ˜แƒ. แƒฌแƒแƒ แƒ›แƒแƒ˜แƒ“แƒ’แƒ˜แƒœแƒ”แƒ—, แƒ แƒแƒ› แƒ แƒ”แƒคแƒแƒฅแƒขแƒแƒ แƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒ“แƒ แƒแƒก แƒ’แƒแƒ“แƒแƒฌแƒงแƒ•แƒ˜แƒขแƒ”แƒ— แƒ›แƒ˜แƒกแƒ˜ แƒจแƒ”แƒชแƒ•แƒšแƒ แƒฃแƒคแƒ แƒ แƒ’แƒแƒกแƒแƒ’แƒ”แƒ‘แƒ˜ (แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒแƒ–แƒ แƒ˜แƒ—) แƒกแƒแƒฎแƒ”แƒšแƒ˜แƒ— cluster_instance:

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

    แƒ แƒ แƒ›แƒแƒฎแƒ“แƒ”แƒ‘แƒ แƒ‘แƒแƒšแƒแƒก? แƒ›แƒแƒ แƒ—แƒแƒšแƒ˜แƒ: แƒจแƒ”แƒคแƒ”แƒ แƒฎแƒ”แƒ‘แƒ.

    Terraform แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒก แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ˜ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜แƒก ID-แƒก แƒฆแƒ แƒฃแƒ‘แƒšแƒ˜แƒก แƒžแƒ แƒแƒ•แƒแƒ˜แƒ“แƒ”แƒ แƒ˜แƒก ID-แƒ—แƒแƒœ. แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, iam_user แƒแƒกแƒแƒชแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ AWS IAM แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒšแƒ˜แƒก ID-แƒ—แƒแƒœ, แƒฎแƒแƒšแƒ aws_instance แƒแƒกแƒแƒชแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ AWS EC2 แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜แƒก ID-แƒ—แƒแƒœ. แƒ—แƒฃ แƒ—แƒฅแƒ•แƒ”แƒœ แƒจแƒ”แƒชแƒ•แƒšแƒ˜แƒ— แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜แƒก ID-แƒก (แƒ•แƒ—แƒฅแƒ•แƒแƒ—, แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, cluster_instance-แƒ–แƒ”, แƒ แƒแƒ’แƒแƒ แƒช แƒ”แƒก แƒฎแƒ“แƒ”แƒ‘แƒ aws_security_group-แƒ–แƒ”), Terraform-แƒ–แƒ” แƒ’แƒแƒ›แƒแƒฉแƒœแƒ“แƒ”แƒ‘แƒ, แƒ—แƒ˜แƒ—แƒฅแƒแƒก แƒฌแƒแƒจแƒแƒšแƒ”แƒ— แƒซแƒ•แƒ”แƒšแƒ˜ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜ แƒ“แƒ แƒ“แƒแƒแƒ›แƒแƒขแƒ”แƒ— แƒแƒฎแƒแƒšแƒ˜. แƒ—แƒฃ แƒแƒ› แƒชแƒ•แƒšแƒ˜แƒšแƒ”แƒ‘แƒ”แƒ‘แƒก แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ—, Terraform แƒฌแƒแƒจแƒšแƒ˜แƒก แƒฃแƒกแƒแƒคแƒ แƒ—แƒฎแƒแƒ”แƒ‘แƒ˜แƒก แƒซแƒ•แƒ”แƒš แƒฏแƒ’แƒฃแƒคแƒก แƒ“แƒ แƒจแƒ”แƒฅแƒ›แƒœแƒ˜แƒก แƒแƒฎแƒแƒšแƒก, แƒฎแƒแƒšแƒ แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ”แƒ‘แƒ˜ แƒ“แƒแƒ˜แƒฌแƒงแƒ”แƒ‘แƒ”แƒœ แƒœแƒ”แƒ‘แƒ˜แƒกแƒ›แƒ˜แƒ”แƒ แƒ˜ แƒฅแƒกแƒ”แƒšแƒ˜แƒก แƒขแƒ แƒแƒคแƒ˜แƒ™แƒ˜แƒก แƒฃแƒแƒ แƒงแƒแƒคแƒแƒก.

    แƒแƒฅ แƒแƒ แƒ˜แƒก แƒแƒ—แƒฎแƒ˜ แƒซแƒ˜แƒ แƒ˜แƒ—แƒแƒ“แƒ˜ แƒ’แƒแƒ™แƒ•แƒ”แƒ—แƒ˜แƒšแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒฃแƒœแƒ“แƒ แƒแƒ›แƒแƒ˜แƒฆแƒแƒ— แƒแƒ› แƒ“แƒ˜แƒกแƒ™แƒฃแƒกแƒ˜แƒ˜แƒ“แƒแƒœ.

    • แƒงแƒแƒ•แƒ”แƒšแƒ—แƒ•แƒ˜แƒก แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ— แƒ’แƒ”แƒ’แƒ›แƒ˜แƒก แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ. แƒ›แƒแƒก แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒ แƒ’แƒแƒ›แƒแƒแƒ•แƒšแƒ˜แƒœแƒแƒก แƒงแƒ•แƒ”แƒšแƒ แƒ”แƒก แƒœแƒแƒ™แƒšแƒ˜. แƒงแƒฃแƒ แƒแƒ“แƒฆแƒ”แƒ‘แƒ˜แƒ— แƒ’แƒแƒ“แƒแƒฎแƒ”แƒ“แƒ”แƒ— แƒ›แƒ˜แƒก แƒจแƒ”แƒ“แƒ”แƒ’แƒ”แƒ‘แƒก แƒ“แƒ แƒงแƒฃแƒ แƒแƒ“แƒฆแƒ”แƒ‘แƒ แƒ›แƒ˜แƒแƒฅแƒชแƒ˜แƒ”แƒ— แƒกแƒ˜แƒขแƒฃแƒแƒชแƒ˜แƒ”แƒ‘แƒก, แƒ แƒแƒ“แƒ”แƒกแƒแƒช Terraform แƒ’แƒ”แƒ’แƒ›แƒแƒ•แƒก แƒฌแƒแƒจแƒแƒšแƒแƒก แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒ˜, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช, แƒกแƒแƒ•แƒแƒ แƒแƒฃแƒ“แƒแƒ“, แƒแƒ  แƒฃแƒœแƒ“แƒ แƒฌแƒแƒ˜แƒจแƒแƒšแƒแƒก.
    • แƒจแƒ”แƒฅแƒ›แƒ”แƒœแƒ˜แƒ— แƒฌแƒแƒจแƒšแƒแƒ›แƒ“แƒ”. แƒ—แƒฃ แƒ’แƒกแƒฃแƒ แƒ— แƒจแƒ”แƒชแƒ•แƒแƒšแƒแƒ— แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜, แƒ™แƒแƒ แƒ’แƒแƒ“ แƒ“แƒแƒคแƒ˜แƒฅแƒ แƒ“แƒ˜แƒ—, แƒ’แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒแƒ— แƒ—แƒฃ แƒแƒ แƒ แƒฉแƒแƒœแƒแƒชแƒ•แƒšแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒฅแƒ›แƒœแƒ แƒแƒ แƒ˜แƒ’แƒ˜แƒœแƒแƒšแƒ˜แƒก แƒฌแƒแƒจแƒšแƒแƒ›แƒ“แƒ”. แƒ—แƒฃ แƒžแƒแƒกแƒฃแƒฎแƒ˜ แƒ“แƒแƒ“แƒ”แƒ‘แƒ˜แƒ—แƒ˜แƒ, create_before_destroy แƒ“แƒแƒ’แƒ”แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒแƒ—. แƒ˜แƒ’แƒ˜แƒ•แƒ” แƒจแƒ”แƒ“แƒ”แƒ’แƒ˜แƒก แƒ›แƒ˜แƒฆแƒฌแƒ”แƒ•แƒ แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒฎแƒ”แƒšแƒ˜แƒ— แƒแƒ แƒ˜ แƒœแƒแƒ‘แƒ˜แƒฏแƒ˜แƒก แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ˜แƒ—: แƒฏแƒ”แƒ  แƒ“แƒแƒแƒ›แƒแƒขแƒ”แƒ— แƒแƒฎแƒแƒšแƒ˜ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒแƒจแƒ˜ แƒ“แƒ แƒ’แƒแƒฃแƒจแƒ•แƒ˜แƒ— แƒ’แƒแƒœแƒแƒชแƒฎแƒแƒ“แƒ˜แƒก แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ, แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒแƒ›แƒแƒ˜แƒฆแƒ”แƒ— แƒซแƒ•แƒ”แƒšแƒ˜ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ˜แƒ“แƒแƒœ แƒ“แƒ แƒ™แƒ•แƒšแƒแƒ• แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ— แƒ’แƒแƒœแƒแƒชแƒฎแƒแƒ“แƒ˜แƒก แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ.
    • แƒ˜แƒ“แƒ”แƒœแƒขแƒ˜แƒคแƒ˜แƒ™แƒแƒขแƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒชแƒ•แƒšแƒ แƒ›แƒแƒ˜แƒ—แƒฎแƒแƒ•แƒก แƒ›แƒ“แƒ’แƒแƒ›แƒแƒ แƒ”แƒแƒ‘แƒ˜แƒก แƒจแƒ”แƒชแƒ•แƒšแƒแƒก. แƒ—แƒฃ แƒ’แƒกแƒฃแƒ แƒ— แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ—แƒแƒœ แƒแƒกแƒแƒชแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ ID-แƒ˜แƒก แƒจแƒ”แƒชแƒ•แƒšแƒ (แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒ’แƒแƒ“แƒแƒ แƒฅแƒ›แƒ”แƒ•แƒ aws_security_group แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜แƒ“แƒแƒœ cluster_instance-แƒ–แƒ”) แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜แƒก แƒฌแƒแƒจแƒšแƒ˜แƒกแƒ แƒ“แƒ แƒ›แƒ˜แƒกแƒ˜ แƒแƒฎแƒแƒšแƒ˜ แƒ•แƒ”แƒ แƒกแƒ˜แƒ˜แƒก แƒจแƒ”แƒฅแƒ›แƒœแƒ˜แƒก แƒ’แƒแƒ แƒ”แƒจแƒ”, แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒ’แƒแƒœแƒแƒแƒฎแƒšแƒแƒ— Terraform State แƒคแƒแƒ˜แƒšแƒ˜ แƒจแƒ”แƒกแƒแƒ‘แƒแƒ›แƒ˜แƒกแƒแƒ“. แƒแƒ แƒแƒกแƒแƒ“แƒ”แƒก แƒ’แƒแƒแƒ™แƒ”แƒ—แƒแƒ— แƒ”แƒก แƒฎแƒ”แƒšแƒ˜แƒ— - แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ— แƒขแƒ”แƒ แƒแƒคแƒแƒ แƒ›แƒฃแƒšแƒ˜ แƒ›แƒ“แƒ’แƒแƒ›แƒแƒ แƒ”แƒแƒ‘แƒ˜แƒก แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ. แƒ˜แƒ“แƒ”แƒœแƒขแƒ˜แƒคแƒ˜แƒ™แƒแƒขแƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ˜แƒก แƒ’แƒแƒ“แƒแƒ แƒฅแƒ›แƒ”แƒ•แƒ˜แƒกแƒแƒก, แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒ’แƒแƒฃแƒจแƒ•แƒแƒ— terraform state mv แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ, แƒ แƒแƒ›แƒ”แƒšแƒกแƒแƒช แƒแƒฅแƒ•แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜ แƒกแƒ˜แƒœแƒขแƒแƒฅแƒกแƒ˜:
      terraform state mv <ORIGINAL_REFERENCE> <NEW_REFERENCE>

      ORIGINAL_REFERENCE แƒแƒ แƒ˜แƒก แƒ’แƒแƒ›แƒแƒฎแƒแƒขแƒฃแƒšแƒ”แƒ‘แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ”แƒฎแƒ”แƒ‘แƒ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒก แƒ›แƒ˜แƒกแƒ˜ แƒแƒ›แƒŸแƒแƒ›แƒ˜แƒœแƒ“แƒ”แƒšแƒ˜ แƒคแƒแƒ แƒ›แƒ˜แƒ— แƒ“แƒ NEW_REFERENCE แƒแƒ แƒ˜แƒก แƒ˜แƒก, แƒกแƒแƒ“แƒแƒช แƒ’แƒกแƒฃแƒ แƒ— แƒ›แƒ˜แƒกแƒ˜ แƒ’แƒแƒ“แƒแƒขแƒแƒœแƒ. แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, aws_security_group แƒฏแƒ’แƒฃแƒคแƒก แƒ˜แƒœแƒกแƒขแƒแƒœแƒชแƒ˜แƒ˜แƒ“แƒแƒœ cluster_instance-แƒ–แƒ” แƒกแƒแƒฎแƒ”แƒšแƒ˜แƒก แƒ’แƒแƒ“แƒแƒ แƒฅแƒ›แƒ”แƒ•แƒ˜แƒกแƒแƒก, แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒจแƒ”แƒแƒกแƒ แƒฃแƒšแƒแƒ— แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜ แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ:

      $ terraform state mv 
         aws_security_group.instance 
         aws_security_group.cluster_instance

      แƒ”แƒก แƒ”แƒฃแƒ‘แƒœแƒ”แƒ‘แƒ Terraform-แƒก, แƒ แƒแƒ› แƒ›แƒ“แƒ’แƒแƒ›แƒแƒ แƒ”แƒแƒ‘แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒแƒ“แƒ แƒ” แƒแƒกแƒแƒชแƒ˜แƒ แƒ“แƒ”แƒ‘แƒแƒ“แƒ aws_security_group.instance-แƒ—แƒแƒœ, แƒแƒฎแƒšแƒ แƒฃแƒœแƒ“แƒ แƒ˜แƒงแƒแƒก แƒแƒกแƒแƒชแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ aws_security_group.cluster_instance-แƒ—แƒแƒœ. แƒ—แƒฃ แƒแƒ› แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ“แƒแƒ แƒฅแƒ›แƒ”แƒ•แƒ˜แƒกแƒ แƒ“แƒ แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ terraform plan แƒแƒ  แƒแƒฉแƒ•แƒ”แƒœแƒ”แƒ‘แƒก แƒ แƒแƒ˜แƒ›แƒ” แƒชแƒ•แƒšแƒ˜แƒšแƒ”แƒ‘แƒแƒก, แƒ›แƒแƒจแƒ˜แƒœ แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒกแƒฌแƒแƒ แƒแƒ“ แƒ’แƒแƒแƒ™แƒ”แƒ—แƒ”แƒ—.

    • แƒ–แƒแƒ’แƒ˜แƒ”แƒ แƒ—แƒ˜ แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ˜แƒก แƒจแƒ”แƒชแƒ•แƒšแƒ แƒจแƒ”แƒฃแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ. แƒ‘แƒ”แƒ•แƒ แƒ˜ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜แƒก แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ˜ แƒฃแƒชแƒ•แƒšแƒ”แƒšแƒ˜แƒ. แƒ—แƒฃ แƒ—แƒฅแƒ•แƒ”แƒœ แƒชแƒ“แƒ˜แƒšแƒแƒ‘แƒ— แƒ›แƒแƒ— แƒจแƒ”แƒชแƒ•แƒšแƒแƒก, Terraform แƒฌแƒแƒจแƒšแƒ˜แƒก แƒซแƒ•แƒ”แƒš แƒ แƒ”แƒกแƒฃแƒ แƒกแƒก แƒ“แƒ แƒ›แƒ˜แƒก แƒแƒ“แƒ’แƒ˜แƒšแƒแƒก แƒจแƒ”แƒฅแƒ›แƒœแƒ˜แƒก แƒแƒฎแƒแƒšแƒก. แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ˜ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜แƒก แƒ’แƒ•แƒ”แƒ แƒ“แƒ˜ แƒฉแƒ•แƒ”แƒฃแƒšแƒ”แƒ‘แƒ แƒ˜แƒ• แƒ›แƒ˜แƒฃแƒ—แƒ˜แƒ—แƒ”แƒ‘แƒก แƒ˜แƒ›แƒแƒ–แƒ”, แƒ—แƒฃ แƒ แƒ แƒฎแƒ“แƒ”แƒ‘แƒ แƒ™แƒแƒœแƒ™แƒ แƒ”แƒขแƒฃแƒšแƒ˜ แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ˜แƒก แƒจแƒ”แƒชแƒ•แƒšแƒ˜แƒกแƒแƒก, แƒแƒ›แƒ˜แƒขแƒแƒ› แƒ“แƒแƒ แƒฌแƒ›แƒฃแƒœแƒ“แƒ˜แƒ—, แƒ แƒแƒ› แƒจแƒ”แƒแƒ›แƒแƒฌแƒ›แƒ”แƒ— แƒ“แƒแƒ™แƒฃแƒ›แƒ”แƒœแƒขแƒแƒชแƒ˜แƒ. แƒงแƒแƒ•แƒ”แƒšแƒ—แƒ•แƒ˜แƒก แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ— แƒ’แƒ”แƒ’แƒ›แƒ˜แƒก แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ แƒ“แƒ แƒ’แƒแƒœแƒ˜แƒฎแƒ˜แƒšแƒ”แƒ— แƒกแƒขแƒ แƒแƒขแƒ”แƒ’แƒ˜แƒ create_before_destroy.

    แƒ’แƒแƒ“แƒแƒ•แƒแƒ“แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ—แƒแƒœแƒ›แƒ˜แƒ›แƒ“แƒ”แƒ•แƒ แƒฃแƒšแƒแƒ‘แƒ แƒจแƒ”แƒ”แƒกแƒแƒ‘แƒแƒ›แƒ”แƒ‘แƒ... แƒ’แƒแƒ“แƒแƒ•แƒแƒ“แƒ”แƒ‘แƒแƒก

    แƒฆแƒ แƒฃแƒ‘แƒšแƒแƒ•แƒแƒœแƒ˜ แƒžแƒ แƒแƒ•แƒแƒ˜แƒ“แƒ”แƒ แƒ”แƒ‘แƒ˜แƒก แƒ–แƒแƒ’แƒ˜แƒ”แƒ แƒ—แƒ˜ API, แƒ แƒแƒ’แƒแƒ แƒ˜แƒชแƒแƒ AWS, แƒแƒกแƒ˜แƒœแƒฅแƒ แƒแƒœแƒฃแƒšแƒ˜แƒ แƒ“แƒ แƒแƒฅแƒ•แƒก แƒ“แƒแƒ’แƒ•แƒ˜แƒแƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ—แƒแƒœแƒ›แƒ˜แƒ›แƒ“แƒ”แƒ•แƒ แƒฃแƒšแƒแƒ‘แƒ. แƒแƒกแƒ˜แƒœแƒฅแƒ แƒแƒœแƒฃแƒšแƒแƒ‘แƒ แƒœแƒ˜แƒจแƒœแƒแƒ•แƒก, แƒ แƒแƒ› แƒ˜แƒœแƒขแƒ”แƒ แƒคแƒ”แƒ˜แƒกแƒก แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒ แƒ“แƒแƒฃแƒงแƒแƒ•แƒœแƒ”แƒ‘แƒšแƒ˜แƒ• แƒ“แƒแƒแƒ‘แƒ แƒฃแƒœแƒแƒก แƒžแƒแƒกแƒฃแƒฎแƒ˜ แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ˜แƒšแƒ˜ แƒ›แƒแƒฅแƒ›แƒ”แƒ“แƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒแƒ›แƒ“แƒ” แƒ›แƒแƒšแƒแƒ“แƒ˜แƒœแƒ˜แƒก แƒ’แƒแƒ แƒ”แƒจแƒ”. แƒ“แƒแƒ’แƒ•แƒ˜แƒแƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ—แƒแƒœแƒ›แƒ˜แƒ›แƒ“แƒ”แƒ•แƒ แƒฃแƒšแƒแƒ‘แƒ แƒœแƒ˜แƒจแƒœแƒแƒ•แƒก, แƒ แƒแƒ› แƒชแƒ•แƒšแƒ˜แƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ•แƒ แƒชแƒ”แƒšแƒ”แƒ‘แƒแƒก แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ“แƒ แƒ แƒ“แƒแƒกแƒญแƒ˜แƒ แƒ“แƒ”แƒก แƒ›แƒ—แƒ”แƒš แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒแƒจแƒ˜; แƒกแƒแƒœแƒแƒ› แƒ”แƒก แƒฎแƒ“แƒ”แƒ‘แƒ, แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒžแƒแƒกแƒฃแƒฎแƒ”แƒ‘แƒ˜ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ˜แƒงแƒแƒก แƒแƒ แƒแƒ—แƒแƒœแƒ›แƒ˜แƒ›แƒ“แƒ”แƒ•แƒ แƒฃแƒšแƒ˜ แƒ“แƒ แƒ“แƒแƒ›แƒแƒ™แƒ˜แƒ“แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒ˜แƒ›แƒแƒ–แƒ”, แƒ—แƒฃ แƒ แƒแƒ›แƒ”แƒšแƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒฌแƒงแƒแƒ แƒแƒก แƒ แƒ”แƒžแƒšแƒ˜แƒ™แƒ แƒžแƒแƒกแƒฃแƒฎแƒแƒ‘แƒก แƒ—แƒฅแƒ•แƒ”แƒœแƒก API แƒ–แƒแƒ แƒ”แƒ‘แƒก.

    แƒฌแƒแƒ แƒ›แƒแƒ˜แƒ“แƒ’แƒ˜แƒœแƒ”แƒ—, แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒ แƒแƒ› แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒ แƒ”แƒ™แƒแƒ•แƒ— API AWS-แƒก แƒ“แƒ แƒกแƒ—แƒฎแƒแƒ•แƒ— แƒ›แƒแƒก แƒจแƒ”แƒฅแƒ›แƒœแƒแƒก EC2 แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜. API แƒ“แƒแƒแƒ‘แƒ แƒฃแƒœแƒ”แƒ‘แƒก "แƒฌแƒแƒ แƒ›แƒแƒขแƒ”แƒ‘แƒฃแƒš" แƒžแƒแƒกแƒฃแƒฎแƒก (201 แƒจแƒ”แƒฅแƒ›แƒœแƒ˜แƒšแƒ˜แƒ) แƒ—แƒ˜แƒ—แƒฅแƒ›แƒ˜แƒก แƒ›แƒงแƒ˜แƒกแƒ˜แƒ”แƒ แƒแƒ“, แƒ—แƒแƒ•แƒแƒ“ แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜แƒก แƒจแƒ”แƒฅแƒ›แƒœแƒ˜แƒก แƒ›แƒแƒšแƒแƒ“แƒ˜แƒœแƒ˜แƒก แƒ’แƒแƒ แƒ”แƒจแƒ”. แƒ—แƒฃ แƒ—แƒฅแƒ•แƒ”แƒœ แƒชแƒ“แƒ˜แƒšแƒแƒ‘แƒ— แƒ›แƒแƒกแƒ—แƒแƒœ แƒ“แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒแƒก, แƒ˜แƒก แƒ—แƒ˜แƒ—แƒฅแƒ›แƒ˜แƒก แƒ•แƒ”แƒ  แƒ›แƒแƒฎแƒ”แƒ แƒฎแƒ“แƒ”แƒ‘แƒ, แƒ แƒแƒ“แƒ’แƒแƒœ แƒแƒ› แƒ“แƒ แƒแƒก AWS แƒฏแƒ”แƒ  แƒ™แƒ˜แƒ“แƒ”แƒ• แƒแƒฎแƒ“แƒ”แƒœแƒก แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒ˜แƒก แƒ˜แƒœแƒ˜แƒชแƒ˜แƒแƒšแƒ˜แƒ–แƒแƒชแƒ˜แƒแƒก, แƒแƒœ, แƒกแƒฎแƒ•แƒแƒ’แƒ•แƒแƒ แƒแƒ“, แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜ แƒฏแƒ”แƒ  แƒแƒ  แƒแƒ แƒ˜แƒก แƒฉแƒแƒขแƒ•แƒ˜แƒ แƒ—แƒฃแƒšแƒ˜. แƒฃแƒคแƒ แƒ แƒ›แƒ”แƒขแƒ˜แƒช, แƒ—แƒฃ แƒกแƒฎแƒ•แƒ แƒ–แƒแƒ แƒก แƒ’แƒแƒœแƒแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒ‘แƒ— แƒแƒ› แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘ แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒ˜แƒก แƒ›แƒ˜แƒกแƒแƒฆแƒ”แƒ‘แƒแƒ“, แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ›แƒ˜แƒ˜แƒฆแƒแƒ— แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ (404 Not Found). แƒกแƒแƒฅแƒ›แƒ” แƒ˜แƒ›แƒแƒจแƒ˜แƒ, แƒ แƒแƒ› แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒ แƒแƒ› 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), แƒ“แƒ Terraform แƒ•แƒ”แƒ  แƒžแƒแƒฃแƒšแƒแƒ‘แƒก แƒ›แƒแƒก. แƒแƒ› แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ”แƒ‘แƒ˜แƒก แƒฃแƒ›แƒ”แƒขแƒ”แƒกแƒแƒ‘แƒ (แƒ›แƒแƒ— แƒจแƒแƒ แƒ˜แƒก 6813) แƒ’แƒแƒ›แƒแƒกแƒฌแƒแƒ แƒ“แƒ, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒ›แƒแƒ˜แƒœแƒช แƒฉแƒœแƒ“แƒ”แƒ‘แƒ แƒ“แƒ แƒแƒ“แƒแƒ“แƒ แƒ, แƒ’แƒแƒœแƒกแƒแƒ™แƒฃแƒ—แƒ แƒ”แƒ‘แƒ˜แƒ— แƒ›แƒแƒจแƒ˜แƒœ, แƒ แƒแƒ“แƒ”แƒกแƒแƒช Terraform แƒแƒ›แƒแƒขแƒ”แƒ‘แƒก แƒ›แƒฎแƒแƒ แƒ“แƒแƒญแƒ”แƒ แƒแƒก แƒแƒฎแƒแƒšแƒ˜ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜แƒก แƒขแƒ˜แƒžแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. แƒ”แƒก แƒจแƒ”แƒ›แƒแƒจแƒคแƒแƒ—แƒ”แƒ‘แƒ”แƒšแƒ˜แƒ, แƒ›แƒแƒ’แƒ แƒแƒ› แƒฃแƒ›แƒ”แƒขแƒ”แƒก แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜ แƒแƒ แƒแƒœแƒแƒ˜แƒ  แƒ–แƒ˜แƒแƒœแƒก แƒแƒ  แƒ˜แƒฌแƒ•แƒ”แƒ•แƒก. แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒฎแƒ”แƒšแƒแƒฎแƒšแƒ แƒ’แƒแƒฃแƒจแƒ•แƒ˜แƒ— terraform application, แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒฃแƒœแƒ“แƒ แƒ˜แƒ›แƒฃแƒจแƒแƒแƒก, แƒ แƒแƒ“แƒ’แƒแƒœ แƒแƒ› แƒ“แƒ แƒแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒ แƒฃแƒ™แƒ•แƒ” แƒ’แƒแƒ•แƒ แƒชแƒ”แƒšแƒ“แƒ”แƒ‘แƒ แƒ›แƒ—แƒ”แƒš แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒแƒจแƒ˜.

    แƒ”แƒก แƒœแƒแƒฌแƒงแƒ•แƒ”แƒขแƒ˜ แƒฌแƒแƒ แƒ›แƒแƒ“แƒ’แƒ”แƒœแƒ˜แƒšแƒ˜แƒ แƒ”แƒ•แƒ’แƒ”แƒœแƒ˜ แƒ‘แƒ แƒ˜แƒ™แƒ›แƒแƒœแƒ˜แƒก แƒฌแƒ˜แƒ’แƒœแƒ˜แƒ“แƒแƒœ "Terraform: แƒ˜แƒœแƒคแƒ แƒแƒกแƒขแƒ แƒฃแƒฅแƒขแƒฃแƒ แƒ แƒ™แƒแƒ“แƒ˜แƒก แƒ“แƒแƒœแƒ”แƒ–แƒ”".

แƒฌแƒงแƒแƒ แƒ: www.habr.com

แƒแƒฎแƒแƒšแƒ˜ แƒ™แƒแƒ›แƒ”แƒœแƒขแƒแƒ แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ