Dieser Artikel beschreibt, wie eine Website auf Google Cloud gehostet wird. Google Cloud ist eine robuste, flexible, zuverlässige und skalierbare Plattform für die Bereitstellung von Websites. Google Cloud wurde unter Verwendung derselben Infrastruktur erstellt, die Google auch zur Bereitstellung der Inhalte von Websites wie Google.com, YouTube und Gmail nutzt. Sie können zum Hosten der Inhalte für Ihre Website den für Ihre Bedürfnisse am besten geeigneten Infrastrukturtyp und das am besten geeignete Infrastrukturdesign wählen.
Dieser Artikel kann in den folgenden Fällen für Sie nützlich sein:
- Sie sind mit der Erstellung einer Website vertraut und haben schon einmal eine Webhosting-Infrastruktur bereitgestellt und eingesetzt.
- Sie möchten evaluieren, ob und wie Sie Ihre Website zu Google Cloud migrieren.
Wenn Sie eine einfache Website erstellen möchten, bietet es sich an, Google Sites zu verwenden. Dies ist ein Tool zur Erstellung strukturierter Wiki- und Webseiten. Weitere Informationen erhalten Sie in der Google Sites-Hilfe.
Optionen wählen
Wenn Sie noch nicht mit Google Cloud gearbeitet haben, ist es sinnvoll, zuerst die Art von Technologie einzusetzen, mit der Sie bereits vertraut sind. Beispiel: Wenn Sie Ihre Website derzeit auf Hardwareservern oder virtuellen Maschinen (VMs) hosten, vielleicht bei einem anderen Cloudanbieter oder auf Ihrer eigenen Hardware, bietet Ihnen Compute Engine ein passendes Modell. Wenn Sie bereits ein PaaS-Angebot (Platform as a Service) wie Heroku oder Engine Yard nutzen, ist App Engine wahrscheinlich der beste Ausgangspunkt. Für ein serverloses Computing ist Cloud Run eine geeignete Option.
Nachdem Sie sich mit Google Cloud besser vertraut gemacht haben, können Sie die vielfältigen Produkte und Dienste entdecken, die Google Cloud zur Verfügung stellt. Wenn Sie beispielsweise mit Compute Engine begonnen haben, können Sie Ihre Website mithilfe von Google Kubernetes Engine (GKE) erweitern oder einige bzw. alle Funktionen zu App Engine und Cloud Run migrieren.
Die folgende Tabelle bietet einen Überblick über Ihre Hosting-Optionen in Google Cloud:
Option | Produkt | Datenspeicherung | Load-Balancing | Skalierbarkeit | Logging und Monitoring |
---|---|---|---|---|---|
Statische Website | Cloud Storage Firebase Hosting |
Cloud Storage-Bucket | HTTP(S) optional |
Automatisch | |
Virtuelle Maschinen | Compute Engine | Cloud SQL, Cloud Storage, Firestore und Bigtable. Sie können auch einen anderen externen Speicheranbieter verwenden. Festplattenbasierte nichtflüchtige Speicher, nichtflüchtige Standardspeicher genannt, sowie nichtflüchtige SSDs |
HTTP(S) TCP-Proxy SSL-Proxy IPv6-Beendigung Netzwerk Regionenübergreifend Intern |
Automatisch mit verwalteten Instanzgruppen | |
Container | GKE | Wie Compute Engine, interagiert jedoch unterschiedlich mit nichtflüchtigen Speichern |
Netzwerk HTTPS |
Cluster Autoscaler | |
Verwaltete Plattform | App Engine |
Google Cloud-Dienste wie Cloud SQL, Firestore, Cloud Storage und zugängliche Drittanbieterdatenbanken | HTTPS Von Google verwaltet |
Von Google verwaltet | |
Serverlos | Cloud Run |
Google Cloud-Dienste wie Cloud SQL, Firestore, Cloud Storage und zugängliche Drittanbieterdatenbanken | HTTPS Von Google verwaltet |
Von Google verwaltet |
Dieser Artikel stellt die wichtigsten Technologien vor, die Sie für das Webhosting in Google Cloud nutzen können, und gibt Ihnen einen Einblick in ihre Funktionsweise. Er enthält Links zu vollständigen Dokumentationen, Anleitungen und Lösungsartikeln, mit denen Sie ein tieferes Verständnis aufbauen können, wenn Sie bereit sind.
Die Kosten überblicken
Angesichts der Vielzahl von Variablen und unterschiedlichen Implementierungen würde es den Rahmen dieses Artikels sprengen, eine spezifische Kostenberatung zu liefern. Weitere Informationen zum besseren Verständnis der Preisgestaltung in Google Cloud finden Sie in der Preisübersicht. Die Preisgestaltung für einzelne Dienste können Sie dem Abschnitt zu Produktpreisen entnehmen. Mit dem Preisrechner können Sie die mit Ihrer Google Cloud-Nutzung verbundenen Kosten kalkulieren. Sie können Details zu den Diensten angeben, die Sie nutzen möchten, und dann eine Preisschätzung erhalten.
Domain Name Services einrichten
In der Regel registrieren Sie einen Domainnamen für Ihre Website. Sie können auf einen öffentlichen Domainnamenregistrator zurückgreifen, um einen eindeutigen Namen für Ihre Website zu registrieren. Wenn Sie Ihr eigenes Domain Name System (DNS) verwenden und verwalten möchten, können Sie Cloud DNS als DNS-Anbieter nutzen. Die Cloud-DNS-Dokumentation enthält eine Kurzanleitung für den schnellen Einstieg.
Wenn Sie bereits einen DNS-Anbieter haben, den Sie nutzen möchten, müssen Sie in der Regel ein paar Ressourceneinträge bei diesem Anbieter erstellen. Für einen Domainnamen wie example.com
erstellen Sie bei Ihrem DNS-Anbieter einen A
-Eintrag. Für die Subdomain www.example.com
erstellen Sie einen CNAME
-Eintrag für www
, um auf die Domain example.com
zu verweisen. Der Eintrag A
ordnet einer IP-Adresse einen Hostnamen zu.
Der Eintrag CNAME
erstellt einen Alias für den Eintrag A
.
Wenn Ihr Domainnamenregistrator zugleich Ihr DNS-Anbieter ist, sind vermutlich keine weiteren Schritte erforderlich. Wenn Sie für die Anmeldung und für DNS verschiedene Anbieter nutzen, müssen Sie dafür sorgen, dass Ihrer Domain beim Domainnamenregistrator die richtigen Nameserver zugeordnet sind.
Nachdem Sie die DNS-Änderungen vorgenommen haben, kann es je nach der Gültigkeitsdauer (TTL) in Ihrer Zone eine Weile dauern, bis die Aktualisierungen der Einträge umgesetzt sind. Bei neuen Hostnamen werden die Änderungen schnell wirksam, da die DNS-Resolver keine vorherigen Werte zwischengespeichert haben und den DNS-Anbieter kontaktieren können, um die erforderlichen Informationen zum Weiterleiten von Anfragen abzurufen.
Statische Website hosten
Der einfachste Weg zur Bereitstellung von Websiteinhalten über HTTP(S) ist das Hosting von statischen Webseiten. Statische Webseiten werden unverändert gehostet, d. h. so, wie sie geschrieben wurden (in der Regel in HTML). Eine statische Website ist eine gute Wahl, wenn die Seiten Ihrer Website nach der Veröffentlichung nur selten geändert werden. Das gilt beispielsweise für Blogposts oder für die Seiten der Website eines kleinen Unternehmens. Statische Webseiten bieten vielfältige Gestaltungsmöglichkeiten. Soll Ihre Website jedoch komplexe Interaktionen mit Nutzern über serverseitigen Code ermöglichen, sollten Sie die weiteren Optionen in Betracht ziehen, die im vorliegenden Artikel erläutert werden.
Statische Website mit Cloud Storage hosten
Für das Hosting einer statischen Website in Cloud Storage müssen Sie einen Cloud Storage-Bucket erstellen, den Inhalt hochladen und Ihre neue Website testen. Sie haben die Möglichkeit, Daten direkt über storage.googleapis.com
bereitzustellen. Alternativ können Sie prüfen, ob Sie Inhaber der Domain sind, und dann Ihren Domainnamen verwenden.
Sie können Ihre statischen Webseiten auf beliebige Weise erstellen. Beispielsweise haben Sie die Möglichkeit, Seiten manuell in HTML und CSS anzulegen. Oder Sie nutzen einen Generator für statische Websites wie Jekyll, Ghost oder Hugo, um Inhalte zu erstellen. Wenn Sie mit Generatoren für statische Websites eine statische Website erstellen, schreiben Sie in Markdown und stellen Vorlagen und Tools bereit. Websitegeneratoren stellen in der Regel einen lokalen Webserver bereit, über den Sie eine Vorschau Ihrer Inhalte aufrufen können.
Sobald Ihre statische Website funktionsbereit ist, können Sie die statischen Seiten mit der von Ihnen bevorzugten Vorgehensweise aktualisieren. Dies kann eine ganz einfache Methode wie das manuelle Kopieren einer aktualisierten Seite in den Bucket sein. Sie können auch einen stärker automatisierten Ansatz wählen, bei dem Sie Ihre Inhalte beispielsweise im GitHub speichern und dann einen Webhook verwenden, um ein Skript zur Aktualisierung des Buckets auszuführen. In einem höher entwickelten System könnte ein Tool für Continuous Integration/Continuous Delivery (CI/CD) wie Jenkins zur Aktualisierung des Inhalts im Bucket zum Einsatz kommen. Jenkins bietet ein Cloud Storage-Plug-in, mit dem für Google Cloud Storage Uploader
ein Post-Build-Schritt zur Veröffentlichung von Build-Artefakten in Cloud Storage bereitgestellt werden kann.
Bei einer Webanwendung, die statischen Inhalt oder von Nutzern hochgeladene statische Medien bereitstellen soll, kann der Einsatz von Cloud Storage eine kostengünstige und effiziente Möglichkeit zum Hosten und Bereitstellen dieser Inhalte bieten. Gleichzeitig kann die Anzahl der dynamischen Anfragen reduziert werden, die an Ihre Webanwendung gerichtet werden.
Cloud Storage kann darüber hinaus die von Nutzern eingereichten Inhalte direkt entgegennehmen. Mit diesem Feature können Nutzer große Mediendateien direkt und sicher hochladen, ohne den Proxy über Ihre Server auszuführen.
Informationen zur optimalen Leistung Ihrer statischen Website finden Sie unter Best Practices für Cloud Storage.
Weitere Informationen finden Sie auf den folgenden Seiten:
- Statische Website hosten
- J is for Jenkins (Blogpost)
- Band Aid 30 on Google Cloud Platform (Blogpost)
- Cloud Storage-Dokumentation
Statische Website mit Firebase Hosting hosten
Firebase Hosting stellt schnelles und sicheres statisches Hosting für Ihre Webanwendung bereit. Mit Firebase Hosting können Sie Webanwendungen und statische Inhalte mit einem einzigen Befehl in einem globalen Content Delivery Network (CDN) bereitstellen.
Der Einsatz von Firebase Hosting bietet u. a. die folgenden Vorteile:
- SSL ist ohne zusätzlichen Konfigurationsaufwand in Firebase Hosting eingebunden. In benutzerdefinierten Domains werden SSL-Zertifikate kostenlos bereitgestellt.
- Alle Ihre Inhalte werden über HTTPS bereitgestellt.
- Ihre Inhalte werden von den CDN-Rändern weltweit für Ihre Nutzer bereitgestellt.
- Mit der Firebase CLI ist Ihre Anwendung in kürzester Zeit einsatzbereit. Mit Befehlszeilentools binden Sie Deployment-Ziele in Ihren Build-Prozess ein.
- Sie können auf Releaseverwaltungsfeatures, wie z. B. ein detailliertes Deployment neuer Assets, eine komplette Versionsverwaltung und Rollbacks, mit nur einem Klick zurückgreifen.
- Hosting bietet eine Konfiguration, die für Anwendungen mit nur einer Seite sowie für andere anwendungsähnliche Websites geeignet ist.
- Das Hosting ist für die nahtlose Zusammenarbeit mit anderen Firebase-Features konzipiert.
Weitere Informationen finden Sie auf den folgenden Seiten:
Virtuelle Maschinen mit Compute Engine verwenden
Für IaaS-Anwendungsfälle (Infrastructure as a Service) stellt Google Cloud Compute Engine zur Verfügung. Compute Engine bietet eine robuste Computerinfrastruktur, aber Sie müssen die Plattformkomponenten, die Sie verwenden möchten, auswählen und konfigurieren. Beim Einsatz von Compute Engine sind Sie für die Konfiguration, Verwaltung und Überwachung der Systeme verantwortlich. Google sorgt dafür, dass Ressourcen verfügbar, zuverlässig und betriebsbereit sind, aber die Bereitstellung und Verwaltung dieser Ressourcen liegt in Ihrer Hand. Der Vorteil dieser Vorgehensweise liegt darin, dass Sie vollständige Kontrolle über die Systeme haben und uneingeschränkte Flexibilität genießen.
Mit Compute Engine können Sie beinahe jedes gewünschte Websitehosting-System entwerfen und bereitstellen. Sie haben die Möglichkeit, virtuelle Maschinen (VMs), sogenannte Instanzen, zum Erstellen Ihrer Anwendung zu verwenden, ähnlich wie Sie es mit Ihrer eigenen Hardwareinfrastruktur tun würden. Compute Engine bietet eine Vielzahl von Maschinentypen, mit denen Sie Ihre Konfiguration ganz auf Ihre Anforderungen und Ihr Budget zuschneiden können. Wählen Sie Ihre bevorzugten Betriebssysteme, Entwicklungspakete, Sprachen, Frameworks, Dienste und andere Softwaretechnologien aus.
Mit Google Cloud Marketplace automatisch einrichten
Am einfachsten lässt sich ein vollständiger Webhosting-Stack mit Google Cloud Marketplace bereitstellen. Mit wenigen Klicks können Sie über 100 vollständig realisierte Lösungen mit Google Click-to-Deploy oder Bitnami erstellen.
Beispielsweise können Sie mit Cloud Marketplace ein LAMP-Paket oder WordPress einrichten. Das System erstellt in wenigen Minuten ein vollständiges funktionsfähiges Softwarepaket in einer einzigen Instanz. Vor der Bereitstellung bietet Cloud Marketplace eine Kostenschätzung für den Betrieb der Website und informiert Sie darüber, welche Versionen der Softwarekomponenten installiert werden. Außerdem können Sie Ihre Konfiguration beispielsweise durch Änderung der Komponenteninstanznamen sowie durch Auswahl des Maschinentyps und einer Laufwerksgröße anpassen. Nach der Bereitstellung haben Sie die volle Kontrolle über die Compute Engine-Instanzen und deren Konfiguration sowie über die Software.
Manuelles Einrichten
Sie können Ihre Infrastruktur auch manuell auf Compute Engine erstellen. Dazu definieren Sie entweder die Konfiguration von Grund auf neu oder Sie greifen auf eine Google Cloud Marketplace-Bereitstellung zurück. Sie können beispielsweise eine Version einer Softwarekomponente verwenden, die nicht von Cloud Marketplace angeboten wird, oder Sie ziehen es vor, sie selbst zu installieren und zu konfigurieren.
Im Rahmen dieses Artikels können weder ein vollständiges Framework noch die Best Practices für die Einrichtung einer Website umfassend behandelt werden. Allgemein betrachtet gelten jedoch die folgenden technischen Voraussetzungen für die Einrichtung einer Webhosting-Infrastruktur in Compute Engine:
- Anforderungen verstehen. Zum Erstellen einer neuen Website müssen Sie die benötigten Komponenten kennen, wie beispielsweise Instanzen, Speicherbedarf und Netzwerkinfrastruktur. Wenn Sie Ihre Anwendung von einer vorhandenen Lösung migrieren, sind Ihnen diese Anforderungen unter Umständen bereits vertraut. Sie sollten aber auch bedenken, wie die vorhandene Einrichtung den Google Cloud-Diensten zugeordnet werden kann.
- Design planen. Konzipieren Sie Ihre Architektur im Detail und halten Sie das gewünschte Design schriftlich fest. Dies sollte so konkret wie möglich geschehen.
- Komponenten erstellen. Komponenten, die in der Regel als physische Ressourcen bezeichnet werden (z. B. Computer und Netzwerk-Switches), werden in Compute Engine als Dienste bereitgestellt. Wenn Sie beispielsweise einen Computer benötigen, müssen Sie eine entsprechende Compute Engine-Instanz erstellen. Wenn Sie ein nichtflüchtiges Festplattenlaufwerk benötigen, müssen Sie dieses ebenfalls erstellen. Infrastruktur als Code-Tools wie Terraform macht diesen Prozess einfach und wiederholbar.
- Konfigurieren und anpassen. Sobald alle gewünschten Komponenten vorhanden sind, müssen Sie diese konfigurieren, Software installieren und konfigurieren sowie eventuell erforderlichen Anpassungscode schreiben und erstellen. Sie können die Konfiguration durch die Ausführung von Shell-Skripten replizieren, um zukünftige Deployments zu beschleunigen. Auch dafür bietet Terraform eine hilfreiche Unterstützung. Damit werden deklarative flexible Konfigurationsvorlagen für die automatisierte Bereitstellung von Ressourcen zur Verfügung gestellt. Außerdem können Sie auf IT-Automatisierungstools wie Puppet und Chef zurückgreifen.
- Assets bereitstellen. Vermutlich haben Sie Webseiten und Bilder.
- Testen. Achten Sie darauf, dass alles so funktioniert, wie Sie es erwarten.
- Für die Produktion bereitstellen. Geben Sie Ihre Website für die allgemeine Nutzung frei.
Daten mit Compute Engine speichern
Die meisten Websites benötigen irgendeine Art von Speicher. Möglicherweise benötigen Sie Speicher aus verschiedenen Gründen, z. B. zum Speichern der Dateien, die Ihre Nutzer hochladen, und zum Speichern der Assets, auf die Ihre Website zurückgreift.
Google Cloud stellt eine Vielzahl von Speicherdiensten bereit. Dazu gehören unter anderem:
- Eine SQL-Datenbank in Cloud SQL, einem vollständig verwalteten relationalen Datenbankdienst für MySQL, PostgreSQL und SQL Server.
- Zwei Optionen für die NoSQL-Datenspeicherung: Firestore und Bigtable.
- Memorystore, ein vollständig verwalteter In-Memory-Datenspeicherdienst für Redis und Memcached.
- Konsistenter, skalierbarer Objektspeicher mit hoher Kapazität in Cloud Storage.
Cloud Storage gibt es in mehreren Klassen:
- Standard bietet maximale Verfügbarkeit.
- Nearline bietet eine kostengünstige Alternative, die ideal für Daten ist, auf die höchstens einmal im Monat zugegriffen wird.
- Coldline bietet eine kostengünstige Alternative, die ideal für Daten ist, auf die höchstens einmal im Quartal zugegriffen wird.
- Archive bietet die günstigste Alternative für Archivierung, Sicherung und Notfallwiederherstellung.
- Nichtflüchtige Speicher in Compute Engine zur Nutzung als Hauptspeicher für Ihre Instanzen. Compute Engine bietet sowohl festplattenbasierte nichtflüchtige Speicher, sogenannte nichtflüchtige Standardspeicher, als auch nichtflüchtige SSDs. Sie haben auch die Möglichkeit, Ihre bevorzugte Speichertechnologie über nichtflüchtige Speicher in Compute Engine einzurichten. Beispielsweise können Sie PostgreSQL als SQL-Datenbank oder MongoDB als NoSQL-Speicher einrichten. Eine ausführliche Darstellung der gesamten Bandbreite und Vorteile der Speicherdienste auf Google Cloud finden Sie im Abschnitt Speicheroption auswählen.
Load-Balancing mit Compute Engine
Bei der Mehrzahl der Websites, die in größerem Umfang genutzt werden, ist der Einsatz von Technologien für das Load-Balancing häufig eine unverzichtbare Voraussetzung, um die Arbeitslast auf mehrere Server zu verteilen. Bei der Konzeption Ihrer Webserver mit Load-Balancing in Compute Engine stehen Ihnen verschiedene Optionen zur Verfügung. Dazu gehören die Folgenden:
- HTTP(S)-Load-Balancing.
Erläutert die Grundlagen der Verwendung von Cloud Load Balancing.
- Inhaltsbasiertes Load-Balancing. Veranschaulicht die Traffic-Verteilung auf verschiedene Instanzen basierend auf der eingehenden URL.
- Regionenübergreifendes Load-Balancing. Veranschaulicht die Konfiguration von VM-Instanzen in verschiedenen Regionen sowie die Nutzung von HTTP- oder HTTPS-Load-Balancing zur Verteilung des Traffics auf die Regionen.
- TCP-Proxy-Load-Balancing. Veranschaulicht, wie globales TCP-Proxy-Load-Balancing für einen Dienst in zwei Regionen eingerichtet wird.
- SSL-Proxy-Load-Balancing. Veranschaulicht, wie globales SSL-Proxy-Load-Balancing für einen Dienst in mehreren Regionen eingerichtet wird.
- IPv6-Beendigung für HTTP(S)-, SSL-Proxy- und TCP-Proxy-Load-Balancing. Erläutert die Beendigung von IPv6 und die Optionen zum Konfigurieren von Load-Balancern und Verarbeiten von IPv6-Anfragen.
- Netzwerk-Load-Balancing. Beschreibt ein grundlegendes Szenario, in dem eine Layer-3-Load-Balancing-Konfiguration eingerichtet wird, um den HTTP-Traffic auf fehlerfreie Instanzen zu verteilen.
- Regionenübergreifendes Load-Balancing mit Microsoft IIS-Back-Ends. Veranschaulicht die Nutzung des Compute Engine-Load-Balancers für die Trafficverteilung auf IIS-Server (Server mit Microsoft Internet Information Services).
- Internes Load-Balancing einrichten Sie können einen Load-Balancer einrichten, der den Traffic auf ein privates Netzwerk verteilt, das nicht über das Internet erreichbar ist. Das interne Load-Balancing ist nicht nur für Intranetanwendungen nützlich, bei denen sich der gesamte Traffic innerhalb der Grenzen eines privaten Netzwerks bewegt. Es eignet sich auch für komplexe Webanwendungen, bei denen ein Frontend-Server über ein privates Netzwerk Anfragen an Backend-Server sendet.
Das Deployment des Load-Balancings ist flexibel und Sie können Compute Engine mit bereits vorhandenen Lösungen verwenden. Beispielsweise ist HTTP(S)-Load-Balancing mit Nginx eine Lösung, die Sie anstelle des Compute Engine-Load-Balancers verwenden können.
Inhaltsverteilung mit Compute Engine
Da die Antwortzeit einen wichtigen Messwert für jede Website darstellt, ist die Verwendung eines CDNs zur Senkung der Latenz und Erhöhung der Leistung häufig ein Muss, vor allem bei Websites mit globalem Internet-Traffic.
Cloud CDN greift auf die global verteilten Edge Points of Presence von Google zurück, um Inhalte aus den Cache-Speicherorten, die den Nutzern am nächsten liegen, bereitzustellen. Cloud CDN kann mit HTTP(S)-Load-Balancing bereitgestellt werden. Wenn Sie Inhalte aus Compute Engine und/oder aus Cloud Storage über eine einzige IP-Adresse bereitstellen möchten, aktivieren Sie Cloud CDN für HTTP(S)-Load-Balancing.
Autoscaling mit Compute Engine
Sie können Ihre Architektur so einrichten, dass je nach Bedarf Server eingebunden oder entfernt werden. Dieser Ansatz kann hilfreich sein, damit Ihre Website auch bei Lastspitzen zuverlässig arbeitet und in Phasen mit typischer Nachfrage die Kosten im kontrollierten Rahmen bleiben. Für diese Zwecke stellt Compute Engine Autoscaling bereit.
Autoscaling ist ein Feature verwalteter Instanzgruppen. Eine verwaltete Instanzgruppe ist ein Pool mit homogenen VM-Instanzen, die auf der Basis einer gemeinsamen Instanzvorlage erstellt wurden. Beim Autoscaling werden Instanzen zu einer verwalteten Instanzgruppe hinzugefügt oder daraus entfernt. Compute Engine enthält zwar verwaltete und nicht verwaltete Instanzgruppen, aber das Autoscaling ist nur auf verwaltete Instanzgruppen anwendbar. Weitere Informationen finden Sie unter Autoscaling in Compute Engine.
Umfassende Informationen zum Erstellen einer skalierbaren und stabilen Webanwendungslösung finden Sie unter Skalierbare und stabile Webanwendungen erstellen.
Logging und Monitoring mit Compute Engine
Google Cloud bietet Features, mit denen Sie beobachten können, was mit Ihrer Website geschieht.
Cloud Logging erfasst und speichert Logs aus Anwendungen und Diensten in Google Cloud. Mit einem Logging-Agent können Sie Logs ansehen oder exportieren und Logs anderer Anbieter einbinden.
Cloud Monitoring stellt Dashboards und Benachrichtigungen für Ihre Website bereit. Sie konfigurieren Monitoring mithilfe der Google Cloud Console. Sie können die Leistungsmesswerte für Cloud-Dienste, virtuelle Maschinen und häufig verwendete Open-Source-Server wie MongoDB, Apache, Nginx und Elasticsearch prüfen. Mit der Cloud Monitoring API können Sie Monitoringdaten abrufen und benutzerdefinierte Messwerte erstellen.
Cloud Monitoring bietet außerdem Verfügbarkeitsdiagnosen, mit denen Anfragen an Ihre Websites gesendet werden, um zu prüfen, ob sie reagieren. Sie können die Verfügbarkeit einer Website durch eine Benachrichtigungsrichtlinie überwachen, die einen Vorfall erstellt, wenn die Verfügbarkeitsdiagnose fehlschlägt.
DevOps mit Compute Engine verwalten
Informationen zur Verwaltung von DevOps mit Compute Engine finden Sie in den folgenden Artikeln:
Container mit GKE verwenden
Vielleicht verwenden Sie bereits Container wie etwa Docker-Container. Container bieten in Bezug auf das Webhosting mehrere Vorteile:
- Einteilung in Komponenten. Sie können Container verwenden, um die verschiedenen Komponenten der Webanwendung voneinander zu trennen. Beispiel: Sie führen auf Ihrer Website einen Webserver und eine Datenbank aus. Sie können diese Komponenten nun in getrennten Containern ausführen und so dafür sorgen, dass sich Änderungen und Aktualisierungen für eine Komponente nicht auf andere auswirken. Mit zunehmender Komplexität des Anwendungsdesigns sind Container eine besonders geeignete Lösung für eine dienstorientierte Architektur, einschließlich Mikrodiensten. Diese Art von Design zeichnet sich unter anderem durch die Skalierbarkeit aus.
- Portabilität. Ein Container enthält alles, was für die Ausführung erforderlich ist. Ihre Anwendung und die zugehörigen Abhängigkeiten sind darin zu einem Bundle zusammengefasst. Sie können Ihre Container auf einer Vielzahl von Plattformen ausführen, ohne sich mit den zugrunde liegenden Systemdetails beschäftigen zu müssen.
- Schnelle Bereitstellung. Wenn es an das Deployment geht, wird Ihr System aus einer Reihe von Definitionen und Images erstellt, d. h. die Bestandteile können schnell, zuverlässig und automatisch erstellt werden. Container sind in der Regel klein und lassen sich sehr viel schneller erstellen als beispielsweise virtuelle Maschinen.
Das Container-Computing in Google Cloud bietet noch weitere Vorteile für das Webhosting:
- Orchestrierung. GKE ist ein verwalteter Dienst, der auf Kubernetes basiert, einem von Google entwickelten Open-Source-System zur Orchestrierung von Containern. Mit GKE wird Ihr Code in Containern ausgeführt, die Teil eines Clusters aus Compute Engine-Instanzen sind. Anstatt einzelne Container zu verwalten oder jeden Container einzeln zu erstellen und manuell herunterzufahren, können Sie den vollständigen Cluster über GKE mit der von Ihnen definierten Konfiguration verwalten.
- Registrierung von Images. Container Registry oder Artifact Registry stellen privaten Speicher für Docker-Images in Google Cloud bereit. Sie haben die Möglichkeit, über einen HTTPS-Endpunkt auf die Registry zuzugreifen und so Images von einer beliebigen Maschine abzurufen. Das kann eine Compute Engine-Instanz oder Ihre eigene Hardware sein. Der Registry-Dienst hostet Ihre benutzerdefinierten Images in Cloud Storage unter Ihrem Google Cloud-Projekt. Dieser Ansatz gewährleistet, dass standardmäßig nur Hauptkonten mit Zugriff auf Ihr Projekt auf Ihre benutzerdefinierten Images zugreifen können
- Mobilität. Sie können Arbeitslasten flexibel verschieben und mit anderen Cloudanbietern kombinieren oder Arbeitslasten in der Cloud mit Implementierungen vor Ort zu einer Hybridlösung verbinden.
Daten mit GKE speichern
Da GKE auf Google Cloud ausgeführt wird und Compute Engine-Instanzen als Knoten verwendet, weisen Ihre Speicheroptionen eine Reihe von Gemeinsamkeiten mit dem Speicher in Compute Engine auf. Sie können Cloud SQL, Cloud Storage, Firestore und Bigtable über die zugehörigen APIs aufrufen oder, falls Sie das möchten, einen anderen externen Speicheranbieter verwenden. Die Interaktion von GKE mit dem nichtflüchtigen Speicher in Compute Engine unterscheidet sich allerdings von normalen Compute Engine-Instanzen.
Eine Compute Engine-Instanz enthält ein hinzugefügtes Laufwerk. Wenn Sie Compute Engine verwenden, verbleibt das Laufwerksvolume bei der Instanz, solange die Instanz besteht. Sie können das Laufwerk sogar trennen und mit einer anderen Instanz verwenden. Bei einem Container sind die auf dem Laufwerk gespeicherten Dateien jedoch flüchtig. Sobald ein Container neu gestartet wird, z. B. nach einem Absturz, gehen die auf dem Laufwerk gespeicherten Dateien verloren. Kubernetes löst dieses Problem durch Abstraktion von Volumes und Speicherklassen. Eine Art von Speicherklasse ist GCE PD
.
Das bedeutet, dass Sie nichtflüchtigen Speicher in Compute Engine mit Containern verwenden können, um den Verlust Ihrer Datendateien bei Verwendung von GKE zu vermeiden.
Die Features und Vorzüge eines Volumes erschließen sich erst, wenn Sie mit dem Konzept der Pods vertraut sind. Stellen Sie sich einen Pod als anwendungsspezifischen logischen Host für einen oder mehrere Container vor. Ein Pod wird auf einer Knoteninstanz ausgeführt. Wenn Container Mitglieder eines Pods sind, können sie mehrere Ressourcen gemeinsam nutzen, darunter eine Reihe freigegebener Speichervolumes. Diese Volumes sorgen dafür, dass Daten Container-Neustarts überleben und von den Containern innerhalb des Pods gemeinsam genutzt werden können. Natürlich können Sie auch einen einzelnen Container und nur ein Volume in einem Pod verwenden. Der Pod ist eine erforderliche Abstraktionsebene, um diese Ressourcen logisch miteinander zu verbinden.
Ein Beispiel finden Sie in der Anleitung Nichtflüchtige Speicher mit WordPress und MySQL verwenden.
Load-Balancing mit GKE
In vielen umfangreichen Webhosting-Architekturen werden mehrere aktive Server benötigt, damit die Trafficanforderungen verteilt werden können. Da Sie mit GKE mehrere Container, Knoten und Pods erstellen und verwalten können, ist dies eine natürliche Ergänzung für ein Webhosting-System mit Load-Balancing.
Netzwerklastenausgleich verwenden
Die einfachste Methode zum Erstellen eines Load-Balancers in GKE ist die Verwendung des Netzwerk-Load-Balancings von Compute Engine. Mit dem Netzwerk-Load-Balancing können Sie die Belastung Ihrer Systeme auf der Grundlage eingehender Internetprotokolldaten wie Adresse, Port und Protokolltyp ausgleichen. Beim Netzwerk-Load-Balancing kommen Weiterleitungsregeln zum Einsatz. Diese Regeln verweisen auf Zielpools, die angeben, auf welche Instanzen beim Load-Balancing zurückgegriffen werden kann.
Mit dem Netzwerk-Load-Balancing können Sie die Arbeitslast für weitere TCP/UDP-basierte Protokolle (z. B. SMTP-Traffic) ausgleichen und Ihre Anwendung kann die Pakete direkt überprüfen.
Die Bereitstellung des Netzwerk-Load-Balancings ist denkbar einfach: Sie fügen einfach das Feld type: LoadBalancer
zu Ihrer Dienstkonfigurationsdatei hinzu.
HTTP(S)-Load-Balancing verwenden
Wenn Sie erweiterte Load-Balancing-Features wie HTTPS-Load-Balancing, inhaltsbasiertes Load-Balancing oder regionsübergreifendes Load-Balancing benötigen, können Sie den GKE-Dienst in das HTTP/HTTPS-Load-Balancing von Compute Engine einbinden. Kubernetes stellt die Ingress-Ressource zur Verfügung, die eine Sammlung von Regeln für das Routing von externem Traffic zu Kubernetes-Endpunkten enthält. In GKE übernimmt eine Ingress-Ressource die Bereitstellung und Konfiguration des HTTP/HTTPS-Load-Balancers von Compute Engine.
Weitere Informationen zur Verwendung des HTTP/HTTPS-Load-Balancers von GKE finden Sie unter HTTP-Load-Balancing mit Ingress einrichten.
Mit GKE skalieren
Zum automatischen Anpassen der Clustergröße können Sie Cluster Autoscaler verwenden. Dieses Feature überprüft regelmäßig, ob Pods auf einen Knoten mit freien Ressourcen warten, aber nicht geplant werden. Falls solche Pods vorhanden sind, passt der Autoscaler den Knotenpool an, wenn dadurch das Planen der wartenden Pods ermöglicht würde.
Cluster Autoscaler überwacht außerdem die Nutzung aller Knoten. Wenn ein Knoten längere Zeit nicht benötigt wird und alle zugehörigen Pods an anderer Stelle geplant werden können, wird der Knoten gelöscht.
Weitere Informationen zu Cluster Autoscaler sowie den zugehörigen Einschränkungen und Best Practices finden Sie in der Dokumentation zu Cluster Autoscaler.
Logging und Monitoring mit GKE
Wie bei Compute Engine stehen Ihnen mit Logging und Monitoring Logging- und Monitoringdienste zur Verfügung. Logging erfasst und speichert Logs aus Anwendungen und Diensten. Mit einem Logging-Agent können Sie Logs ansehen oder exportieren und Logs anderer Anbieter einbinden.
Monitoring stellt Dashboards und Benachrichtigungen für Ihre Website bereit. Sie konfigurieren Monitoring mithilfe der Google Cloud Console. Sie können die Leistungsmesswerte für Clouddienste, virtuelle Maschinen und häufig verwendete Open-Source-Server wie MongoDB, Apache, Nginx und Elasticsearch überprüfen. Mit der Monitoring API können Sie Monitoringdaten abrufen und benutzerdefinierte Messwerte erstellen.
DevOps mit GKE verwalten
Wenn Sie GKE verwenden, genießen Sie bereits viele Vorteile, durch die sich DevOps auszeichnet. Dies gilt insbesondere für die schnelle und einfache Paketerstellung, Bereitstellung und Verwaltung. Für die Anforderungen Ihrer CI/CD-Workflows können Sie auf Tools zurückgreifen, die für die Cloud entwickelt wurden, z. B. Cloud Build und Cloud Deploy oder beliebte Tools wie Jenkins. In den folgenden Artikeln finden Sie weitere Informationen:
Mit App Engine auf eine verwaltete Plattform aufbauen
In Google Cloud wird die verwaltete PaaS (Platform as a Service) als App Engine bezeichnet. Wenn Sie Ihre Website auf App Engine aufbauen, können Sie sich ganz auf die Codierung Ihrer Features konzentrieren und Google die Verwaltung der unterstützenden Infrastruktur überlassen. App Engine stellt eine Vielzahl von Features bereit, mit denen Skalierung, Load-Balancing, Logging, Monitoring und Sicherheit viel einfacher gestaltet werden können, als in einem Szenario, in dem Sie allein für deren Erstellung und Verwaltung zuständig sind. Mit App Engine können Sie in den unterschiedlichsten Programmiersprachen programmieren und eine Vielzahl anderer Google Cloud-Dienste verwenden.
App Engine stellt die Standardumgebung bereit, mit der Sie Anwendungen in einer sicheren Sandbox-Umgebung ausführen können. Die App Engine-Standardumgebung verteilt Anfragen auf mehrere Server und skaliert die Server entsprechend den Trafficanforderungen. Ihre Anwendung wird in einer eigenen sicheren und zuverlässigen Umgebung ausgeführt, die von der Hardware, dem Betriebssystem oder dem physischen Standort des Servers unabhängig ist.
App Engine stellt die flexible Umgebung bereit, um Ihnen noch mehr Optionen anbieten zu können. Wenn Sie die flexible Umgebung verwenden, wird Ihre Anwendung auf konfigurierbaren Compute Engine-Instanzen ausgeführt, aber App Engine verwaltet die Hosting-Umgebung für Sie. Dies bedeutet, dass Sie zusätzliche Laufzeiten nutzen können, darunter benutzerdefinierte Laufzeiten, und dadurch noch mehr Programmiersprachen zur Auswahl haben. Außerdem können Sie die Flexibilität von Compute Engine nutzen und beispielsweise unter einer Vielzahl von CPU- und Speicheroptionen auswählen.
Programmiersprachen
Die App Engine-Standardumgebung stellt Standardlaufzeiten bereit und Sie schreiben Quellcode in bestimmten Versionen der unterstützten Programmiersprachen.
In der flexiblen Umgebung schreiben Sie Quellcode in einer Version einer beliebigen unterstützten Programmiersprache. Sie können diese Laufzeiten anpassen oder eine eigene Laufzeitumgebung mit einem benutzerdefinierten Docker-Image oder einer Dockerfile bereitstellen.
Wenn für Sie die verwendete Programmiersprache ausschlaggebend ist, müssen Sie entscheiden, ob die von der App Engine-Standardumgebung bereitgestellten Laufzeiten Ihren Anforderungen entsprechen. Ist dies nicht der Fall, sollten Sie die Verwendung der flexiblen Umgebung in Betracht ziehen.
Informationen dazu, welche Umgebung den Anforderungen Ihrer App am besten entspricht, finden Sie unter App Engine-Umgebung auswählen.
Anleitungen für erste Schritte nach Programmiersprache
Die folgenden Anleitungen unterstützen Sie bei den ersten Schritten im Umgang mit der App Engine-Standardumgebung:
- Hello World in Python
- Hello World in Java
- Hello World in PHP
- Hello World in Ruby
- Hello World in Go
- Hello World in Node.js
Die folgenden Anleitungen unterstützen Sie bei den ersten Schritten im Umgang mit der flexiblen Umgebung:
- Erste Schritte mit Python
- Einstieg in Java
- Erste Schritte mit PHP
- Jetzt starten mit Go
- Jetzt starten mit Node.js
- Erste Schritte mit Ruby
- Jetzt starten mit .NET
Daten mit App Engine speichern
App Engine stellt Optionen für die Speicherung Ihrer Daten bereit:
Name | Struktur | Konsistenz |
---|---|---|
Firestore | Schemalos | Hohe Konsistenz |
Cloud SQL | Relational | Hohe Konsistenz |
Cloud Storage | Dateien und zugehörige Metadaten | Sehr konsistent, außer bei der Durchführung von Listenvorgängen, bei denen eine Liste von Buckets oder Objekten abgerufen wird. |
Sie können mit der Standardumgebung auch mehrere Datenbanken von Drittanbietern verwenden.
Wenn Sie weitere Informationen zum Speicher in App Engine erhalten möchten, rufen Sie Speicheroption auswählen auf und wählen Sie anschließend die gewünschte Programmiersprache aus.
Wenn Sie die flexible Umgebung verwenden, können Sie dieselben Speicheroptionen nutzen wie in der Standardumgebung. Außerdem steht eine breitere Palette von Drittanbieter-Datenbanken zur Verfügung. Weitere Informationen zu Datenbanken von Drittanbietern in der flexiblen Umgebung finden Sie unter Datenbanken von Drittanbietern verwenden.
Load-Balancing und automatische Skalierung mit App Engine
Standardmäßig leitet App Engine eingehende Anfragen automatisch an entsprechende Back-End-Instanzen weiter und übernimmt das Load-Balancing. Wenn Sie aber die Features des HTTP(S)-Load-Balancing für Unternehmen mit komplettem Funktionsumfang von Google Cloud nutzen möchten, können Sie serverlose Netzwerk-Endpunktgruppen verwenden.
Mit App Engine lassen sich Instanzen bei Trafficschwankungen automatisch erstellen und herunterfahren. Alternativ haben Sie die Möglichkeit, eine Anzahl an Instanzen festzulegen, die unabhängig vom Umfang des Traffics ausgeführt werden sollen.
Logging und Monitoring mit App Engine
In App Engine werden Anfragen automatisch protokolliert und Sie können diese Logs in der Google Cloud Console aufrufen. App Engine arbeitet außerdem mit standardmäßigen sprachspezifischen Bibliotheken, die Logging-Funktionen bereitstellen, und leitet die Logeinträge an die Logs in der Google Cloud Console weiter. In Python können Sie beispielsweise das Standard-Python-Logging-Modul nutzen und in Java den Logback-Appender oder java.util.logging
mit Cloud Logging einbinden. Auf diese Weise nutzen Sie den kompletten Feature-Umfang von Cloud Logging, wobei nur wenige Zeilen mit Google Cloud-spezifischem Code erforderlich sind.
Cloud Monitoring bietet Features für das Monitoring Ihrer App Engine-Anwendungen. In der Google Cloud Console können Sie Vorfälle, Verfügbarkeitsdiagnosen und andere Details beobachten.
Mit Cloud Run auf einer serverlosen Plattform entwickeln
Mit der serverlosen Plattform von Google Cloud können Sie Code nach Ihren Anforderungen schreiben, ohne sich Gedanken über die zugrunde liegende Infrastruktur machen zu müssen. Damit lassen sich serverlose Full-Stack-Anwendungen mit Speicher, Datenbanken, maschinellem Lernen und mehr von Google Cloud erstellen.
Für containerisierte Websites haben Sie auch die Möglichkeit, diese Anwendungen zusätzlich zur Verwendung von GKE in Cloud Run bereitzustellen. Cloud Run ist eine vollständig verwaltete, serverlose Plattform, mit der Sie hochskalierbare containerisierte Anwendungen in Google Cloud ausführen können. Sie zahlen dabei nur für die Zeit, in der Ihr Code ausgeführt wird.
Mit Containern können Sie mit Cloud Run ausgereifte Technologien wie Nginx, Express.js und Django nutzen, um Ihre Websites zu erstellen, auf Ihre SQL-Datenbank in Cloud SQL zuzugreifen und dynamische HTML-Seiten zu rendern.
Die Cloud Run-Dokumentation enthält eine Kurzanleitung für den schnellen Einstieg.
Daten mit Cloud Run speichern
Cloud Run-Container sind sitzungsspezifisch. Sie müssen dafür die zugehörigen Kontingente und Limits für Ihre Anwendungsfälle berücksichtigen. Dateien können für die Verarbeitung vorübergehend in einer Containerinstanz gespeichert werden. Dieser Speicher stammt aus dem für den Dienst verfügbaren Arbeitsspeicher, wie im Laufzeitvertrag beschrieben.
Für nichtflüchtigen Speicher können Sie wie bei App Engine Google Cloud-Dienste wie Cloud Storage, Firestore oder Cloud SQL nutzen. Alternativ haben Sie auch die Möglichkeit, die Speicherlösung eines Drittanbieters zu verwenden.
Load-Balancing und Autoscaling mit Cloud Run
Standardmäßig werden bei Verwendung von Cloud Run eingehende Anfragen automatisch an entsprechende Back-End-Container weitergeleitet und das Load-Balancing übernommen. Wenn Sie aber die Features des HTTP(S)-Load-Balancing für Unternehmen mit komplettem Funktionsumfang von Google Cloud nutzen möchten, können Sie serverlose Netzwerk-Endpunktgruppen verwenden.
Mit HTTP(S)-Load-Balancing können Sie Cloud CDN aktivieren oder Traffic aus mehreren Regionen bereitstellen. Darüber hinaus haben Sie die Möglichkeit, Ihren Dienst mithilfe von Middleware wie API Gateway zu optimieren.
Bei Cloud Run verwaltet Google Cloud das Autoscaling für Containerinstanzen für Sie. Jede Revision wird automatisch auf die Anzahl der Containerinstanzen skaliert, die zum Verarbeiten aller eingehenden Anfragen erforderlich sind. Wenn eine Revision keinen Traffic empfängt, wird sie standardmäßig auf null Containerinstanzen skaliert. Bei Bedarf können Sie diese Standardeinstellung ändern, um eine Instanz mithilfe der Einstellung Mindestinstanzen als inaktiv oder einsatzbereit festzulegen.
Logging und Monitoring mit Cloud Run
Cloud Run bietet zwei Arten von Logs, die automatisch an Cloud Logging gesendet werden:
- Anfragelogs: Logs von Anfragen, die an Cloud Run-Dienste gesendet werden. Diese Logs werden automatisch erstellt.
- Containerlogs: Logs, die von den Containerinstanzen ausgegeben werden, üblicherweise aus Ihrem eigenen Code, und in unterstützte Speicherorte geschrieben werden, wie unter Containerlogs schreiben erläutert.
Sie können Logs für Ihren Dienst auf verschiedene Weise aufrufen:
- Verwenden Sie die Cloud Run-Seite in der Google Cloud Console
- Verwenden Sie den Cloud Logging-Log-Explorer in der Google Cloud Console.
Beide Anzeigemethoden untersuchen dieselben Logs, die in Cloud Logging gespeichert sind. Der Log-Explorer von Cloud Logging bietet jedoch weitere Details und Filterfunktionen.
Sie können mit Cloud Monitoring die Leistung von Cloud Run überwachen, Messwerte erfassen und Verfügbarkeitsdiagnosen durchführen. Bei Überschreiten bestimmter Grenzwerte erhalten Sie eine Benachrichtigung. Es gelten die Google Cloud Observability-Preise. Das bedeutet, dass für die Messwerte der vollständig verwalteten Version von Cloud Run keine Gebühren anfallen. Sie können auch benutzerdefinierte Cloud Monitoring-Messwerte verwenden.
Cloud Run wird automatisch in Cloud Monitoring eingebunden. Es ist keine Einrichtung und keine Konfiguration erforderlich. Das bedeutet, dass die Messwerte Ihrer Cloud Run-Dienste automatisch bei deren Ausführung erfasst werden.
Content-Management-Systeme erstellen
Das Hosten einer Website ist gleichbedeutend mit dem Verwalten Ihrer Website-Assets. Cloud Storage stellt ein globales Repository für diese Assets bereit. In einer gemeinsamen Architektur werden statische Inhalte für Cloud Storage bereitgestellt und anschließend mit Compute Engine synchronisiert, um dynamische Seiten zu rendern. Cloud Storage kann mit vielen Content-Management-Systemen (CMS) von Drittanbietern eingesetzt werden, darunter WordPress, Drupal und Joomla. Darüber hinaus stellt Cloud Storage eine mit Amazon S3 kompatible API bereit. Demnach ist jedes mit S3 kompatible System auch mit Cloud Storage kompatibel.
Das folgende Diagramm zeigt eine Beispielarchitektur für ein Content-Management-System.
Nächste Schritte
- Referenzarchitekturen, Diagramme und Best Practices zu Google Cloud kennenlernen. Weitere Informationen zu Cloud Architecture Center