Vorstellung des programmierbaren Terraform-Moduls für die AWS-Landezone

Hallo allerseits! Im Dezember startet OTUS einen neuen Kurs - Cloud Solution Architecture . Im Vorgriff auf den Beginn dieses Kurses teilen wir Ihnen die Übersetzung von interessantem Material zu diesem Thema mit.




AWS Landing Zone ist eine Lösung, mit der Kunden schnell eine sichere AWS-Umgebung mit mehreren Konten einrichten können, die auf Best Practices basiert.

Seit mehr als fünf Jahren arbeitet unser Team der Mitoc-Gruppe unermüdlich daran, großen Unternehmen zu helfen, ihre digitale Präsenz erfolgreich digital zu transformieren und zu erstellen oder in die AWS-Cloud zu migrieren. Mit anderen Worten, unter Berufung auf unsere AWS-Freunde: „Unsere Kunden entdecken sich mit AWS wieder.“ Dies ist eine endlose Anstrengung, die Mechanik im Namen der Kunden selbst neu zu erfinden und zu vereinfachen, und AWS leistet hervorragende Arbeit bei der Lösung komplexer Probleme mit einfach zu erlernenden Lösungen.


AWS-Landezone ( Quelle )

Was ist die AWS-Landezone?


Nach Angaben einer amtlichen Quelle:

AWS Landing Zone ist eine Lösung, mit der Kunden schnell eine sichere AWS-Umgebung mit mehreren Konten einrichten können, die auf den Best Practices von AWS basiert. Bei einer Vielzahl von Optionen kann das Einrichten einer Umgebung mit mehreren Konten viel Zeit in Anspruch nehmen sowie das Einrichten mehrerer Konten und Dienste und erfordert ein tiefes Verständnis der AWS-Dienste.

Die AWS Landing Zone-Lösung hat die Komplexität und Konsistenz ähnlicher Entwurfsmuster, die verschiedenen Kunden zur Verfügung gestellt werden, erheblich verringert. Andererseits musste unser Team einige CloudFormation-Komponenten als Terraform-Komponenten neu konfigurieren, um sie für die Automatisierung weiter zu verwenden.

Wir haben uns also gefragt, warum wir nicht die gesamte AWS Landing Zone-Lösung in Terraform erstellen sollten. Können wir das und lösen wir damit die Probleme unserer Kunden? Spoiler: entscheidet und entscheidet schon! :)

Wann sollten Sie AWS Landing Zone nicht verwenden?


Wenn Sie mit regulären Cloud-Diensten und Cloud-Ressourcen mit einem oder zwei AWS-Konten arbeiten, sind diese Schritte möglicherweise nicht erforderlich. Wer nicht zu diesem Artikel gehört, kann weiterlesen :)

Was ist vor Arbeitsbeginn zu beachten?


Viele der großen Unternehmen, mit denen wir zusammengearbeitet haben, haben bereits eine Strategie für den Einsatz von Cloud-Technologien. Unternehmen kämpfen für die erfolgreiche Implementierung von Cloud-Diensten ohne eine klare Vision und erklärten Erwartungen. Bitte nehmen Sie sich die Zeit, um Ihre Strategie festzulegen und zu verstehen, wie sich AWS in diese einfügt.

Bei der Entscheidung für eine Strategie konzentrieren sich erfolgreiche AWS Landing Zone-Kunden aktiv auf Folgendes:

  • Automatisierung ist einfach keine Option. Eine native Cloud-Automatisierung wird bevorzugt.
  • Die Teams verwenden für die Vorbereitung der Cloud-Ressourcen stets dieselben Mechanismen mit denselben Tools. Besser Terraform verwenden.
  • Die produktivsten Benutzer von Cloud-Diensten können wiederverwendbare Prozesse erstellen und als wiederverwendete Dienste anstelle von wiederverwendetem Code bereitstellen. Serverlose Architektur wird bevorzugt.

Einführung des Terraform-Moduls für die AWS-Landezone


Nach Monaten harter Arbeit freue ich mich, das Terraform-Modul für AWS Landing Zone einzuführen. Der Quellcode wird auf GitHub gespeichert und stabile Release-Versionen werden in der Terraform Module Registry veröffentlicht.

Um main.tf , main.tf Sie einfach main.tf in Ihren Code ein:

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

Hinweis: outputs.tf Sie sicher, dass Sie variables.tf und alles, was von outputs.tf nützlich sein kann, outputs.tf .

Um das Verständnis zu erleichtern, haben wir terraform.tfvars Standardwerte hinzugefügt:

 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" [...] } 

Dies bedeutet, dass Sie für die Verwendung dieses terraform Moduls Folgendes benötigen:

  1. Ändern Sie account_id und region in Ihre eigenen, die den Daten in AWS Organization entsprechen.
  2. Ändern Sie landing_zone_components entsprechend Ihrer Nutzung der AWS- landing_zone_components .
  3. Ändern Sie s3://terraform-aws-landing-zone/mycompany in Ihren S3- Block und in das S3- Schlüsselpräfix, in dem Sie die .tfvars Dateien (oder den absoluten Pfad zu den .tfvars Dateien in Ihrem lokalen Speicher) speichern.

Dieses Modul kann Dutzende, Hunderte oder Tausende von bereitstellbaren Komponenten enthalten, aber nicht alle müssen und werden bereitgestellt. Zur Laufzeit werden Komponenten, die nicht Teil der Variablenzuordnung landing_zone_components sind, ignoriert.

Fazit


Wir freuen uns sehr und sind stolz darauf, die Früchte unserer Bemühungen zu teilen, Kunden bei der Erstellung einer nativen Cloud-Automatisierung zu unterstützen. Das Terraform-Modul für die AWS-Landezone ist eine weitere Lösung, mit der Unternehmen schnell eine sichere AWS-Umgebung mit mehreren Konten einrichten können, die auf den Best Practices von AWS basiert. Wir sind uns bewusst, dass AWS wahnsinnig schnell wächst, und wir bemühen uns auch, schnell eine Terraform-Lösung zu entwickeln, die alle Grundlagen abdeckt und in andere AWS-Arbeitslösungen integriert ist.

Das ist alles. Wir freuen uns auf Ihre Kommentare und laden Sie zu einem kostenlosen Webinar ein, in dessen Rahmen wir den Entwurf der Architektur der Cloud Landing Zone-Domäne untersuchen und die Architekturvorlagen der Hauptdomänen berücksichtigen .

Source: https://habr.com/ru/post/de479344/


All Articles