Terraform модульд програмчлагдах боломжтой AWS буух бүсийг танилцуулж байна

Сайн уу! XNUMX-р сард OTUS шинэ сургалтаа эхлүүлж байна - Үүлэн шийдлийн архитектур. Энэхүү сургалт эхлэх гэж байгаатай холбогдуулан бид та бүхэнд энэ сэдвээр сонирхолтой материалыг орчуулан хүргэж байна.

Terraform модульд програмчлагдах боломжтой AWS буух бүсийг танилцуулж байна

AWS буух бүс нь шилдэг туршлага дээр тулгуурлан аюулгүй, олон бүртгэлтэй AWS орчныг хурдан шуурхай бий болгоход хэрэглэгчдэд тусалдаг шийдэл юм.

Таван жил гаруй хугацаанд Миток Групп дахь манай баг томоохон байгууллагуудад дижитал ул мөрийг амжилттай дижитал болгон хувиргах, AWS үүл рүү шилжүүлэх, бүтээхэд нь туслахын тулд уйгагүй ажилласан. Өөрөөр хэлбэл, AWS-ийн найзуудынхаа үгийг иш татвал: "Манай үйлчлүүлэгчид AWS-ээр өөрсдийгөө шинээр зохион бүтээж байна." Энэ нь үйлчлүүлэгчдийнхээ нэрийн өмнөөс механикийг дахин зохион бүтээх, хялбарчлах нь эцэс төгсгөлгүй хүчин чармайлт бөгөөд AWS нь сурахад хялбар шийдлүүдийн тусламжтайгаар нарийн төвөгтэй асуудлыг шийдвэрлэх гайхалтай ажлыг гүйцэтгэдэг.

Terraform модульд програмчлагдах боломжтой AWS буух бүсийг танилцуулж байна
AWS буух бүс (эх сурвалж)

AWS буух бүс гэж юу вэ?

Албаны эх сурвалжаас авсан мэдээллээр:

AWS Landing Zone нь үйлчлүүлэгчдэд AWS-ийн шилдэг туршлагууд дээр суурилсан олон бүртгэлтэй аюулгүй AWS орчныг хурдан тохируулахад тусалдаг шийдэл юм. Маш олон сонголттой учраас олон дансны орчинг тохируулах нь цаг хугацаа их шаарддаг, олон бүртгэл, үйлчилгээг тохируулах, AWS үйлчилгээний талаар гүнзгий ойлголттой байхыг шаарддаг.

AWS Landing Zone нь өөр өөр хэрэглэгчдэд хүргэх ижил төстэй загваруудын нарийн төвөгтэй байдал, тууштай байдлыг эрс багасгасан. Нөгөөтэйгүүр, манай баг CloudFormation-ийн зарим бүрэлдэхүүн хэсгүүдийг автоматжуулалтад ашиглахын тулд Terraform бүрэлдэхүүн хэсгүүдийг дахин тохируулах шаардлагатай болсон.

Тиймээс бид өөрөөсөө яагаад AWS Landing Zone шийдлийг бүхэлд нь Terraform-д барьж болохгүй гэж? Үүнийг бид хийж чадах уу, үйлчлүүлэгчдийнхээ асуудлыг шийдэж чадах уу? Спойлер: энэ нь шийдэгдэх болно, аль хэдийн шийдвэрлэж байна! 🙂

Та хэзээ AWS буух бүсийг ашиглах ёсгүй вэ?

Хэрэв та нэг эсвэл хоёр AWS дансны доторх үүлэн үйлчилгээ болон үүлэн нөөцтэй харьцаж байгаа бол эдгээр арга хэмжээ хэт их байж магадгүй юм. Энэ асуудалтай холбоогүй хэн бүхэн үргэлжлүүлэн уншиж болно :)

Ажил эхлэхийн өмнө юуг анхаарах ёстой вэ?

Бидний хамтран ажиллаж байсан томоохон байгууллагуудын ихэнх нь үүлэн стратегийг аль хэдийн хэрэгжүүлсэн байдаг. Компаниуд тодорхой алсын хараа, хүлээлтгүйгээр үүлэн үйлчилгээг амжилттай хэрэгжүүлэхийн төлөө тэмцэж байна. Өөрийн стратегийг тодорхойлж, AWS түүнд хэрхэн нийцэж байгааг ойлгоход цаг гаргана уу.

Амжилттай AWS Landing Zone хэрэглэгчид стратеги тодорхойлохдоо дараахь зүйлд идэвхтэй анхаарлаа хандуулдаг.

  • Автоматжуулалт нь зүгээр л сонголт биш юм. Үүлэн автоматжуулалтыг илүүд үздэг.
  • Багууд үүлний нөөцөөр хангахын тулд ижил хэрэгсэлтэй ижил механикийг тогтмол ашигладаг. Terraform ашиглах нь дээр.
  • Хамгийн бүтээмжтэй үүлэн хэрэглэгчид дахин ашиглах боломжтой процессуудыг бий болгож, дахин ашиглах боломжтой кодын оронд дахин ашиглах боломжтой үйлчилгээ болгон хүргэх чадвартай байдаг. Сервергүй архитектурыг илүүд үздэг.

AWS буух бүсэд зориулсан Terraform модулийг танилцуулж байна

Хэдэн сарын шаргуу хөдөлмөрлөсний эцэст би танд танилцуулахдаа таатай байна AWS буух бүсэд зориулсан Terraform модуль. Эх код 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 буух бүсийн ашиглалтын тохиолдолтой таарч байгаа зүйлс;
  3. нэмэлт, өөрчлөлт оруулах s3://terraform-aws-landing-zone/mycompany таны блок руу S3 ба түлхүүр угтвар S3файлуудыг хаана хадгалах болно .tfvars (эсвэл файлуудын үнэмлэхүй зам .tfvars таны дотоод хадгалах санд).

Энэ модуль нь хэдэн арван, хэдэн зуу, мянга мянган байрлуулж болох бүрэлдэхүүн хэсгүүдтэй байж болох ч бүгдийг нь ашиглах ёсгүй, ашиглах ч үгүй. Ажиллах үед хувьсагчийн газрын зургийн хэсэг биш бүрэлдэхүүн хэсгүүд landing_zone_components үл тоомсорлох болно.

дүгнэлт

Бид үйлчлүүлэгчдэд үүлэн автоматжуулалтыг бий болгоход туслах хүчин чармайлтынхаа үр дүнг хуваалцахдаа баяртай бөгөөд бахархаж байна. AWS Landing Zone-д зориулсан Terraform модуль нь байгууллагуудад AWS-ийн шилдэг туршлагууд дээр суурилсан олон бүртгэлтэй аюулгүй AWS орчныг хурдан бий болгоход тусалдаг өөр нэг шийдэл юм. AWS нь маш хурдацтай хөгжиж байгааг бид сайн мэдэж байгаа бөгөөд бид бүх суурийг хамарсан, бусад AWS үйлдвэрлэлийн шийдлүүдтэй нэгтгэсэн терраформ шийдлийг хурдацтай хөгжүүлэхээр зорьж байна.

Тэгээд л болоо. Бид таны сэтгэгдлийг хүлээж, таныг урьж байна үнэгүй вэбинар дотор нь бид Бид Cloud Landing Zone домэйны архитектурын дизайныг судалж, үндсэн домайнуудын архитектурын хэв маягийг авч үзэх болно..

Эх сурвалж: www.habr.com

сэтгэгдэл нэмэх