Automatisierung. Das war der wichtigste Eintrag in meinem Blog-Artikel zu 6 Ops-Prioritäten in einer Welt ohne Server. Meine Empfehlung damals: Tools für DevOps Deployment-Orchestrierung wie AWS CloudFormation meistern lernen. Genau dieses Thema beleuchte ich in diesem Artikel etwas genauer.

Bevor wir beginnen, wollen wir uns der grundlegenden Frage widmen: Was genau ist CloudFormation? Hierzu sehen wir uns die Beschreibung von AWS selbst an:

AWS CloudFormation ist eine Sprache zur Erfassung und Bereitstellung aller Infrastruktur-Ressourcen in Ihrer Cloud-Umgebung. Sie nutzen dabei eine einfache Textdatei zur automatischen und sicheren Modellierung und Bereitstellung aller Ressourcen, die Ihre Anwendungen regions- und kontenübergreifend benötigen. Diese Datei dient als zentrale Informationsquelle für Ihre Cloud-Umgebung.

All das mit nur einer Datei? Zu gut, um wahr zu sein eigentlich. Eigentlich. Denn wahr ist es allemal.

NEW RELIC + CLOUDWATCH: DIE INTEGRATION
cloudwatch logo
Setzen Sie noch heute auf CloudWatch-Monitoring am Optimum.
CloudWatch Quickstart installieren CloudWatch Quickstart installieren

Mit CloudFormation generieren Sie ganze AWS Service-Umgebungen. Mögliche Bestandteile sind Amazon Virtual Private Cloud (Amazon VPC), Amazon EC2, Amazon S3, Amazon EC2-Sicherheitsgruppen und viele mehr. CloudFormation-Vorlagen können zudem immer wieder flexibel neu verwendet werden, um auch komplexe Umgebungen in wenigen Klicks zu gestalten.

So viel zum Hintergrund von CloudFormation. Sehen wir uns nun ein einfaches Beispiel rund um eine Amazon Linux v2 T2-Instanz an, die automatisch den New Relic Infrastructure Monitoring-Agent installiert. Mit meinem Artikel möchte ich ein Design-Beispiel für CloudFormation-Scripts zeigen.

Programming fun!#?@

Bevor wir beginnen, an dieser Stelle noch ein kleiner Hinweis. Im Prinzip sind AWS CloudFormation-Dokumente recht unkompliziert. Beim Coding mit BASH oder Windows PowerShell kommt dann aber auch JSON zum Einsatz, und so werden zwei Debugging-Ebenen erforderlich – eine für JSON und eine weitere für das BASH- bzw. das PowerShell-Script.

Noch ein Tipp: Schreiben Sie das BASH- bzw. PowerShell-Script zuerst in einer Live-Umgebung. Validieren Sie seine Funktionalität und fügen Sie es dann Ihrem JSON-Dokument hinzu. An einigen Stellen müssen Sie den Code zwar ggf. nach wie vor durch Parameter ersetzen, aber immerhin reduzieren Sie den Debugging-Aufwand an dieser Stelle vorab.

Nun wollen wir aber direkt zur Tat schreiten.

So verwenden Sie die CloudFormation-Vorlage

1. Wählen Sie CloudFormation in der AWS Konsole aus (im Bereich „Management Tools“). 

2. Erstellen Sie einen neuen Stack über die Option Create Stack.

Mit CloudFormation generieren Sie ganze AWS Service-Umgebungen. Mögliche Bestandteile sind Amazon Virtual Private Cloud (Amazon VPC), Amazon EC2, Amazon S3, Amazon EC2-Sicherheitsgruppen und viele mehr. CloudFormation-Vorlagen können zudem immer wieder flexibel neu verwendet werden, um auch komplexe Umgebungen in wenigen Klicks zu gestalten.

So viel zum Hintergrund von CloudFormation. Sehen wir uns nun ein einfaches Beispiel rund um eine Amazon Linux v2 T2-Instanz an, die automatisch den New Relic Infrastructure Monitoring-Agent installiert. Mit meinem Artikel möchte ich ein Design-Beispiel für CloudFormation-Scripts zeigen.

Programming fun!#?@

Bevor wir beginnen, an dieser Stelle noch ein kleiner Hinweis. Im Prinzip sind AWS CloudFormation-Dokumente recht unkompliziert. Beim Coding mit BASH oder Windows PowerShell kommt dann aber auch JSON zum Einsatz, und so werden zwei Debugging-Ebenen erforderlich – eine für JSON und eine weitere für das BASH- bzw. das PowerShell-Script.

Noch ein Tipp: Schreiben Sie das BASH- bzw. PowerShell-Script zuerst in einer Live-Umgebung. Validieren Sie seine Funktionalität und fügen Sie es dann Ihrem JSON-Dokument hinzu. An einigen Stellen müssen Sie den Code zwar ggf. nach wie vor durch Parameter ersetzen, aber immerhin reduzieren Sie den Debugging-Aufwand an dieser Stelle vorab.

Nun wollen wir aber direkt zur Tat schreiten.

So verwenden Sie die CloudFormation-Vorlage

1. Wählen Sie CloudFormation in der AWS Konsole aus (im Bereich „Management Tools“). 

2. Erstellen Sie einen neuen Stack über die Option Create Stack.

https://kupsand.s3.amazonaws.com/NewRelic/NR-Infra-CloudFormation.json

4. Wählen Sie die Option Next. In der Ansicht Specify stack details geben Sie dem Stack dann einen für Ihren Kontext sinnvollen Namen, z. B. NR-infrastructure.

5. Wählen Sie dann die AWS Konfigurationselemente für den Schlüsselnamen (Ihr Schlüsselpaar), den Instanztyp und den SSH-Standort.

Bitte beachten: Ihr SSH-Standort sollte im Gesamtverlauf nicht zugänglich sein. Im Screenshot unten ist der Beispiel-Standort 0.0.0.0/0 weltweit einsehbar.

6. Nach Eingabe der AWS Konfigurationselemente müssen Sie Ihren New Relic Ingest-Lizenzschlüssel angeben. Den Lizenzschlüssel finden Sie in der New Relic Konsole unter „API keys“.

Dann fügen Sie ihn wie im Folgenden angezeigt ein:

7. Nun vervollständigen Sie die optionalen New Relic Konfigurationselemente. Legen Sie einen für Ihre Instanz passenden Anzeigenamen fest. Weitere Informationen erhalten Sie in unserer Dokumentation zu Konfigurationseinstellungen für Infrastruktur-Agents. Falls gewünscht, können Sie in Ihrem CloudFormation-Script auch weitere verfügbare Parameter erfassen.

8. Legen Sie nun noch alle weiteren optionalen New Relic Custom-Konfigurationselemente fest.

9. Nach Abschluss des Konfigurationsabschnitts wählen Sie die Option Next, um weitere optionale Einstellungen vorzunehmen. Hierzu gehören unter anderem Tags (benennen Sie Ihre Instanz mit dem Schema Name/[name] key/value pair), Berechtigungen und Stack-Ausfalloptionen. Fügen Sie weitere gewünschte Elemente hinzu und wählen Sie dann erneut Next.

10. In CloudFormation wird nun eine Überblicksansicht mit allen von Ihnen eingegebenen Elementen angezeigt. Wählen Sie Submit, um Ihren CloudFormation-Stack zu generieren. (Wenn Sie einen Stack aus dieser Vorlage erstellen, wird die hierbei erstellte EC2-Instanz kostenpflichtig.)

Der Abschluss

Mit diesem Beispiel starten Sie eine Amazon Linux v2 EC2-Instanz im Zusammenhang mit einer Sicherheitsgruppe, die die Ports 80 (HTTP) und 22 (SSH) öffnet. Die Instanz konfiguriert und installiert darüber hinaus den New Relic Infrastructure Monitoring-Agent. 

In Ihrer New Relic Konsole ist die neue Instanz innerhalb von einer Minute aufrufbar.

Zu den Instanz-Metadaten können Sie Filtersuchen durchführen und Diagramme erstellen. Auch Custom-Attribute sind verfügbar.