Terraform

Infrastructure as Code

Dieser Kurs vermittelt die Grundlagen von Infrastructure as Code (IaC) mit Terraform auf praktische Weise. Du lernst die Funktionen von Terraform durch einen praktischen Ansatz kennen. Jedes Feature, das wir einführen, wird mit einem AWS-Dienst verwendet, damit du sehen kannst, wie es in der Praxis funktioniert. Die Open-Source-Version von Terraform wird verwendet, damit du sofort loslegen kannst. Ein gewisses Vorwissen über AWS wird empfohlen, ist jedoch nicht zwingend erforderlich. Jeder AWS-Dienst in diesem Kurs wird schnell und praxisorientiert vorgestellt. Nach Abschluss dieses Trainings wirst du ein gutes Verständnis der Dos und Don'ts von Terraform haben. Du hast wertvolle Erfahrungen mit der Verwendung von AWS-Services in Verbindung mit Terraform gesammelt, einschließlich Szenarien, die für den Einsatz in der Produktion geeignet sind.

Voraussetzungen

Grundlegende Kenntnisse über die AWS-Cloud. Der Kurs richtet sich an Entwickler, Systemadministratoren und DevOps-Profis, die die Konzepte und Anwendung von Terraform in AWS-Cloud-Umgebungen erlernen möchten.

Inhalt

Übersicht

  • Herausforderungen in der Infrastruktur und Projekten
  • Was ist Terraform?
  • Was ist Idempotenz?
  • Vorteile von Terraform 1.x
  • Alternative Open Terraform 1.x und die tatsächliche Open Source Lizenz

Installation und erste Schritte

  • Voraussetzungen, AWS-Konto, Anmeldeinformationen
  • Einrichtung / Installation von Terraform
  • Verbindung zu AWS - kennenlernen der Provider
  • Grundlegende Dateistruktur für Terraform-Projekte (Best Practices inklusive .gitignore)
  • Schreiben Sie Code für Ihre erste AWS-Ressource (Einfache EC2-Instanz mit Bereitstellung eines Webservers)
  • Erstellen Sie die grundlegende IaC-Schleife zum Erstellen, Aktualisieren und Löschen von Ressourcen.
  • Fügen Sie einer Ressource weitere Attribute hinzu (wie Labels)
  • Wie man Konfigurationsdrift mit Terraform verwaltet
  • Was ist eine Statusdatei und warum ist sie wichtig?

Starten einer realen AWS-Bereitstellung mit einer VPC

  • Grundlegende Architektur in AWS
  • Erstellen Sie Ihre Virtual Private Cloud
  • Erstellen Sie Subnetze (öffentlich/privat)
  • Erstellen Sie ein Internet-Gateway
  • Erstellen Sie eine Routing-Tabelle
  • Testen Sie alles mit der Bereitstellung einer EC2-Instanz

Weiter mit IaaS - EC2-Instanzen mit Terraform

  • Erstellen Sie eine EC2-Instanz
  • Erstellen Sie erforderliche Sicherheitsgruppen
  • Erstellen Sie Sicherheitsgruppen mit dynamischen Blöcken
  • Verwendung von Instanzattributen wie "user_data" für die Anpassung.
  • Holen Sie sich mehr als eine Kopie einer Ressource
  • Erstellen Sie eine detaillierte Überwachung mit CloudWatch
  • Erstellen Sie einen CloudWatch-Alarm für einen Schwellenwert
  • Erstellen Sie eine Auto Scaling-Gruppe für die EC2-Instanzen
  • Erstellen Sie einen Application Load-Balancer für den Instanz-Pool (TargetGroup)

Terraform-Variablen

  • Erstellen Sie dynamischere Terraform-Bereitstellungen mit Variablen
  • Variablentypen (Umgebung, Dateien, Befehlszeile)
  • Kennenlernen der grundlegenden Typen
    • Zahl
    • Zeichenkette
    • Boolean
  • Weitere fortgeschrittene Strukturen
    • Liste
    • Karten
    • Objekte
    • Tupel
  • Eingabe- und Ausgabevariablen
  • Refaktorisieren Sie die Lösung mit Variablen für dynamische Bereitstellungen

Datenquellen und Terraform

  • Zweck einer Datenquelle
  • Verwendung von Datenquellen für EC2-AMI
  • Verwendung von Datenquellen für VPC-Metadaten

AWS S3 mit Terraform

  • Erstellen Sie S3-Buckets
  • Erstellen Sie Bucket-Richtlinien
  • Erstellen Sie Bucket-Richtlinien mit Vorlagenfunktionen
  • Laden Sie Daten in Buckets hoch
  • Hosten Sie statische Websites mit S3

Terraform Remote-State-Dateien mit S3

  • Arbeiten mit Remote-State-Dateien
  • Verwendung von Statusdateien in einem Remote-Bucket (S3)

AWS IAM mit Terraform

  • Übersicht über IAM in AWS
  • Wie man Benutzer erstellt
  • Wie man benutzerdefinierte Richtlinien erstellt
  • Wie man Identitätsrollen/Ressourcenrollen erstellt
  • Wie man eine Rolle annimmt

AWS Route53 mit Terraform

  • Vorteile von Route53 für DNS
  • Neue DNS-Einträge für eine Zone erstellen
  • Verwendung von Datenquellen für DNS-Zonen
  • Verknüpfen Sie Ihr Hosting einer statischen Website mit einem benutzerfreundlichen DNS-Namen

AWS Relational Database Services (RDS) mit Terraform

  • Vorteile von verwalteten Datenbanken
  • Allgemeine Voraussetzungen für die RDS-Bereitstellung (Sicherheitsgruppen, VPC, DB-Typ, Backup)
  • Erstellen Sie Ihre RDS-Instanz mit Terraform (MySQL)

Verwenden Sie Terraform mit verschiedenen Umgebungen (Dev/Stage/Prod)

  • Einführung in Workspaces
  • Verwendung unterschiedlicher Werte für verschiedene Workspaces
  • Erstellen Sie einen Entwicklungs- und Produktions-Workspace
  • Verwendung unterschiedlicher Workspaces mit Remote-States

Kurszeiten

Wer möchte, reist bis 22 Uhr am Vortag an und nutzt den Abend bereits zum Fachsimpeln am Kamin oder im Park.

An den Kurstagen dann von 9-18 Uhr (mit 2 Kaffee- und 1 Mittagspause) etwa 60% Schulungen und 40% Übungen. Selbstverständlich arbeitet jeder Teilnehmer am von uns gestellten Notebook oft parallel zum Referenten mit.

Anschließend Abendessen und Angebote für Fachsimpeln, Ausflüge uvm. Wir schaffen eine Atmosphäre, in der Fachleute sich ungezwungen austauschen. Wer das nicht will, wird zu nichts gezwungen und findet auch jederzeit Ruhe.