Introductie van programmeerbare AWS Landing Zone in een Terraform-module

Dag Allemaal! In december lanceert OTUS een nieuwe cursus - Architectuur van cloudoplossingen. Vooruitlopend op de start van deze cursus delen we een vertaling van interessant materiaal over dit onderwerp met u.

Introductie van programmeerbare AWS Landing Zone in een Terraform-module

AWS-landingszone is een oplossing waarmee klanten snel een veilige AWS-omgeving met meerdere accounts kunnen opzetten op basis van best practices.

Al meer dan vijf jaar werkt ons team bij Mitoc Group onvermoeibaar om grote organisaties te helpen bij het succesvol digitaal transformeren en bouwen of migreren van hun digitale voetafdruk naar de AWS-cloud. Met andere woorden, om onze vrienden bij AWS te citeren: “Onze klanten vinden zichzelf opnieuw uit met AWS.” Het is een nooit aflatende inspanning om de mechanismen namens de klanten zelf opnieuw uit te vinden en te vereenvoudigen, en AWS doet uitstekend werk bij het oplossen van complexe problemen met eenvoudig te leren oplossingen.

Introductie van programmeerbare AWS Landing Zone in een Terraform-module
AWS-landingszone (bron)

Wat is AWS-landingszone?

Volgens informatie van een officiële bron:

AWS Landing Zone is een oplossing waarmee klanten snel een veilige AWS-omgeving met meerdere accounts kunnen opzetten op basis van AWS best practices. Met zoveel opties kan het opzetten van een omgeving met meerdere accounts tijdrovend zijn, het configureren van meerdere accounts en services met zich meebrengen en een diepgaand begrip van AWS-services vereisen.

AWS Landing Zone heeft de complexiteit en consistentie van vergelijkbare ontwerppatronen die aan verschillende klanten worden geleverd aanzienlijk verminderd. Aan de andere kant moest ons team een ​​aantal CloudFormation-componenten opnieuw configureren als Terraform-componenten om ze verder te kunnen gebruiken voor automatisering.

Dus vroegen we ons af: waarom bouwen we niet de volledige AWS Landing Zone-oplossing in Terraform? Kunnen wij dit en lost dit de problemen van onze klanten op? Spoiler: het zal en is nu al beslissend! 🙂

Wanneer mag u AWS Landing Zone niet gebruiken?

Als je te maken hebt met reguliere clouddiensten en cloudbronnen binnen één of twee AWS-accounts, kunnen deze maatregelen overdreven zijn. Iedereen die dit punt niet herkent, kan verder lezen :)

Waar moet u aan denken voordat u aan het werk gaat?

Veel van de grote organisaties waarmee we hebben samengewerkt, hebben al een of andere cloudstrategie geïmplementeerd. Bedrijven hebben moeite om clouddiensten succesvol te implementeren zonder een duidelijke visie en verwachtingen. Neem de tijd om uw strategie te definiëren en te begrijpen hoe AWS daarin past.

Bij het bepalen van een strategie richten succesvolle AWS Landing Zone-klanten zich actief op het volgende:

  • Automatisering is simpelweg geen optie. Cloud-native automatisering heeft de voorkeur.
  • Teams gebruiken consequent dezelfde mechanismen met dezelfde set tools om cloudbronnen in te richten. Het is beter om Terraform te gebruiken.
  • De meest productieve cloudgebruikers hebben de mogelijkheid om herbruikbare processen te creëren en deze te leveren als herbruikbare services in plaats van herbruikbare code. Serverloze architectuur heeft de voorkeur.

Introductie van de Terraform-module voor AWS Landing Zone

Na een aantal maanden hard werken, ben ik blij om het aan u voor te stellen Terraform-module voor AWS Landing Zone. Bron wordt opgeslagen op GitHub, en stabiele releaseversies gepubliceerd in het Terraform Module Register.

Om aan de slag te gaan, hoeft u alleen maar aan te zetten main.tf naar jouw code:

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

Opmerking: Zorg ervoor dat u dit inschakelt variables.tf en alles wat u nodig heeft outputs.tf.

Om het begrijpelijker te maken, hebben we standaardwaarden toegevoegd 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"
  [...]
}

Dit betekent dat bij gebruik van deze module terraform heb je nodig:

  1. Verander waarden account_id и region naar uw eigen gegevens, die overeenkomen met de gegevens in de AWS-organisatie;
  2. Verander waarden landing_zone_components degenen die overeenkomen met uw AWS Landing Zone-gebruikscasus;
  3. amenderen s3://terraform-aws-landing-zone/mycompany naar jouw blok S3 en sleutelvoorvoegsel S3waar u de bestanden opslaat .tfvars (of absoluut pad naar bestanden .tfvars in uw lokale opslag).

Deze module kan tientallen, honderden of duizenden inzetbare componenten bevatten, maar deze moeten of zullen niet allemaal worden geïmplementeerd. Tijdens runtime: componenten die geen deel uitmaken van de variabelenkaart landing_zone_components zal worden genegeerd.

Conclusie

We zijn blij en trots om de vruchten te kunnen delen van onze inspanningen om klanten te helpen bij het bouwen van cloud-native automatisering. De Terraform-module voor AWS Landing Zone is een andere oplossing die organisaties helpt snel een veilige AWS-omgeving met meerdere accounts op te zetten op basis van AWS-best practices. We zijn ons er terdege van bewust dat AWS in een waanzinnig snel tempo groeit, en we zijn vastbesloten om snel een terraform-oplossing te ontwikkelen die alle basissen omvat en ook kan worden geïntegreerd met andere AWS-productieoplossingen.

Dat is alles. Wij wachten op uw opmerkingen en nodigen u uit om dat ook te doen gratis webinar waarbinnen wij Laten we het ontwerp van de Cloud Landing Zone-domeinarchitectuur bestuderen en de architecturale patronen van de hoofddomeinen bekijken.

Bron: www.habr.com

Voeg een reactie