Bereitstellen einer LAMP-Web-App in Amazon Lightsail

LEITFADEN „ERSTE SCHRITTE“

Modul 1: Vorbereiten Ihres Containers

In diesem Modul konfigurieren Sie einen LAMP-Stack mithilfe der AWS CLI.

Einführung

In diesem Modul erstellen Sie mithilfe der AWS CLI eine Lightsail-Instance aus einem Blueprint, in dem die LAMP-Komponenten vorkonfiguriert sind. Während die Instance erstellt wird, installieren Sie Ihre PHP-Anwendung aus einem GitHub-Repository.

Lerninhalte

  • Erstellen einer Lightsail-Instance mithilfe der AWS CLI
  • Bereitstellen Ihrer PHP-Anwendung mithilfe der Benutzerdaten der Instance

 Veranschlagte Zeit

10 Minuten

 Voraussetzungen für das Modul

  • AWS-Konto mit Administratorzugriff**
  • Empfohlener Browser: aktuelle Version von Chrome oder Firefox

[**] Innerhalb der letzten 24 Stunden erstellte Konten haben möglicherweise noch keinen Zugriff auf alle für dieses Tutorial erforderlichen Services.

Implementierung

Erstellen Ihrer Lightsail-Instance

Wenn Sie eine Lightsail-Instance erstellen, haben Sie die Möglichkeit, ihr Benutzerdaten zu übergeben, die zur Durchführung allgemeiner automatischer Konfigurationsaufgaben und sogar zur Ausführung von Skripten nach dem Start der Instance verwendet werden können. Später in diesem Leitfaden werden Sie eine Lightsail-Instance mithilfe der AWS CLI erstellen. Kopieren Sie das folgende Skript in den Abschnitt „--user-data“ des Befehls:

# remove default website
#-----------------------
cd /opt/bitnami/apache2/htdocs 
rm -rf *

# clone github repo
#------------------
/opt/bitnami/git/bin/git clone -b loft https://github.com/aws-developer-center/todo-php .

# set write permissons on the settings file
#-----------------------------------
chown bitnami:daemon ./*
chmod 666 connectvalues.php

# inject database password into configuration file
#-------------------------------------------------
sed -i.bak "s/<password>/$(cat /home/bitnami/bitnami_application_password)/;" /opt/bitnami/apache2/htdocs/connectvalues.php

# create database
#----------------
cat /home/bitnami/htdocs/data/init.sql | /opt/bitnami/mariadb/bin/mysql -u root -p$(cat /home/bitnami/bitnami_application_password)

Dieses Skript entfernt die Standard-Website des Blueprint, klont die Beispiel-App, um sie zu ersetzen, legt die entsprechenden Dateiberechtigungen fest, konfiguriert das automatisch erstellte Datenbankpasswort in der Konfigurationsdatei der Beispielanwendung und führt das Skript init.sql aus, um die Datenbank zu erstellen und mit den Anfangswerten zu füllen.

Sie benötigen einen SSH-Schlüssel, um auf Ihre Instance zuzugreifen, sobald diese in Betrieb ist. Führen Sie den folgenden Befehl aus, um einen zu erstellen:

aws lightsail create-key-pair \
    --key-pair-name LightsailGuide > ssh_key_response.json

cat ssh_key_response.json | jq -r '.publicKeyBase64' > lightsailguide.pub
cat ssh_key_response.json | jq -r '.privateKeyBase64' > lightsailguide
chmod 400 lightsailguide.pub lightsailguide

Nun sind Sie bereit, mithilfe von AWS CLI Ihre Instance zu erstellen. Für diesen Leitfaden verwenden wir die Region Irland (eu-west-1) und den LAMP-Blueprint mit der Blueprint-ID lamp_7. Führen Sie den folgenden Befehl aus, um eine vollständige Liste der verfügbaren Blueprints zu erhalten:

aws lightsail get-blueprints

Bei der Erstellung einer Lightsail-Instance müssen Sie ein Intance-Bündel angeben. Für diesen Leitfaden verwenden wir ein micro_2_0-Bündel. Mit dem folgenden Befehl erhalten Sie eine vollständige Liste der verfügbaren Bündel:

aws lightsail get-bundles

Führen Sie den folgenden Befehl aus, um Ihre Lightsail-Instance mit dem von Ihnen erstellten Benutzerdatenskript und SSH-Schlüssel zu erstellen:

# Create the Lightsail instance:
aws lightsail create-instances \
    --instance-names "LightsailLampExample" \
    --availability-zone eu-west-1a \
    --blueprint-id lamp_7 \
    --bundle-id micro_2_0 \
    --key-pair-name LightsailGuide \
    --user-data '# remove default website
#-----------------------
cd /opt/bitnami/apache2/htdocs 
rm -rf *

# clone github repo
#------------------
/opt/bitnami/git/bin/git clone -b loft https://github.com/aws-developer-center/todo-php .

# set write permissons on the settings file
#-----------------------------------
chown bitnami:daemon ./*
chmod 666 connectvalues.php

# inject database password into configuration file
#-------------------------------------------------
sed -i.bak "s/<password>/$(cat /home/bitnami/bitnami_application_password)/;" /opt/bitnami/apache2/htdocs/connectvalues.php

# create database
#----------------
cat /home/bitnami/htdocs/data/init.sql | /opt/bitnami/mariadb/bin/mysql -u root -p$(cat /home/bitnami/bitnami_application_password)' 

Der Befehl gibt Details zu der von Ihnen erstellten Instance aus:

{
    "operations": [
        {
            "id": "a49e1398-fb81-455a-8a50-3159c9bd9966",
            "resourceName": "LightsailLampExample",
            "resourceType": "Instance",
            "createdAt": "2021-09-21T16:38:40.566000+02:00",
            "location": {
                "availabilityZone": "eu-west-1a",
                "regionName": "eu-west-1"
            },
            "isTerminal": false,
            "operationType": "CreateInstance",
            "status": "Started",
            "statusChangedAt": "2021-09-21T16:38:40.566000+02:00"
        }
    ]
}

Es dauert einige Minuten, bis Ihre Instance verfügbar ist. Mit dem folgenden Befehl können Sie den Fortschritt überprüfen:

aws lightsail get-instance-state --instance-name LightsailLampExample

Wenn die folgende Ausgabe angezeigt wird, ist die Instance in Betrieb. Möglicherweise verarbeitet sie aber noch das Benutzerdatenskript:

{
    "state": {
        "code": 16,
        "name": "running"
    }
}

Die öffentliche IP-Adresse Ihrer Instance ist erforderlich, um die Anwendung zu testen. Führen Sie den folgenden Befehl aus, um die öffentliche IP-Adresse Ihrer Instance abzurufen.

aws lightsail get-instance --instance-name LightsailLampExample | jq -r .instance.publicIpAddress

Kopieren Sie die IP-Adresse und fügen Sie sie in Ihren Browser ein. Anschließend wird die App ausgeführt:

gsg-build-lightsail-6

Zusammenfassung

In diesem ersten Modul wurde gezeigt, wie eine Infrastruktur mithilfe der AWS CLI erstellt und eine Beispielanwendung bereitgestellt wird. Im nächsten Modul wird erklärt, wie die in diesem Leitfaden verwendeten Ressourcen bereinigt werden.

Nächstes Thema: Ressourcen bereinigen

Lassen Sie uns wissen, wie wir abgeschnitten haben.

Vielen Dank für Ihr Feedback
Wir freuen uns, dass diese Seite Ihnen geholfen hat. Würden Sie uns weitere Details mitteilen, damit wir uns weiter verbessern können?
Schließen
Vielen Dank für Ihr Feedback
Es tut uns leid, dass diese Seite Ihnen nicht weiterhelfen konnte. Würden Sie uns weitere Details mitteilen, damit wir uns weiter verbessern können?
Schließen