ื”ืฆื’ืช ืื–ื•ืจ ื ื—ื™ืชื” AWS ื”ื ื™ืชืŸ ืœืชื›ื ื•ืช ื‘ืžื•ื“ื•ืœ Terraform

ืฉืœื•ื ืœื›ื•ืœื! ื‘ื“ืฆืžื‘ืจ, OTUS ืžืฉื™ืงื” ืงื•ืจืก ื—ื“ืฉ - ืืจื›ื™ื˜ืงื˜ื•ืจืช ืคืชืจื•ื ื•ืช ืขื ืŸ. ืœืงืจืืช ืชื—ื™ืœืชื• ืฉืœ ืงื•ืจืก ื–ื”, ืื ื• ืžืฉืชืคื™ื ืืชื›ื ื‘ืชืจื’ื•ื ืฉืœ ื—ื•ืžืจ ืžืขื ื™ื™ืŸ ื‘ื ื•ืฉื.

ื”ืฆื’ืช ืื–ื•ืจ ื ื—ื™ืชื” AWS ื”ื ื™ืชืŸ ืœืชื›ื ื•ืช ื‘ืžื•ื“ื•ืœ Terraform

ืื–ื•ืจ ื”ื ื—ื™ืชื” ืฉืœ AWS ื”ื•ื ืคืชืจื•ืŸ ื”ืžืกื™ื™ืข ืœืœืงื•ื—ื•ืช ืœื”ื’ื“ื™ืจ ื‘ืžื”ื™ืจื•ืช ืกื‘ื™ื‘ืช AWS ืžืื•ื‘ื˜ื—ืช ืžืจื•ื‘ืช ื—ืฉื‘ื•ื ื•ืช ื”ืžื‘ื•ืกืกืช ืขืœ ืฉื™ื˜ื•ืช ืขื‘ื•ื“ื” ืžื•ืžืœืฆื•ืช.

ื‘ืžืฉืš ื™ื•ืชืจ ืžื—ืžืฉ ืฉื ื™ื, ื”ืฆื•ื•ืช ืฉืœื ื• ื‘ืงื‘ื•ืฆืช Mitoc ืขื‘ื“ ืœืœื ืœืื•ืช ื›ื“ื™ ืœืขื–ื•ืจ ืœืืจื’ื•ื ื™ื ื’ื“ื•ืœื™ื ืœื”ืฆืœื™ื— ื‘ืฉื™ื ื•ื™ ื“ื™ื’ื™ื˜ืœื™ ื•ืœื‘ื ื•ืช ืื• ืœื”ืขื‘ื™ืจ ืืช ื˜ื‘ื™ืขืช ื”ืจื’ืœ ื”ื“ื™ื’ื™ื˜ืœื™ืช ืฉืœื”ื ืœืขื ืŸ AWS. ื‘ืžื™ืœื™ื ืื—ืจื•ืช, ืื ืœืฆื˜ื˜ ืืช ื—ื‘ืจื™ื ื• ื‘-AWS: "ื”ืœืงื•ื—ื•ืช ืฉืœื ื• ืžืžืฆื™ืื™ื ืืช ืขืฆืžื ืžื—ื“ืฉ ืขื AWS." ื–ื”ื• ืžืืžืฅ ื‘ืœืชื™ ืคื•ืกืง ืœื”ืžืฆื™ื ืžื—ื“ืฉ ื•ืœืคืฉื˜ ืืช ื”ืžื›ื ื™ืงื” ื‘ืฉื ื”ืœืงื•ื—ื•ืช ืขืฆืžื, ื•-AWS ืขื•ืฉื” ืขื‘ื•ื“ื” ืžืฆื•ื™ื ืช ื‘ืคืชืจื•ืŸ ื‘ืขื™ื•ืช ืžื•ืจื›ื‘ื•ืช ืขื ืคืชืจื•ื ื•ืช ืงืœื™ื ืœืœืžื™ื“ื”.

ื”ืฆื’ืช ืื–ื•ืจ ื ื—ื™ืชื” AWS ื”ื ื™ืชืŸ ืœืชื›ื ื•ืช ื‘ืžื•ื“ื•ืœ Terraform
ืื–ื•ืจ ื ื—ื™ืชื” ืฉืœ AWS (ืžืงื•ืจ)

ืžื”ื• ืื–ื•ืจ ื”ื ื—ื™ืชื” ืฉืœ AWS?

ืขืœ ืคื™ ืžื™ื“ืข ืžืžืงื•ืจ ืจืฉืžื™:

AWS Landing Zone ื”ื•ื ืคืชืจื•ืŸ ื”ืžืกื™ื™ืข ืœืœืงื•ื—ื•ืช ืœื”ื’ื“ื™ืจ ื‘ืžื”ื™ืจื•ืช ืกื‘ื™ื‘ืช AWS ืžืื•ื‘ื˜ื—ืช ืขื ืžืกืคืจ ื—ืฉื‘ื•ื ื•ืช ื”ืžื‘ื•ืกืกื™ื ืขืœ ืฉื™ื˜ื•ืช ืขื‘ื•ื“ื” ืžื•ืžืœืฆื•ืช ืฉืœ AWS. ืขื ื›ืœ ื›ืš ื”ืจื‘ื” ืืคืฉืจื•ื™ื•ืช, ื”ืงืžืช ืกื‘ื™ื‘ื” ืžืจื•ื‘ืช ื—ืฉื‘ื•ื ื•ืช ื™ื›ื•ืœื” ืœื”ื™ื•ืช ื’ื•ื–ืœืช ื–ืžืŸ, ื›ืจื•ื›ื” ื‘ื”ื’ื“ืจืช ืžืกืคืจ ื—ืฉื‘ื•ื ื•ืช ื•ืฉื™ืจื•ืชื™ื ื•ื“ื•ืจืฉืช ื”ื‘ื ื” ืขืžื•ืงื” ืฉืœ ืฉื™ืจื•ืชื™ AWS.

AWS Landing Zone ื”ืคื—ื™ืช ืžืฉืžืขื•ืชื™ืช ืืช ื”ืžื•ืจื›ื‘ื•ืช ื•ื”ืขืงื‘ื™ื•ืช ืฉืœ ื“ืคื•ืกื™ ืขื™ืฆื•ื‘ ื“ื•ืžื™ื ื”ืžื•ืขื‘ืจื™ื ืœืœืงื•ื—ื•ืช ืฉื•ื ื™ื. ืžืฆื“ ืฉื ื™, ื”ืฆื•ื•ืช ืฉืœื ื• ื ืืœืฅ ืœื”ื’ื“ื™ืจ ืžื—ื“ืฉ ื›ืžื” ืจื›ื™ื‘ื™ CloudFormation ื›ืจื›ื™ื‘ื™ Terraform ื›ื“ื™ ืœื”ืฉืชืžืฉ ื‘ื”ื ื”ืœืื” ืœืื•ื˜ื•ืžืฆื™ื”.

ืื– ืฉืืœื ื• ืืช ืขืฆืžื ื•, ืœืžื” ืœื ืœื‘ื ื•ืช ืืช ื›ืœ ืคืชืจื•ืŸ AWS Landing Zone ื‘-Terraform? ื”ืื ื ื•ื›ืœ ืœืขืฉื•ืช ื–ืืช ื•ื”ืื ื–ื” ื™ืคืชื•ืจ ืืช ื‘ืขื™ื•ืช ื”ืœืงื•ื—ื•ืช ืฉืœื ื•? ืกืคื•ื™ืœืจ: ื–ื” ื™ื”ื™ื” ื•ื›ื‘ืจ ืžื—ืœื™ื˜! ๐Ÿ™‚

ืžืชื™ ืืกื•ืจ ืœื”ืฉืชืžืฉ ื‘-AWS Landing Zone?

ืื ืืชื” ืžืชืžื•ื“ื“ ืขื ืฉื™ืจื•ืชื™ ืขื ืŸ ืจื’ื™ืœื™ื ื•ืžืฉืื‘ื™ ืขื ืŸ ื‘ืชื•ืš ื—ืฉื‘ื•ืŸ AWS ืื—ื“ ืื• ืฉื ื™ื™ื, ื”ืืžืฆืขื™ื ื”ืœืœื• ืขืฉื•ื™ื™ื ืœื”ื™ื•ืช ืžื•ื’ื–ืžื™ื. ืžื™ ืฉืœื ืžืชื™ื™ื—ืก ืœื ืงื•ื“ื” ื”ื–ื• ื™ื›ื•ืœ ืœื”ืžืฉื™ืš ืœืงืจื•ื :)

ืžื” ื›ื“ืื™ ืœืงื—ืช ื‘ื—ืฉื‘ื•ืŸ ืœืคื ื™ ืชื—ื™ืœืช ื”ืขื‘ื•ื“ื”?

ืœืจื‘ื™ื ืžื”ืืจื’ื•ื ื™ื ื”ื’ื“ื•ืœื™ื ืื™ืชื ืขื‘ื“ื ื• ื›ื‘ืจ ื™ืฉ ืื™ื–ื•ืฉื”ื™ ืืกื˜ืจื˜ื’ื™ื™ืช ืขื ืŸ. ื—ื‘ืจื•ืช ื ืื‘ืงื•ืช ืœื”ื˜ืžื™ืข ื‘ื”ืฆืœื—ื” ืฉื™ืจื•ืชื™ ืขื ืŸ ืœืœื ื—ื–ื•ืŸ ื•ืฆื™ืคื™ื•ืช ื‘ืจื•ืจื•ืช. ืื ื ื”ืงื“ื™ืฉื• ื–ืžืŸ ื›ื“ื™ ืœื”ื’ื“ื™ืจ ืืช ื”ืืกื˜ืจื˜ื’ื™ื” ืฉืœื›ื ื•ืœื”ื‘ื™ืŸ ื›ื™ืฆื“ AWS ืžืฉืชืœื‘ ื‘ื”.

ื‘ืขืช ืงื‘ื™ืขืช ืืกื˜ืจื˜ื’ื™ื”, ืœืงื•ื—ื•ืช AWS Landing Zone ืžืฆืœื™ื—ื™ื ืžืชืžืงื“ื™ื ื‘ืื•ืคืŸ ืคืขื™ืœ ื‘ื“ื‘ืจื™ื ื”ื‘ืื™ื:

  • ืื•ื˜ื•ืžืฆื™ื” ื”ื™ื ืคืฉื•ื˜ ืœื ืื•ืคืฆื™ื”. ืื•ื˜ื•ืžืฆื™ื” ืžืงื•ืจื™ืช ื‘ืขื ืŸ ืขื“ื™ืคื”.
  • ืฆื•ื•ืชื™ื ืžืฉืชืžืฉื™ื ื‘ืขืงื‘ื™ื•ืช ื‘ืื•ืชื” ืžื›ื ื™ืงื” ืขื ืื•ืชื” ืกื˜ ื›ืœื™ื ื›ื“ื™ ืœืกืคืง ืžืฉืื‘ื™ ืขื ืŸ. ืขื“ื™ืฃ ืœื”ืฉืชืžืฉ ื‘- Terraform.
  • ืœืžืฉืชืžืฉื™ ื”ืขื ืŸ ื”ืคืจื•ื“ื•ืงื˜ื™ื‘ื™ื™ื ื‘ื™ื•ืชืจ ื™ืฉ ืืช ื”ื™ื›ื•ืœืช ืœื™ืฆื•ืจ ืชื”ืœื™ื›ื™ื ื”ื ื™ืชื ื™ื ืœืฉื™ืžื•ืฉ ื—ื•ื–ืจ ื•ืœืกืคืง ืื•ืชื ื›ืฉื™ืจื•ืชื™ื ืœืฉื™ืžื•ืฉ ื—ื•ื–ืจ ื‘ืžืงื•ื ืงื•ื“ ืœืฉื™ืžื•ืฉ ื—ื•ื–ืจ. ืžื•ืขื“ืคืช ืืจื›ื™ื˜ืงื˜ื•ืจื” ืœืœื ืฉืจืช.

ื”ื™ื›ืจื•ืช ืขื ืžื•ื“ื•ืœ Terraform ืขื‘ื•ืจ ืื–ื•ืจ ื”ื ื—ื™ืชื” ืฉืœ AWS

ืœืื—ืจ ืžืกืคืจ ื—ื•ื“ืฉื™ื ืฉืœ ืขื‘ื•ื“ื” ืงืฉื”, ืื ื™ ืฉืžื— ืœื”ืฆื™ื’ ื‘ืคื ื™ื›ื ืžื•ื“ื•ืœ Terraform ืขื‘ื•ืจ ืื–ื•ืจ ื”ื ื—ื™ืชื” ืฉืœ AWS. ืงื•ื“ ืžืงื•ืจ ืžืื•ื—ืกืŸ ื‘- GitHub, ื• ื’ืจืกืื•ืช ืžื”ื“ื•ืจื” ื™ืฆื™ื‘ื” ืคื•ืจืกื ื‘- Terraform Module Registry.

ื›ื“ื™ ืœื”ืชื—ื™ืœ, ืคืฉื•ื˜ ื”ืคืขืœ main.tf ืœืงื•ื“ ืฉืœืš:

module "landing_zone" {
  source     = "TerraHubCorp/landing-zone/aws"
  version    = "0.0.6"
  root_path  = "${path.module}"
  account_id = "${var.account_id}"
  region     = "${var.region}"
  landing_zone_components = "${var.landing_zone_components}"
}

ื”ืขืจื”: ื”ืงืคื“ ืœื”ืคืขื™ืœ variables.tf ื•ื›ืœ ืžื” ืฉืชืฆื˜ืจืš ืžืžื ื• outputs.tf.

ื›ื“ื™ ืœื”ืงืœ ืขืœ ื”ื”ื‘ื ื”, ื”ื•ืกืคื ื• ืขืจื›ื™ ื‘ืจื™ืจืช ืžื—ื“ืœ ืœ terraform.tfvars:

account_id = "123456789012"
region = "us-east-1"
landing_zone_components = {
  landing_zone_pipeline_s3_bucket = "s3://terraform-aws-landing-zone/mycompany/landing_zone_pipeline_s3_bucket/default.tfvars"
  [...]
}

ื–ื” ืื•ืžืจ ืฉื‘ืฉื™ืžื•ืฉ ื‘ืžื•ื“ื•ืœ ื–ื” terraform ืชืฆื˜ืจืš:

  1. ืœืฉื ื•ืช ืขืจื›ื™ื account_id ะธ region ืœืฉืœืš, ื”ืชื•ืื ืืช ื”ื ืชื•ื ื™ื ื‘ืืจื’ื•ืŸ AWS;
  2. ืœืฉื ื•ืช ืขืจื›ื™ื landing_zone_components ืืœื” ื”ืชื•ืืžื™ื ืืช ืžืงืจื” ื”ืฉื™ืžื•ืฉ ืฉืœืš ื‘-AWS Landing Zone;
  3. ืœืชืงืŸ s3://terraform-aws-landing-zone/mycompany ืœื‘ืœื•ืง ืฉืœืš S3 ื•ืงื™ื“ื•ืžืช ืžืคืชื— S3ืื™ืคื” ืชืฉืžื•ืจ ืืช ื”ืงื‘ืฆื™ื .tfvars (ืื• ื ืชื™ื‘ ืžื•ื—ืœื˜ ืœืงื‘ืฆื™ื .tfvars ื‘ืื—ืกื•ืŸ ื”ืžืงื•ืžื™ ืฉืœืš).

ืžื•ื“ื•ืœ ื–ื” ืขืฉื•ื™ ืœื›ืœื•ืœ ืขืฉืจื•ืช, ืžืื•ืช ืื• ืืœืคื™ ืจื›ื™ื‘ื™ื ื”ื ื™ืชื ื™ื ืœืคืจื™ืกื”, ืืš ืœื ื›ื•ืœื ืฆืจื™ื›ื™ื ืื• ื™ื”ื™ื• ืคืจื•ืกื™ื. ื‘ื–ืžืŸ ืจื™ืฆื”, ืจื›ื™ื‘ื™ื ืฉืื™ื ื ื—ืœืง ืžืžืคืช ื”ืžืฉืชื ื” landing_zone_components ื™ืชืขืœืžื•.

ืžืกืงื ื”

ืื ื• ื ืจื’ืฉื™ื ื•ื’ืื™ื ืœื—ืœื•ืง ืืช ื”ืคื™ืจื•ืช ืฉืœ ื”ืžืืžืฆื™ื ืฉืœื ื• ืœืขื–ื•ืจ ืœืœืงื•ื—ื•ืช ืœื‘ื ื•ืช ืื•ื˜ื•ืžืฆื™ื” ืžืงื•ืจื™ืช ื‘ืขื ืŸ. ืžื•ื“ื•ืœ Terraform ืขื‘ื•ืจ AWS Landing Zone ื”ื•ื ืคืชืจื•ืŸ ื ื•ืกืฃ ื”ืžืกื™ื™ืข ืœืืจื’ื•ื ื™ื ืœื”ืงื™ื ื‘ืžื”ื™ืจื•ืช ืกื‘ื™ื‘ืช AWS ืžืื•ื‘ื˜ื—ืช ืขื ืžืกืคืจ ื—ืฉื‘ื•ื ื•ืช ื”ืžื‘ื•ืกืกื™ื ืขืœ ืฉื™ื˜ื•ืช ืขื‘ื•ื“ื” ืžื•ืžืœืฆื•ืช ืฉืœ AWS. ืื ื• ืžื•ื“ืขื™ื ื”ื™ื˜ื‘ ืœื›ืš ืฉ-AWS ืฆื•ืžื—ืช ื‘ืงืฆื‘ ืžื”ื™ืจ ื‘ื˜ื™ืจื•ืฃ, ื•ืื ื• ืžื—ื•ื™ื‘ื™ื ืœืคืชื— ื‘ืžื”ื™ืจื•ืช ืคืชืจื•ืŸ terraform ื”ืžื›ืกื” ืืช ื›ืœ ื”ื‘ืกื™ืกื™ื ื•ื’ื ืžืฉืชืœื‘ ืขื ืคืชืจื•ื ื•ืช ื™ื™ืฆื•ืจ ืื—ืจื™ื ืฉืœ AWS.

ื–ื” ื”ื›ืœ. ืื ื• ืžื—ื›ื™ื ืœื”ืขืจื•ืชื™ื›ื ื•ืžื–ืžื™ื ื™ื ืืชื›ื ืกืžื™ื ืจ ืžืงื•ื•ืŸ ื—ื™ื ื ืฉื‘ืชื•ื›ื• ืื ื—ื ื• ื ืœืžื“ ืืช ื”ืขื™ืฆื•ื‘ ืฉืœ ืืจื›ื™ื˜ืงื˜ื•ืจืช ื”ืชื—ื•ื ืฉืœ Cloud Landing Zone ื•ื ืฉืงื•ืœ ืืช ื”ื“ืคื•ืกื™ื ื”ืื“ืจื™ื›ืœื™ื™ื ืฉืœ ื”ืชื—ื•ืžื™ื ื”ืขื™ืงืจื™ื™ื.

ืžืงื•ืจ: www.habr.com

ื”ื•ืกืคืช ืชื’ื•ื‘ื”