In dieser Anleitung werden die ersten Schritte mit Compute Engine erläutert. Im Zuge dieser Anleitung stellen Sie eine in Node.js geschriebene "Hello World"-Webanwendung in Compute Engine bereit. Hilfe zu den ersten Schritten mit App Engine finden Sie in der App Engine-Standardumgebung.
Lernziele
- Laden Sie mit Cloud Shell eine "Hello World"-Beispielanwendung herunter und stellen Sie sie bereit
- "Hello World"-Beispielanwendung in einer einzelnen Compute Engine-Instanz bereitstellen
Kosten
In diesem Dokument verwenden Sie die folgenden kostenpflichtigen Komponenten von Google Cloud:
Mit dem Preisrechner können Sie eine Kostenschätzung für Ihre voraussichtliche Nutzung vornehmen.
Hinweis
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein.
-
Enable the Compute Engine API.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein.
-
Enable the Compute Engine API.
-
Öffnen Sie die App in Google Cloud Console.
Cloud Shell bietet Ihnen direkt über den Browser Befehlszeilenzugriff auf Ihre Cloud-Ressourcen.
-
Wenn Sie damit einverstanden sind, das Repository zu klonen, klicken Sie auf Bestätigen, um den Beispielcode herunterzuladen und in das Anwendungsverzeichnis zu wechseln.
-
Konfigurieren Sie die gcloud CLI in Cloud Shell für die Verwendung Ihres neuen Google Cloud-Projekts:
# Configure gcloud for your project gcloud config set project YOUR_PROJECT_ID
Anwendung in Cloud Shell ausführen
Wenn Sie im vorherigen Abschnitt auf Zu Cloud Shell wechseln geklickt haben, hat Cloud Shell das nodejs-getting-started
-Repository in Ihre Instanz geklont. Nach dem Start der Instanz ist Ihr Arbeitsverzeichnis ~/cloudshell_open/nodejs-getting-started/gce
. Wenn Sie sich nicht in diesem Verzeichnis befinden, lesen Sie die Schritte unter Vorbereitung.
Installieren Sie die Abhängigkeiten:
npm install
Führen Sie die Anwendung aus:
npm start
Klicken Sie in Cloud Shell auf Webvorschau und wählen Sie dann Vorschau auf Port 8080 aus. Ein neues Fenster mit der ausgeführten Anwendung wird geöffnet.
Drücken Sie Strg+C, um den lokalen Webserver zu beenden.
Cloud Source Repositories einrichten
Aktivieren der Cloud Source Repositories API,
Rufen Sie in der Google Cloud Console Cloud Source Repositories auf.
Wählen Sie Repository hinzufügen aus.
Wählen Sie Neues Repository erstellen aus und klicken Sie auf Weiter.
Geben Sie im Feld Repository-Name
new-repo
ein.Geben Sie im Feld Projekt die Projekt-ID des Projekts ein, das Sie für diese Anleitung erstellt oder ausgewählt haben, und klicken Sie dann auf Weiter.
Ihr Repository in ein lokales Git-Repository klonen
Kehren Sie in Cloud Shell zum Stammverzeichnis zurück und klonen Sie das Repository. Folgen Sie dazu der Anleitung auf dem Tab Google Cloud SDK und lassen Sie diesen Tab geöffnet.
Bevor Sie mit dem letzten Schritt der Anleitung fortfahren, kopieren Sie die Anwendung in das neue Repository in Cloud Shell:
cd new-repo cp ../cloudshell_open/nodejs-getting-started/gce/app.js app.js cp ../cloudshell_open/nodejs-getting-started/gce/package.json package.json
Folgen Sie der Anleitung auf dem Tab Google Cloud SDK, um für die Änderungen für Ihr Repository ein Commit durchzuführen. Bestätigen Sie, dass Sie den Code dem Repository hinzugefügt haben, indem Sie den Browser aktualisieren und prüfen, ob der Code dem Repository
new-repo
hinzugefügt wurde.
Auf einer einzelnen Instanz bereitstellen
In diesem Abschnitt wird die Ausführung einer einzelnen Instanz der App in Compute Engine beschrieben.
Mit Cloud Shell können Sie eine einzelne Instanz in einer Compute Engine-VM bereitstellen, auf der Ihre Anwendung ausgeführt wird.
Instanz mithilfe eines Startskripts initialisieren
Sie müssen Ihre Instanz anweisen, den Code herunterzuladen und auszuführen. Eine Instanz kann ein Startskript haben, das bei jedem Start oder Neustart der Instanz ausgeführt wird.
Hier sehen Sie das Startskript, das in der "Hello World"-Beispielanwendung enthalten ist:
Das Startskript führt die folgenden Aktionen aus:
Installiert den Cloud Logging-Agent. Der Agent erfasst automatisch Logs aus syslog.
Installiert Supervisor, um die Anwendung als Daemon auszuführen.
Klont den Quellcode der Anwendung aus Cloud Source Repositories und installiert Abhängigkeiten.
Konfiguriert Supervisor zum Ausführen der Anwendung. Supervisor sorgt dafür, dass die Anwendung neu gestartet wird, wenn sie unerwartet beendet oder von einem Administrator oder einem anderen Prozess abgebrochen wird. Außerdem sendet Supervisor die Standarddatenströme
stdout
undstderr
an syslog, damit sie vom Logging-Agent erfasst werden.
Compute Engine-Instanz erstellen und konfigurieren
Erstellen Sie eine Compute Engine-Instanz:
Linux/macOS
gcloud compute instances create my-app-instance \ --image-family=debian-9 \ --image-project=debian-cloud \ --machine-type=g1-small \ --scopes userinfo-email,cloud-platform \ --metadata app-location=us-central1-f \ --metadata-from-file startup-script=gce/startup-script.sh \ --zone us-central1-f \ --tags http-server
Windows
gcloud compute instances create my-app-instance ^ --image-family=debian-9 ^ --image-project=debian-cloud ^ --machine-type=g1-small ^ --scopes userinfo-email,cloud-platform ^ --metadata-from-file startup-script=gce/startup-script.sh ^ --zone us-central1-f ^ --tags http-server
Ersetzen Sie die Zone durch eine Entwicklungszone, z. B.
us-central1-a
. Weitere Informationen zu Regionen und Zonen finden Sie unter Geografie und Regionen.Hierdurch wird eine neue Instanz erstellt, deren Zugriff auf Google Cloud-Dienste ermöglicht und das Startskript ausgeführt. Der Instanzname lautet
my-app-instance
.Prüfen Sie den Fortschritt der Instanzerstellung:
gcloud compute instances get-serial-port-output my-app-instance --zone YOUR_ZONE
Ersetzen Sie
YOUR_ZONE
durch die Zone, in der Sie die Instanz bereitgestellt haben.Wenn das Startskript abgeschlossen ist, sehen Sie folgende Meldung:
startup-script: INFO Finished running startup scripts.
Erstellen Sie eine Firewallregel, die Traffic zur Instanz zulässt:
gcloud compute firewall-rules create default-allow-http-8080 \ --allow tcp:8080 \ --source-ranges 0.0.0.0/0 \ --target-tags http-server \ --description "Allow port 8080 access to http-server"
Rufen Sie die externe IP-Adresse der Instanz ab:
gcloud compute instances list
Geben Sie die folgende URL in Ihren Browser ein, wenn Sie Ihre ausgeführte Anwendung sehen möchten:
http://YOUR_INSTANCE_IP:8080
Ersetzen Sie
YOUR_INSTANCE_IP
durch die externe IP-Adresse Ihrer Instanz.
Instanzen verwalten und überwachen
Sie können die Instanz in der GCP Console beobachten und verwalten.
- In the Google Cloud console, go to the VM instances page.
- In the list of virtual machine instances, click SSH in the row of the instance that you want to connect to.
- Rufen Sie die Seite Log-Explorer auf, um alle von Ihren Compute Engine-Ressourcen generierten Logs aufzurufen.
Zum Log-Explorer
Cloud Logging wird automatisch so konfiguriert, dass Logs aus verschiedenen gängigen Diensten erfasst werden, einschließlich
syslog
.
Bereinigen
Damit Ihrem Google Cloud-Konto die in dieser Anleitung verwendeten Ressourcen nicht in Rechnung gestellt werden, löschen Sie entweder das Projekt, das die Ressourcen enthält, oder Sie behalten das Projekt und löschen die einzelnen Ressourcen.
Projekt löschen
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
Einzelne Ressourcen löschen
gcloud compute instances delete my-app-instance --zone=YOUR_ZONE --delete-disks=all gcloud compute firewall-rules delete default-allow-http-8080
Nächste Schritte
Referenzarchitekturen, Diagramme und Best Practices zu Google Cloud kennenlernen. Weitere Informationen zu Cloud Architecture Center
Weitere Node.js-Ressourcen zum Erstellen von Anwendungen finden Sie hier:
- Verwalten und beobachten Sie Ihre Instanzgruppenbereitstellung unter Compute Engine > Instanzgruppen
- Verwalten Sie Ihre Load-Balancing-Konfiguration, einschließlich URL-Zuordnungen und Back-End-Diensten, unter Netzwerkdienste > Lastenausgleich
- Sitzungen mit Cloud Firestore verarbeiten
- Nutzer mit Identity-Aware Proxy authentifizieren
- Anwendung in Google Kubernetes Engine bereitstellen
- Weitere Google Cloud-Dienste kennenlernen