Ressourcen mit Terraform anlegen
Ziele
- Sie erstellen einen "Access Token" für den Zugriff über die AWS-API
- Sie lernen grundlegende Befehle für Terraform kennen.
- Sie erstellen eine Subnet Group über Terraform.
- Zerstören der erstellten Infrastruktur
Optional:
- Eine RDS DB Instanz mit Terraform erstellen.
Hilfsmittel
- Sollten Sie Probleme haben die Aufgaben zu lösen, finden Sie bei jeder Aufgabe einen ausklappbaren Block, in dem der Lösungsweg beschrieben wird.
- Versuchen Sie die Aufgaben erst einmal ohne die Lösungshilfen zu bearbeiten.
Aufage 1 - AWS Access Token erstellen
Erstellen Sie einen neuen Access Token für Ihren Account über das IAM Access Management.
Lösung (Klicken Sie auf den Pfeil, falls Sie nicht weiterkommen)
- Navigieren Sie über die Suchleiste zu den IAM Einstellungen.
- Klicken Sie im linken Menü auf Users im Bereich Access Management.
- Wählen Sie Ihren User aus: Student
- Wechseln Sie auf den Reiter: Security Credentials
- Scrollen Sie zum Punkt Access keys und wählen Sie Create access key aus.
Wichtig!
Schliessen Sie das neue Fenster nicht bevor Sie den Access key kopiert haben.
Dieser wird Ihnen nur einmal angezeigt. Sollten Sie das Fenster trotzdem geschlossen oder verloren haben, müssen Sie einen neuen Access key erstellen.
- Kopieren Sie sich sowohl die Access key ID als auch den Secret access key in die Datei
secret.auto.tfvarsin ihrer VS Code Instanz im Pfadterraform.
Aufgabe 2 - Terraform initialisieren
Prüfen Sie die Angaben in den Dateien secret.auto.tfvars, user.auto.tfvars. Navigieren Sie in einem Terminal in den Terraform Pfad und führen Sie ein terraform init aus. Prüfen Sie kurz ob es Probleme gab beim Initialisieren. Planen Sie anschließend das Erstellen der Grundstruktur mit terraform plan und überprüfen Sie auch hier die Ausgabe auf Probleme. Erstellen Sie anschließend die Infrastruktur mit dem Befehl terraform apply.
Lösung (Klicken Sie auf den Pfeil, falls Sie nicht weiterkommen)
- Prüfen Sie die Eingaben in der Datei
secret.auto.tfvarsimterraformPfad. Hier solle die Access key ID und der Secret access key eingetragen sein. - Prüfen Sie die Eingaben in der Datei
user.auto.tfvarsimterraformPfad. Hier sollten wiedererkennbare Werte eingetragen sein. z.B.:- environment:
terraform-handson - organisation:
meine-organization
- environment:
- Öffnen Sie ggf. über das Menü Links oben ein neues Terminal falls Sie kein aktives Terminal haben sollten.
- Navigieren Sie in den terraform-Pfad:
cd ~/workspace/terraform - Führen Sie
terraform initaus und prüfen Sie anschließend, ob es ohne Fehler durchgeführt wurde. - Führen Sie den Befehl
terraform applyaus und prüfen Sie kurz die Ausgabe auf Fehler. Bestätigen Sie anschließend mityesdas Terraform die Infrastruktur auf AWS erstellen soll. - Warten Sie bis die Infrastruktur angelegt wurde.
Aufgabe 3 - DB Subnet Group anlegen
Legen Sie in der Datei network.tf eine neue Subnet Group für eine RDS MySQL Datenbank an. Es sollen die Ressourcen: private-subnet-a, private-subnet-b, private-subnet-c in dieser Subnet Group verwendet werden.
Weitere Informationen finden Sie in der offiziellen Dokumentation: https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/db_subnet_group
Lösung (Klicken Sie auf den Pfeil, falls Sie nicht weiterkommen)
- Öffnen Sie die Datei
network.tfim VS Code Editorfenster. - Fügen Sie dort diesen Codeblock ein:
resource "aws_db_subnet_group" "rds-subnet-group" { name = "my-rds-subnet-group" subnet_ids = [ aws_subnet.private-subnet-a.id, aws_subnet.private-subnet-b.id, aws_subnet.private-subnet-c.id ] tags = { Name = "my-rds-subnet-group" } } - Passen Sie ggf. die Werte:
namesowie den TagNamean. - Planen und wenden Sie die Änderungen mit den Befehlen
terraform plansowieterraform applyan. - Sie können nun auch in der AWS Konsole prüfen ob die Subnet Group angelegt wurde unter: RDS/Subnet Groups.
Aufgabe 4 (optional) - RDS MySQL Instanz anlegen
Wenn Sie noch Zeit haben, können Sie versuchen eine Datenbank Instanz über Terraform zu erstellen. Legen Sie die Ressource in der Datei rds.tf an.
Mehr Informationen zu RDS Instanzen mit Terraform finden Sie in der offiziellen Dokumentation: https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/db_instance
Aufgabe 5 - Zerstören
Wenden Sie terraform destroy an und zerstören Sie die Infrastruktur.