Przedstawiamy programowalną strefę docelową AWS w module Terraform

Cześć wszystkim! W grudniu OTUS uruchamia nowy kurs — Architektura rozwiązań chmurowych. Przed rozpoczęciem kursu dzielimy się z wami tłumaczeniem interesującego materiału na ten temat.

Przedstawiamy programowalną strefę docelową AWS w module Terraform

AWS Landing Zone to rozwiązanie, które pomaga klientom szybko skonfigurować bezpieczne środowisko AWS z wieloma kontami, opierając się na najlepszych praktykach.

Od ponad pięciu lat nasz zespół w Mitoc Group nieustannie pracuje nad tym, aby pomagać dużym organizacjom skutecznie przeprowadzać transformację cyfrową oraz budować lub przenosić swój cyfrowy ślad do chmury AWS. Innymi słowy, parafrazując naszych przyjaciół z AWS: „Nasi klienci na nowo odkrywają siebie z AWS”. To niekończące się wysiłki w celu przemyślenia i uproszczenia mechanik w imieniu samych klientów, a AWS świetnie radzi sobie z rozwiązywaniem złożonych problemów przy pomocą łatwych w przyswojeniu rozwiązań.

Przedstawiamy programowalną strefę docelową AWS w module Terraform
AWS Landing Zone (ClickHouse-Ninja/Proton)

Czym jest AWS Landing Zone?

Jak mówi informacja z oficjalnego źródła:

AWS Landing Zone to rozwiązanie, które pomaga klientom szybciej konfigurować bezpieczne środowisko AWS z wieloma kontami, opierając się na najlepszych praktykach AWS. Przy dużej liczbie opcji, konfigurowanie środowiska z wieloma kontami może zająć znaczną ilość czasu oraz wymagać skonfigurowania wielu kont i usług, co wymaga głębokiego zrozumienia działania usług AWS.

Rozwiązanie AWS Landing Zone znacznie uprościło złożoność i spójność podobnych do siebie wzorców projektowych, które są dostarczane różnym klientom. Z drugiej strony, nasz zespół musiał przystosować niektóre komponenty CloudFormation na komponenty Terraform, aby można je było dalej automatyzować.

Dlatego zadaliśmy 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? Spojler: rozwiązuje i już rozwiązuje! 🙂

Kiedy nie warto używać AWS Landing Zone?

Jeśli masz do czynienia z typowymi usługami chmurowymi i zasobami chmurowymi w ramach jednego lub dwóch kont AWS, te środki mogą okazać się zbędne. Ci, którzy do tego punktu się nie odnoszą, mogą kontynuować czytanie 🙂

Na co należy zwrócić uwagę przed rozpoczęciem pracy?

Wiele dużych organizacji, z którymi współpracowaliśmy, ma już jakąś strategię wykorzystania technologii chmurowych. Firmy zmagają się z udanym wdrożeniem usług chmurowych, nie mając jasnej wizji i sformułowanych oczekiwań. Proszę, poświęć czas na określenie swojej strategii i zrozumienie, jak AWS w nią wpisuje.

Określając strategię, udani klienci AWS Landing Zone aktywnie zwracają uwagę na następujące aspekty:

  • Prosta automatyzacja to nie opcja. Preferowana jest natywna automatyzacja chmurowa.
  • Zespoły konsekwentnie korzystają z tych samych mechanizmów z tym samym zestawem narzędzi do przygotowywania zasobów chmurowych. Lepiej używać Terraform.
  • Najbardziej produktywni użytkownicy usług chmurowych mają możliwość tworzenia procesów do wielokrotnego użytku i udostępniania ich jako usługi do wielokrotnego użytku zamiast kodu do wielokrotnego użytku. Preferowane jest wykorzystanie architektury bezserwerowej.

Przedstawiamy moduł Terraform dla AWS Landing Zone

Po kilku miesiącach intensywnej pracy z przyjemnością przedstawiam Państwu moduł Terraform dla AWS Landing Zone. Kod źródłowy jest przechowywany na GitHubie, a stabilne wersje wydań są publikowane w Terraform Module Registry.

Aby rozpocząć pracę, wystarczy dodać main.tf do swojego 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: nie zapomnij dodać variables.tf i wszystkiego, co może Ci się przydać z outputs.tf.

Aby ułatwić zrozumienie, dodaliśmy wartości domyślne do 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 będziesz musiał:

  1. Zmienić wartości account_id i region na własne, które odpowiadają danym w AWS Organization;
  2. Zmienić wartości landing_zone_components na te, które odpowiadają Twojemu przypadkowi użycia AWS Landing Zone;
  3. Edytuj s3://terraform-aws-landing-zone/mycompany na swój blok S3 i prefiks klucza S3, gdzie będziesz przechowywać pliki .tfvars (lub bezwzględna ścieżka do plików .tfvars w Twoim lokalnym przechowywaniu).

Ten moduł może mieć dziesiątki, setki lub tysiące wdrażanych komponentów, ale nie wszystkie muszą i będą wdrożone. W czasie realizacji komponenty, które nie są częścią mapy zmiennych landing_zone_components zostaną zignorowane.

Podsumowanie

Jesteśmy bardzo zadowoleni i dumni, że możemy dzielić się owocami naszych wysiłków, które pomagają klientom w tworzeniu natywnej automatyzacji w chmurze. Moduł Terraform dla AWS Landing Zone to kolejne rozwiązanie, które umożliwia organizacjom szybsze skonfigurowanie bezpiecznego środowiska AWS z wieloma kontami, opierając się na najlepszych praktykach AWS. Doskonale rozumiemy, że AWS rozwija się niezwykle szybko, i dążymy do równie szybkiego rozwijania rozwiązania Terraform, które obejmuje wszystkie podstawy oraz integruje się z innymi działającymi rozwiązaniami AWS.

To wszystko. Czekamy na Wasze komentarze i zapraszamy na bezpłatnym webinarze w ramach którego my przyjrzymy się projektowaniu architektury domeny Cloud Landing Zone i omówimy architektoniczne wzorce kluczowych domen..

Źródło: habr.com

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster