Przedstawiamy programowalną strefę lądowania AWS w module Terraform

Cześć wszystkim! W grudniu OTUS uruchamia nowy kurs - Architektura rozwiązań chmurowych. W oczekiwaniu na rozpoczęcie tego kursu udostępniamy Państwu tłumaczenie ciekawych materiałów na ten temat.

Przedstawiamy programowalną strefę lądowania AWS w module Terraform

Strefa lądowania AWS to rozwiązanie, które pomaga klientom szybko skonfigurować bezpieczne, wielokontowe środowisko AWS w oparciu o najlepsze praktyki.

Przez ponad pięć lat nasz zespół w Mitoc Group niestrudzenie pracował, aby pomóc dużym organizacjom w skutecznej cyfrowej transformacji i budowaniu lub migracji ich cyfrowego śladu do chmury AWS. Innymi słowy, cytując naszych przyjaciół z AWS: „Nasi klienci odkrywają siebie na nowo dzięki AWS”. Wymyślanie na nowo i upraszczanie mechaniki na rzecz samych klientów to niekończący się wysiłek, a AWS wykonuje świetną robotę, rozwiązując złożone problemy za pomocą łatwych do nauczenia się rozwiązań.

Przedstawiamy programowalną strefę lądowania AWS w module Terraform
Strefa lądowania AWS (źródło)

Co to jest strefa lądowania AWS?

Według informacji z oficjalnego źródła:

AWS Landing Zone to rozwiązanie, które pomaga klientom szybko skonfigurować bezpieczne środowisko AWS z wieloma kontami w oparciu o najlepsze praktyki AWS. Przy tak wielu opcjach konfigurowanie środowiska z wieloma kontami może być czasochłonne, wiązać się z konfiguracją wielu kont i usług oraz wymagać głębokiego zrozumienia usług AWS.

Strefa lądowania AWS znacznie zmniejszyła złożoność i spójność podobnych wzorców projektowych dostarczanych różnym klientom. Z drugiej strony nasz zespół musiał ponownie skonfigurować niektóre komponenty CloudFormation jako komponenty Terraform, aby móc je dalej wykorzystywać do automatyzacji.

Zadaliśmy więc sobie pytanie, dlaczego nie zbudować całego rozwiązania AWS Landing Zone w Terraform? Czy możemy to zrobić i czy rozwiąże to problemy naszych klientów? Spoiler: tak będzie i już decyduje! 🙂

Kiedy nie należy korzystać ze strefy lądowania AWS?

Jeśli masz do czynienia ze zwykłymi usługami chmurowymi i zasobami chmurowymi w ramach jednego lub dwóch kont AWS, środki te mogą okazać się przesadą. Każdy, kto nie odnosi się do tego punktu, może czytać dalej :)

O czym należy pamiętać przed rozpoczęciem pracy?

Wiele dużych organizacji, z którymi współpracowaliśmy, ma już wdrożoną strategię dotyczącą chmury. Firmy mają trudności z skutecznym wdrażaniem usług w chmurze bez jasnej wizji i oczekiwań. Poświęć trochę czasu na zdefiniowanie swojej strategii i zrozumienie, jak AWS wpisuje się w nią.

Ustalając strategię, odnoszący sukcesy klienci AWS Landing Zone aktywnie skupiają się na następujących kwestiach:

  • Automatyzacja po prostu nie wchodzi w grę. Preferowana jest automatyzacja natywna w chmurze.
  • Zespoły konsekwentnie korzystają z tych samych mechanizmów i tego samego zestawu narzędzi do udostępniania zasobów w chmurze. Lepiej używać Terraformu.
  • Najbardziej produktywni użytkownicy chmury mają możliwość tworzenia procesów wielokrotnego użytku i dostarczania ich jako usług wielokrotnego użytku zamiast kodu wielokrotnego użytku. Preferowana jest architektura bezserwerowa.

Przedstawiamy moduł Terraform dla strefy lądowania AWS

Po kilku miesiącach ciężkiej pracy mam przyjemność zaprezentować Państwu Moduł Terraform dla Strefy Lądowania AWS. Kod źródłowy jest przechowywany w GitHubie i wersje stabilne opublikowane w rejestrze modułów Terraform.

Aby rozpocząć, po prostu włącz main.tf do twojego kodu:

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}"
}

Uwaga: pamiętaj o włączeniu variables.tf i wszystko, czego możesz potrzebować outputs.tf.

Aby ułatwić zrozumienie, dodaliśmy wartości domyślne 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"
  [...]
}

Oznacza to, że podczas korzystania z tego modułu terraform potrzebne będą:

  1. Zmiana wartości account_id и region na swój własny, co odpowiada danym w Organizacji AWS;
  2. Zmiana wartości landing_zone_components te, które pasują do Twojego przypadku użycia strefy docelowej AWS;
  3. zmianę s3://terraform-aws-landing-zone/mycompany do swojego bloku S3 i kluczowy przedrostek S3gdzie będziesz przechowywać pliki .tfvars (lub bezwzględna ścieżka do plików .tfvars w lokalnej pamięci).

Moduł ten może zawierać dziesiątki, setki lub tysiące możliwych do wdrożenia komponentów, ale nie wszystkie z nich powinny zostać wdrożone lub zostaną wdrożone. W czasie wykonywania komponenty, które nie są częścią mapy zmiennych landing_zone_components zostaną zignorowane.

wniosek

Jesteśmy podekscytowani i dumni, że możemy dzielić się owocami naszych wysiłków, aby pomóc klientom w tworzeniu automatyzacji natywnej w chmurze. Moduł Terraform dla AWS Landing Zone to kolejne rozwiązanie, które pomaga organizacjom szybko skonfigurować bezpieczne środowisko AWS z wieloma kontami w oparciu o najlepsze praktyki AWS. Doskonale zdajemy sobie sprawę, że AWS rozwija się w niesamowicie szybkim tempie i jesteśmy zaangażowani w szybki rozwój rozwiązania terraform, które obejmuje wszystkie podstawy, a także integruje się z innymi rozwiązaniami produkcyjnymi AWS.

To wszystko. Czekamy na Wasze komentarze i zapraszamy bezpłatne webinarium w ramach którego my Przeanalizujemy projekt architektury domeny Cloud Landing Zone i rozważymy wzorce architektoniczne głównych domen.

Źródło: www.habr.com

Dodaj komentarz