In den vorangegangenen Challenges haben sie vorwiegend mit der **imperativen Methode** gearbeitet. Jetzt beginnen Sie, sich mit der **deklarativen Methode** auseinanderzusetzen. Der erste Challenge ist relativ einfach. Sie analysieren ein bereits vorhandenes **.yaml-File** und setzen sich mit den einzelnen Zeilen/Kommandos auseinander.
Sie wissen bereits, wie man auf AWS ein SSH Keypair erstellt und können sich mit diesem Key per SSH mit einer Instanz in der Cloud verbindet. Dieser Challenge geht nun etwas tiefer. Weil das Keypair von AWS und nicht von Ihnen erzeugt wurde, fehlt ihnen noch der Public-Key zu Ihrem bereits bei sich abgelegten **Private Key** (file.pem). Mit **puttygen** können Sie jederzeit den zugehörigen **Public Key** erzeugen. Diesen können Sie dann auf jeder beliebigen Instanz in der Cloud ablegen, um schnell darauf zuzugreifen.
Damit Ihr Coach / Lehrperson ebenfalls auf Ihre Instanz zugreifen kann, ergänzen Sie Ihre **cloud-init**-Scripts auch mit dessen Public-Key. Fordern Sie diesen an und ergänzen Sie diesen unter **~/.ssh/authorized_keys**. Dieser Auftrag ist erfüllt, wenn die Lehrperson anschliessend ohne Authentifikation auf Ihre Instanzen zugreifen kann.
Bei KN02 haben Sie die gesamte Software für sämtliche Dienste und die zugehörige Software auf **einer EC2-Instanz** installiert (Apache Webserver, PHP, PHP-Erweiterung, PHP-Mysqli und den DB-Server). In dieser Übung erstellen Sie nun für dieselben Dienste **zwei EC2-Instanzen**. Diese Aufteilung ist ein erster Schritt in Richtung **Microservices**. Ausserdem werden sie die Kommandos aus KN02 nicht mehr von Hand ausführen, sondern in **zwei** separaten .YAML-Files schreiben. Damit erfüllen Sie **zwei wesentliche Best practice Ansätze** der modernen Plattformentwicklung:
- **Aufteilung in Microservices**
- **Deklaratives Setup** mit **Infrastructure as Code** (IaC)