Terraform модулунда программалануучу AWS конуу аймагын киргизүү

Баарына салам! Декабрда OTUS жаңы курсун ачат - Cloud Solution Архитектурасы. Бул курстун башталышын утурлай, биз сиздер менен тема боюнча кызыктуу материалдын котормосун бөлүшөбүз.

Terraform модулунда программалануучу AWS конуу аймагын киргизүү

AWS конуу зонасы кардарларга мыкты тажрыйбалардын негизинде коопсуз, көп эсептик AWS чөйрөсүн тез орнотууга жардам берген чечим.

Беш жылдан ашык убакыттан бери биздин Mitoc Group тобу чоң уюмдарга санариптик изин AWS булутуна ийгиликтүү санарип трансформациялоого жана курууга же көчүрүүгө жардам берүү үчүн талыкпай иштеп келет. Башкача айтканда, AWSдеги досторубуздан цитата келтирүү үчүн: "Биздин кардарлар AWS менен өздөрүн кайра ойлоп табышууда." Бул кардарлардын атынан механиканы кайра ойлоп табуу жана жөнөкөйлөштүрүү үчүн бүтпөгөн күч-аракет жана AWS үйрөнүүгө оңой чечимдер менен татаал маселелерди чечүү боюнча мыкты жумуш аткарат.

Terraform модулунда программалануучу AWS конуу аймагын киргизүү
AWS конуу зонасы (булак)

AWS Landing Zone деген эмне?

Расмий булактан алынган маалыматка караганда:

AWS Landing Zone - бул кардарларга AWS мыкты тажрыйбаларынын негизинде бир нече аккаунттар менен коопсуз AWS чөйрөсүн тез орнотууга жардам берген чечим. Көптөгөн варианттар менен, көп эсептик чөйрөнү орнотуу көп убакытты талап кылышы мүмкүн, бир нече аккаунттарды жана кызматтарды конфигурациялоону камтыйт жана AWS кызматтарын терең түшүнүүнү талап кылат.

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

Ошентип, биз өзүбүзгө суроо бердик, эмне үчүн Терраформда AWS Landing Zone чечимин толугу менен курбайбыз? Биз муну кыла алабызбы жана бул биздин кардарлардын көйгөйлөрүн чече алабы? Спойлер: ал чечет жана чечип жатат! 🙂

Качан AWS Landing Zone колдонбошуңуз керек?

Эгер сиз бир же эки AWS каттоо эсебинин ичинде кадимки булут кызматтары жана булут ресурстары менен алектенип жатсаңыз, бул чаралар ашыкча болушу мүмкүн. Бул пунктка тиешеси жок адам окууну уланта алат :)

Жумушка киришерден мурун эмнени эске алуу керек?

Биз менен иштешкен көптөгөн ири уюмдарда кандайдыр бир булут стратегиясы бар. Компаниялар булут кызматтарын так көз карашы жана күтүүсүз ийгиликтүү ишке ашыруу үчүн күрөшүп жатышат. Сураныч, стратегияңызды аныктоого жана AWS ага кандайча туура келерин түшүнүүгө убакыт бөлүңүз.

Стратегияны белгилөөдө ийгиликтүү AWS Landing Zone кардарлары төмөнкүлөргө активдүү көңүл бурушат:

  • Автоматташтыруу жөн эле вариант эмес. Булуттагы жергиликтүү автоматташтыруу артыкчылыктуу.
  • Командалар ырааттуу түрдө булут ресурстарын камсыз кылуу үчүн бир эле аспаптардын топтому менен бирдей механиканы колдонушат. Терраформды колдонгон жакшы.
  • Эң өндүрүмдүү булут колдонуучулары кайра колдонууга жарамдуу процесстерди түзүп, аларды кайра колдонулуучу коддун ордуна кайра колдонууга боло турган кызматтар катары жеткирүү мүмкүнчүлүгүнө ээ. Серверсиз архитектурага артыкчылык берилет.

AWS конуу зонасы үчүн Terraform модулун киргизүү

Бир нече ай бою талыкпай эмгектенгенден кийин, мен сиздерге тартуулаганыма кубанычтамын AWS конуу зонасы үчүн Terraform модулу. Баштапкы код GitHubда сакталат жана туруктуу чыгаруу версиялары Terraform модулунун реестринде жарыяланган.

Баштоо үчүн жөн гана күйгүзүңүз 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 этибарга алынбайт.

жыйынтыктоо

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

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

Source: www.habr.com

Комментарий кошуу