Blog
Wie man ein AWS-Konto mit Terraform State Backend bootet

Wenn Sie mit Terraform eine Infrastruktur-CI/CD-Pipeline für AWS erstellen möchten, möchten Sie den Status in einem Remote-Backend aufbewahren. Bei der Bereitstellung einer Umgebung mit Terraform, die die State Backend-Ressourcen enthält, benötigen Sie zwei Aktionen, um das Remote State Backend einzurichten. In diesem Blog werde ich Ihnen eine CloudFormation-Vorlage vorstellen, mit der Sie das AWS-Konto booten können. Dadurch werden die State-Backend-Ressourcen von der Terraform-Vorlage entkoppelt. So können Sie das Remote-Backend direkt aus Ihrer CI/CD-Pipeline heraus nutzen.
Das Problem
Wenn Sie eine Umgebung mit Terraform bereitstellen, die die State Backend-Ressourcen enthält, müssen Sie zwei Aktionen durchführen, um das Remote State Backend einzurichten. Zunächst müssen Sie die Umgebung mit den State-Backend-Ressourcen bereitstellen. Als nächstes fügen Sie die State Backend-Konfiguration hinzu und kopieren den lokalen Status in den Remote-Status. Das bedeutet, dass Sie die erste terraform apply nicht über Ihre CI/CD-Pipeline ausführen können.
Die Lösung
Um dieses Problem zu lösen, können Sie das State Backend von der Terraform-Vorlage entkoppeln. Dies kann durch eine AWS CloudFormation-Vorlage für das Bootstrapping des AWS-Kontos geschehen. Die Vorlage besteht aus einem S3 Bucket, einem Replikations-Bucket und einer DynamoDB-Tabelle. Nach dem Bootstrapping ist Terraform in der Lage, den Status beim ersten Lauf an das Remote-Backend zu übertragen. Dies kann hilfreich sein, wenn Sie Terraform zum ersten Mal von einer CD/CD-Pipeline aus starten, ohne den Status verschieben zu müssen.
CloudFormation Vorlage
Die folgende CloudFormation-Vorlage löst das Problem, da sie alle im folgenden Diagramm gezeigten Ressourcen erstellt:

it features:
- S3 Server-seitige Verschlüsselung im Ruhezustand
- S3 Bucket Versionierung
- Serverseitige DynamoDB-Verschlüsselung
- Unterstützung mehrerer Regionen für die Bucket-Replikation
- Alle öffentlichen Zugänge sind gesperrt
- Keine kontoübergreifende Unterstützung
Fazit
In diesem Blog habe ich Ihnen eine CloudFormation-Vorlage vorgestellt, die Sie verwenden können, um ein neues AWS-Konto mit einem State-Backend zu erstellen. Wenn Sie die Vorlage bei der Erstellung des AWS-Kontos anwenden, sind keine manuellen Schritte für die (erneute) Bereitstellung Ihrer Infrastruktur mit Terraform erforderlich.
Verfasst von

Tibor Hercz
Tibor is a Cloud Consultant specialized in AWS with a strong background in Software engineering and has a passion for Compute, Networking and Security. His goal is to create simple Cloud Solutions that increases the efficiency and overall happiness of the teams and business. Sharing knowledge is important to him, so you will see him blogging and sharing knowledge about solutions he has built.
Unsere Ideen
Weitere Blogs
Contact



