Diese Seite enthält Best Practices zur optimierten und schnelleren Inhaltsbereitstellung mit Cloud CDN. Die Abschnitte sind in mehrere zentrale Bereiche unterteilt.
Cloud CDN verwendet einen externen Application Load Balancer als Ursprung für cache-fähige Inhalte. Über einen externen Application Load Balancer kann Nutzern eine Kombination aus statischen und dynamisch erstellten Inhalten zur Verfügung gestellt werden. Dies erfolgt über eine globale IP-Adresse der folgenden Back-End-Typen:
- Instanzgruppen
- Zonale Netzwerk-Endpunktgruppen (NEGs)
- Serverlose NEGs: Ein oder mehrere App Engine-, Cloud Run- oder Cloud Run Functions-Dienste
- Internet-NEGs für externe Back-Ends
- Buckets in Cloud Storage
Aufgrund der nahtlosen Einbindung in Google Cloud haben Sie mehrere Möglichkeiten, Cloud CDN bereitzustellen und Inhalte zu verwalten. Sie können die hier aufgeführten Best Practices nutzen, um Ihre Bereitstellung zu planen und zu optimieren. Weitere Informationen finden Sie unter Cloud CDN einrichten.
Cache-Trefferquote optimieren
Die folgenden empfohlenen Praktiken helfen, die Cache-Trefferquote zu optimieren.
Statische Inhalte im Cache speichern
Als Best Practice zur Verbesserung der Leistung müssen Sie beim Aktivieren von Cloud CDN den richtigen Cache-Modus für Ihre Anwendung auswählen.
Die flexibelste und allgemein bevorzugte Methode zum Verwalten von Cache-Regeln ist die Verwendung des Headers "Cachesteuerung". Wenn Sie nicht mit der Verwendung von Ursprungs-Cachesteuerungsheadern vertraut sind, empfiehlt es sich, Cloud CDN zu erlauben, statische Inhalte automatisch im Cache zu speichern.
Wenn Sie statische Antworten von Ihrem Ursprung automatisch im Cache speichern möchten, können Sie die Einstellung --cache-mode=CACHE_ALL_STATIC
verwenden (Standard). Mit dieser Einstellung kann Cloud CDN gängige statische Inhaltstypen im Cache speichern, wenn der Ursprung keine Caching-Anweisungen in den Antwortheadern angibt. Der Inhalt muss den beschriebenen Kategorien entsprechen. Andernfalls werden Inhalte nicht im Cache gespeichert.
Nutzerspezifische Inhalte nicht im Cache speichern
In einigen Fällen können Browser nutzerspezifische Inhalte im Cache speichern. Verwenden Sie Cloud CDN nicht zum Speichern von nutzerspezifischen Inhalten im Cache.
Benutzerdefinierte Cache-Schlüssel zur Verbesserung der Cache-Trefferquote verwenden
Für Leistung und Skalierbarkeit ist es wichtig, die Cache-Trefferquote zu optimieren. Cloud CDN nutzt standardmäßig die vollständige Anfrage-URL, um den Cache-Schlüssel zu erstellen. Sie können benutzerdefinierte Cache-Schlüssel nutzen, um die Cache-Trefferquote zu optimieren, sodass Cloud CDN den Cache nicht unnötig fragmentiert.
Mit benutzerdefinierten Cache-Schlüsseln können Sie eine beliebige Kombination aus Protokoll-, Host- und Anfragestrings ein- oder weglassen. Im Folgenden finden Sie einige Beispiele für die Verwendung benutzerdefinierter Cache-Schlüssel:
Sie haben zwei Hosts, die in dieselbe IP-Adresse aufgelöst werden und zum selben Dienst gehen. In diesem Beispiel ist die gesamte Website auf den beiden Hosts identisch. Standardmäßig speichert Cloud CDN aufgrund des unterschiedlichen Headers
Host:
in den HTTP-Anfragen zwei Kopien im Cache. Mit einem benutzerdefinierten Cache-Schlüssel können Sie Cloud CDN dazu veranlassen, den Hostteil der Anfrage zu ignorieren und die Cache-Einträge freizugeben.In einem genaueren Beispiel haben Sie zwei Websites in verschiedenen Domains mit demselben Logo. Der Inhalt der Website ist unterschiedlich, aber Sie verwenden das gleiche Firmenlogo für beide Domains und Sie haben einen dedizierten Backend-Dienst mit freigegebenen Inhalten. Wenn Sie für den Backend-Dienst, der das Logo enthält, Cloud CDN aktivieren und die Cache-Schlüssel anpassen möchten, müssen Sie das Häkchen im Kästchen Host entfernen. Der Cache ignoriert dann die Domain, speichert aber das Logo.
Ein Logo muss im Cache gespeichert werden, unabhängig davon, ob es über HTTP oder HTTPS angezeigt wird. Wenn Sie die Cache-Schlüssel für den Backend-Dienst, der das Logo enthält, anpassen, sollten Sie das Kästchen Protokoll deaktivieren, sodass der Cache-Eintrag des Logos gleichermaßen für Anfragen über HTTP und HTTPS aufgerufen wird.
Wie Sie Cache-Schlüssel anpassen, können Sie unter Cache-Schlüssel verwenden herausfinden.
Leistung optimieren
Die folgenden Best Practices helfen, die Leistung zu optimieren.
Unterstützung der Protokolle HTTP/3 und QUIC muss aktiviert sein
HTTP/3 ist ein Internetprotokoll der nächsten Generation. Es baut auf QUIC auf, einem Protokoll, das aus dem ursprünglichen Google QUIC-Protokoll (gQUIC) entwickelt wurde. HTTP/3 wird zwischen dem externen HTTP(S)-Load-Balancer, Cloud CDN und Clients unterstützt.
Um die Leistung mit Cloud CDN zu steigern, muss HTTP/3 aktiviert sein.
Negatives Caching verwenden
Negatives Caching bietet eine detaillierte Kontrolle über das Caching für häufige Fehler oder Weiterleitungen. Wenn Cloud CDN bestimmte Antwortcodes erkennt, wird diese Antwort für eine festgelegte TTL im Cache gespeichert. So können Sie die Belastung am Ursprung verringern und durch die reduzierte Antwortlatenz die Abläufe für die Endnutzer verbessern.
Sicherheit optimieren
Die folgenden empfohlenen Vorgehensweisen helfen, die Sicherheit zu optimieren.
Google Cloud Armor verwenden
Google Cloud Armor kann in Cloud CDN sowohl für im Cache gespeicherte Inhalte als auch für nicht im Cache gespeicherte Inhalte oder Inhalte mit Cache-Fehlern eingebunden werden. Eine Best Practice besteht darin, Google Cloud Armor nach Möglichkeit in Verbindung mit Cloud CDN zu verwenden, um die Sicherheit von Webanwendungen zu erhöhen.
Signierte URLs verwenden
Wenn Sie signierte URLs verwenden, beachten Sie Folgendes:
Speichern Sie öffentliche und private Inhalte in separaten Cloud Storage-Buckets.
Beachten Sie die Best Practices für die Sicherheit.
Private Ursprünge authentifizieren
Die Ursprungsauthentifizierung bietet eine hohe Sicherheit dafür, dass die Anfrage nur von Ihrem eigenen konfigurierten Backend-Dienst stammt. Außerdem bietet es Schutz für die Übertragung der Anfrage und schützt vor der Wiederverwendung des signierten Teils der Anfrage.
Wir empfehlen die Verwendung der privaten Ursprungsauthentifizierung für Amazon S3-Buckets oder kompatible Objektspeicher. Mit der Authentifizierung für private Ursprünge wird sichergestellt, dass nur vertrauenswürdige Verbindungen auf Inhalte in Ihren privaten Ursprüngen zugreifen und dass Nutzer nicht direkt darauf zugreifen.
Wenn Ursprungs-Firewalls den Zugriff auf den Ursprung verhindern, können Sie außerdem eine IP-Zulassungsliste verwenden, um sicherzustellen, dass eine Anfrage von Cloud CDN oder dem externen Application Load Balancer stammt. Dies verhindert jedoch nicht, dass andere Media CDN-Kunden versuchen, in ihrer Konfiguration deinen Ursprung anzugeben und so auf deine Inhalte zuzugreifen.
Cache optimieren
Die folgenden empfohlenen Vorgehensweisen helfen, den Cache zu optimieren.
Cache-TTLs optimieren
Sie können die TTLs festlegen oder überschreiben, um zu optimieren, wie lange Cloud CDN Ihre Antworten im Cache speichert und wann Cloud CDN Ihre Antworten neu validiert.
Sie können auch eine clientseitige TTL definieren, um die Browser-Caches optimal zu nutzen.
Weitere Informationen finden Sie unter TTL-Einstellungen und -Überschreibungen verwenden.
Ablaufzeit für zeitkritischen Inhalt festlegen
Jedes Inhaltselement in einem Cloud CDN-Cache ist mit einer Ablaufzeit verknüpft. Legen Sie daher eine Ablaufzeit fest, die zu Ihrem Anwendungsfall passt. Da Ursprungsserver auf dem Cache-Server abgelaufene Inhalte noch einmal senden müssen, ist es wichtig, dass Sie die Ablaufzeit sorgfältig auswählen.
Eine Methode für die Auswahl der Ablaufzeit ist, Inhalte danach zu kategorisieren, wie oft der entsprechende Inhalt aktualisiert wird. Beispiel:
- Nahezu in Echtzeit stattfindende Aktualisierungen, zum Beispiel Live-Feeds für Sportereignisse oder Verkehr
- Häufige Aktualisierungen, z. B. wöchentliche, tägliche oder stündliche Wetterdaten oder Bilder auf Titelseiten von Nachrichtenportalen
- Selten aktualisierte Elemente, z. B. Website-Logos, CSS- oder JavaScript-Dateien
Wählen Sie anschließend die Ablaufzeit nach der Inhaltskategorie aus. Eine Ablaufzeit von 5 Sekunden eignet sich beispielsweise für Sportergebnisse in Echtzeit, während für Wetteraktualisierungen eine Ablaufzeit von einer Stunde verwendet werden kann. Für Inhalte, die in Cloud Storage gespeichert sind, legen Sie die Ablaufzeiten mithilfe von Cache-Control
-Metadaten fest.
Wenn Inhalte von Compute Engine bereitgestellt werden, bestimmen Sie die Ablaufzeiten, indem Sie Ihre Webserversoftware konfigurieren.
Ablaufzeiten werden durch die Werte max-age
und s-maxage
im Cache-Control
-Header angegeben. Dieser Header wird durch die HTTP-Spezifikation definiert.
Die folgenden Einstellungen im Cache-Control
-Header machen beispielsweise die damit verbundenen Inhalte mit einer Ablaufzeit von 72 Stunden (259.200 Sekunden) öffentlich lesbar und cachefähige:
Cache-Control: public, max-age=259200
Folgen Sie zur Maximierung des Cachings den Richtlinien in der Caching-Übersicht. Denken Sie daran, dass die Werte max-age
und s-maxage
im Metadatenfeld Cache-Control
auf folgende Weise interagieren:
- Die Werte
max-age
unds-maxage
werden in Sekunden gemessen. - Der Wert
s-maxage
gilt nur für freigegebene Caches, nicht für Browser-Caches. - Der Wert
max-age
gilt für alle Caches, sofern er nicht vons-maxage
überschrieben wird.
Für Inhalte, die nur selten geändert werden oder die sich zusammen mit anderen Inhalten ändern müssen, ist es oft sinnvoll, eine lange Ablaufzeit in Kombination mit versionierten URLs zu verwenden.
Verwenden Sie versionierte URLs zur Aktualisierung von Inhalten
Bei Verwendung von versionierten Inhalten wird eine andere Version der gleichen Inhalte vom Server angeboten. Dabei werden die älteren Inhalte entfernt und dem Nutzer werden die neuen Inhalte angezeigt, bevor die Speicherdauer im Cache abgelaufen ist. Die Versionsverwaltung ist kostenlos. Wir empfehlen daher, Versionierung standardmäßig für die Aktualisierung von Cache-fähigen Inhalten zu nutzen.
Um Inhalte zu versionieren, fügen Sie der URL einen Parameter (beispielsweise eine Versionsnummer) hinzu. Es gibt verschiedene Möglichkeiten, Parameter in URLs einzubinden, z. B:
Abfragestring hinzufügen:
file.ext?v=100
.Bei Backend-Buckets müssen alle für die Versionsverwaltung verwendeten Abfragestrings in der Konfiguration für den Backend-Bucket angegeben werden. Weitere Informationen finden Sie unter Abfragestring-Einschlussliste für Cloud Storage-Cache-Schlüssel.
Dateinamen ändern:
file.1.0.0.ext
oderfile_v100.ext
.Pfad ändern:
/v100/file.ext
.
Wenn Sie den Parameter hinzufügen, ändern Sie den Namen der Datei und die URL. Durch diese Änderung ignoriert der Cache sämtliche bereits vorhandenen Cache-Einträge.
Entwertung zum Entfernen von Inhalten sparsam verwenden
Entwertung entfernt Inhalte aus den verteilten Cache-Servern von Cloud CDN, bevor der Cache-Eintrag abläuft. Die Entwertung ist letztendlich konsistent.
Wir empfehlen Ihnen, die Entwertung sparsam und nur als letztes Mittel zu verwenden. Entwertung ist beispielsweise dann nützlich, wenn Sie Inhalte aus rechtlichen Gründen oder aufgrund eines versehentlichen Uploads entfernen müssen. Andernfalls empfehlen wir, wenn möglich die Versionsverwaltung zu nutzen oder zu warten, bis der Inhalt normal abläuft. Cloud CDN-Cache-Server bereinigt regelmäßig Inhalte, auf die selten zugegriffen wird, um Platz für neue Inhalte zu schaffen. Inhalte, auf die 30 Tage lang nicht zugegriffen wurde, werden bedingungslos entfernt.
Cache-Entwertungen sind ratenbegrenzt.
Weitere Informationen zur Entwertung finden Sie unter Cache-Entwertung.
Konsistenz der hochgeladenen Dateien optimieren
Mit den folgenden Best Practices lässt sich die Konsistenz von Dateiuploads optimieren.
Vorhandene Dateien nicht aktualisieren
Laden Sie stattdessen neue Versionen hoch, anstatt vorhandene Dateien zu aktualisieren.
Verwenden Sie für neue Dateien eindeutige Namen, die Versionsnummern oder Datumsangaben enthalten können.
Wenn Sie dem Dateinamen eine Versionsnummer (z. B. file_v2.css
) oder ein Datum (z. B. file_20230806.js
) anhängen, wird von Cloud CDN die richtige, aktualisierte Version abgerufen. Es wird nicht empfohlen, der Datei-URL einen Parameter anzuhängen (z. B. file.css?v=2
), um das Abrufen einer neuen Version zu erzwingen. Bei diesem Ansatz wird das Risiko nicht berücksichtigt, dass eine nicht atomare Ursprungsdatei aktualisiert und teilweise oder unvollständige Dateien im Cache gespeichert werden.
Es ist wichtig, neue Versionen von Abhängigkeiten hochzuladen, bevor Sie die Dateien hochladen, auf die sie verweisen. So wird sichergestellt, dass alle Verweise auf vollständige, aktualisierte Dateien verweisen, wodurch das Risiko verringert wird, dass teilweise aktualisierte oder abgeschnittene Dateien bereitgestellt werden.
Atomare Updates an Dateien vornehmen
Wenn Sie vorhandene Dateien aktualisieren müssen, führen Sie die Aktualisierung atomar durch.
Wenn auf eine Datei zugegriffen und sie im Cache gespeichert wird, bevor der Upload abgeschlossen ist, wird sie möglicherweise als unvollständige oder abgeschnittene Datei im Cache gespeichert. Eine Datei wie /index.html
kann beispielsweise keinen eindeutigen Namen haben, aber auf andere Dateien verweisen, die eindeutige Namen haben.
Wenn Sie eine Datei unter ihrem Zielnamen hochladen, kann es passieren, dass unvollständige Dateien im Cache gespeichert werden, wenn während des Uploads darauf zugegriffen wird. Laden Sie die Datei stattdessen unter einem temporären Namen hoch und benennen Sie sie erst nach Abschluss des Uploads in den Zielnamen um. So wird sichergestellt, dass die Datei bei der Verlinkung vollständig und sofort verfügbar ist.
Wenn vorhandene Dateien aktualisiert werden, kann das Byte-Bereich-Caching dazu führen, dass Cloud CDN Bereiche der vorherigen Datei aufbewahrt, nachdem die neue Datei hochgeladen wurde. Wenn Cloud CDN Bereiche der früheren Datei im Cache gespeichert hat, können Anfragen nach fehlenden Chunks zu teilweisen Antworten führen. Das liegt daran, dass Cloud CDN erkennt, dass sich die Ursprungsdatei geändert hat (weil sich etag
oder last-modified
geändert hat), alle veralteten Inhalte löscht, alle laufenden Downloads beendet und einen Fehler generiert, der den Client zum erneuten Versuch auffordert. Um dieses Problem zu vermeiden, heben Sie die Cache-Dateien für den Bytebereich auf, die aktualisiert werden.
Monitoring und Logging optimieren
Die folgenden Best Practices helfen Ihnen, Monitoring und Logging zu optimieren.
Logging für Cloud CDN muss aktiviert sein
Eine Best Practice für die Verwaltung von Cloud CDN besteht darin, Logging für alle Cloud CDN-fähigen Back-Ends zu aktivieren.
Benutzerdefiniertes Monitoring-Dashboard für Cloud CDN verwenden
Um für eine hohe Zuverlässigkeit und Leistung zu sorgen, sollten Sie regelmäßig Monitoring-Messwerte im Zusammenhang mit Cloud CDN prüfen. Ein guter Ausgangspunkt ist das benutzerdefinierte Monitoring-Dashboard für Cloud CDN.
Leistungstests von Drittanbietern prüfen
Lesen Sie Berichte von Drittanbietern, z. B. Berichte zur Verfügbarkeit, Latenz und zum Durchsatz von Citrix Radar.