Kurzanleitung: Media CDN einrichten

In dieser Kurzanleitung wird gezeigt, wie Sie Media CDN vor einem Cloud Storage-Bucket einrichten. Sie können diese Konfiguration zum Testen oder als Grundlage für eine Produktionsumgebung verwenden.

Diese Anleitung führt Sie durch die folgenden Verfahren:

  1. Erstellen Sie eine EdgeCacheOrigin-Ressource, die den Speicherort Ihrer Inhalte darstellt.
  2. Erstellen Sie eine EdgeCacheService-Ressource, die Inhalte aus dem konfigurierten EdgeCacheOrigin im Cache speichert und eine Standard-TTL festlegt.
  3. Rufen Sie die IP-Adresse für einen Dienst ab.
  4. Prüfen Sie, ob eine Antwort mit Statusheadern im Cache gespeichert wird.

Hinweis

Folgende Voraussetzungen müssen erfüllt sein:

  • Zugriff auf Media CDN für Ihr aktuelles Projekt. Weitere Informationen finden Sie unter Zugriff anfordern.
  • Einen vorhandenen, öffentlich zugänglichen Cloud Storage-Bucket mit Inhalt (z. B. eine Videodatei oder ein Bild), der als Herkunft des Inhalts verwendet werden soll, oder einen anderen öffentlich erreichbaren HTTP-Endpunkt mit Inhalt.
  • Die installierte Google Cloud CLI.
  • Die Berechtigungen, die zum Erstellen von Media CDN-Ressourcen erforderlich sind. Media CDN hat die folgenden vordefinierten IAM-Rollen:

    • roles/networkservices.edgeCacheAdmin
    • roles/networkservices.edgeCacheUser
    • roles/networkservices.edgeCacheViewer
  • gcloud CLI Version 345.0.0 oder höher.

    Verwenden Sie gcloud version und gcloud components update, um die Version zu prüfen und die installierte gcloud CLI zu aktualisieren.

Erforderliche Dienste aktivieren

Zum Konfigurieren und Bereitstellen von Media CDN-Diensten müssen Sie in Ihrem Projekt sowohl die Network Services API als auch die Certificate Manager API aktivieren.

Console

  1. Aktivieren Sie die Network Services API.

    API aktivieren

  2. Aktivieren Sie die Certificate Manager API:

    API aktivieren

gcloud

Führen Sie den folgenden Befehl aus, um den Network Services API-Dienst in Ihrem aktuellen Projekt zu aktivieren:

gcloud services enable networkservices.googleapis.com

Führen Sie den folgenden Befehl aus, um die Certificate Manager API zu aktivieren:

gcloud services enable certificatemanager.googleapis.com

Weitere Informationen zum Aktivieren und Deaktivieren von Diensten finden Sie in der Dokumentation zu Service Usage.

Ursprung erstellen

Ein EdgeCacheOrigin stellt einen Speicherort für Inhalte dar, z. B. einen Cloud Storage-Bucket, einen Speicherort eines Drittanbieters oder einen Load-Balancer.

In diesem Fall erstellen Sie einen Ursprung, der Ihrem Cloud Storage-Bucket mit dem Namen my-bucket zugeordnet wird. Wenn Ihr Cloud Storage-Bucket nicht öffentlich zugänglich ist, müssen Sie Media CDN Berechtigungen zum Zugriff auf den Bucket erteilen. Weitere Informationen finden Sie unter Private Cloud Storage-Buckets verwenden.

Console

  1. Rufen Sie in der Google Cloud Console die Seite Media CDN auf.

    Zu Media CDN

  2. Klicken Sie auf den Tab Ursprünge.

  3. Klicken Sie auf Ursprung erstellen.

  4. Geben Sie einen Namen für den Ursprung ein. Beispiel: cloud-storage-origin.

  5. Geben Sie eine optionale Beschreibung für den Ursprung ein.

  6. Wählen Sie für Ursprungsadresse die Option Google Cloud Storage-Bucket auswählen aus.

  7. Rufen Sie Ihren Cloud Storage-Bucket auf.

  8. Behalten Sie die Standardeinstellungen bei.

  9. Klicken Sie auf Ursprung erstellen.

gcloud

Die gcloud CLI stellt die Unterbefehlsgruppe gcloud edge-cache zum Verwalten neuer und vorhandener Media CDN-Konfigurationen bereit.

gcloud edge-cache origins create ORIGIN \
    --origin-address="gs://my-bucket"

Terraform

resource "google_network_services_edge_cache_origin" "default" {
  name           = "cloud-storage-origin"
  origin_address = "gs://my-bucket-123123" # Update bucket name
  description    = "Media Edge Origin with Cloud Storage as Origin"
  max_attempts   = 3 # Min is 1s, Default is 1s & Max 3
  timeout {
    connect_timeout  = "10s"  # Min is 1s, Default is 5s & Max 15s
    response_timeout = "120s" # Min is 1s, Default is 30s & Max 120s
    read_timeout     = "5s"   # Min is 1s, Default is 15s & Max 30s
  }
}

Wenn Sie einen externen Ursprung haben, können Sie Media CDN so konfigurieren, dass dieser Ursprung anstelle eines Cloud Storage-Buckets verwendet wird. Beispiele:

Console

  1. Rufen Sie in der Google Cloud Console die Seite Media CDN auf.

    Zu Media CDN

  2. Klicken Sie auf den Tab Ursprünge.

  3. Klicken Sie auf Ursprung erstellen.

  4. Geben Sie einen Namen für den Ursprung ein. Beispiel: external-origin.

  5. Wählen Sie für Ursprungsadresse die Option FQDN oder IP-Adresse angeben aus.

  6. Geben Sie den FQDN oder die IP-Adresse für den externen Ursprung ein.

  7. Behalten Sie die Standardeinstellungen bei.

  8. Klicken Sie auf Ursprung erstellen.

gcloud

gcloud edge-cache origins create external-origin \
    --origin-address="DOMAIN_NAME"

Sie können die Ursprungsadresse für einen vorhandenen Ursprung mit dem Befehl update aktualisieren.

Dienste erstellen

Ihre Ressource EdgeCacheService konfiguriert die Routing-, Zertifikat- und Caching-Einstellungen und kann einer oder mehreren Ursprungsressourcen zugeordnet werden.

Sie erstellen eine einfache EdgeCacheService-Ressource, die Folgendes ausführt:

  • Speichert alle Antworten von unserem konfigurierten Ursprung eine Stunde im Cache
  • Legt einen cache-status-Antwortheader fest, der den Cache-Status zurückgibt (z. B. HIT oder MISS).

So erstellen Sie EdgeCacheService:

Console

  1. Rufen Sie in der Google Cloud Console die Seite Media CDN auf.

    Zu Media CDN

  2. Klicken Sie auf den Tab Services (Dienste).

  3. Klicken Sie auf Dienst erstellen.

    1. Geben Sie einen Namen für den Dienst ein.
    2. Klicken Sie auf Next (Weiter).
  4. Klicken Sie auf Hostregel hinzufügen.

    1. Geben Sie einen oder mehrere Hostdomainnamen ein.
  5. Klicken Sie auf Routingregel hinzufügen.

    1. Geben Sie als Priorität 1 ein.
    2. Klicken Sie auf Übereinstimmungsbedingung hinzufügen.
      1. Wählen Sie als Übereinstimmungstyp die Option Präfixabgleich aus.
      2. Geben Sie für Pfadübereinstimmung / ein.
      3. Klicken Sie auf Fertig.
    3. Konfigurieren Sie Primäre Aktion.
      1. Wählen Sie Vom Ursprung abrufen aus.
      2. Wählen Sie in Quelle auswählen einen von Ihnen konfigurierten Ursprung aus.
    4. Klicken Sie auf Add-on-Aktionen.
      1. Klicken Sie unter Headeraktion auf Element hinzufügen.
        1. Wählen Sie für Typ die Option Antwortheader zum Hinzufügen aus.
        2. Klicken Sie auf Header hinzufügen.
        3. Geben Sie für Name x-cache-status ein.
        4. Für Wert geben Sie {cdn_cache_status} ein.
        5. Klicken Sie auf Fertig.
      2. Klicken Sie unter Routingaktion auf Element hinzufügen.
        1. Wählen Sie für Typ die Option CDN-Richtlinie aus.
        2. Behalten Sie die Standardeinstellungen bei.
        3. Klicken Sie auf Fertig.
  6. Klicken Sie auf Speichern.

  7. Klicken Sie auf Dienst erstellen.

gcloud

Verwenden Sie in Cloud Shell einen Terminaltexteditor wie Nano oder Vim, um eine lokale Datei mit dem Namen my-service.yaml zu erstellen. Fügen Sie folgenden Inhalt in die Datei ein und speichern Sie sie:

name: SERVICE_NAME
routing:
  hostRules:
  - hosts:
    # List any domain names that the service handles requests for
    - DOMAIN_NAME
    pathMatcher: routes
  pathMatchers:
  - name: routes
    routeRules:
    - priority: 1
      matchRules:
      - prefixMatch: /
      # This should match the origin name created in step 1.
      origin: ORIGIN
      routeAction:
        cdnPolicy:
          # Cache static content - for example, video files
          cacheMode: CACHE_ALL_STATIC
          defaultTtl: 3600s
      headerAction:
        responseHeadersToAdd:
        - headerName: "x-cache-status"
          headerValue: "{cdn_cache_status}"

Achten Sie darauf, dass der Wert des Felds origin mit dem Namen des Ursprungs übereinstimmt, den Sie im vorherigen Schritt erstellt haben.

Um einen oder mehrere Domainnamen zu konfigurieren, die auf diesen Dienst verweisen, fügen Sie den Domainnamen der Liste routing.hostRules.hosts[] hinzu. Media CDN antwortet mit einem 404-Fehler für andere Hosts.

gcloud edge-cache services import SERVICE_NAME \
    --source=my-service.yaml

Terraform

resource "google_network_services_edge_cache_service" "default" {
  name        = "cloud-media-service"
  description = "Media Edge Service with Cloud Storage as Origin"
  routing {
    host_rule {
      description  = "host rule description"
      hosts        = ["googlecloudexample.com"]
      path_matcher = "routes"
    }
    path_matcher {
      name = "routes"
      route_rule {
        description = "a route rule to match against"
        priority    = 1
        match_rule {
          prefix_match = "/"
        }
        # Referring to previously defined Edge Cache Origin
        origin = google_network_services_edge_cache_origin.default.name
        route_action {
          cdn_policy {
            cache_mode  = "CACHE_ALL_STATIC"
            default_ttl = "3600s"
          }
        }
        header_action {
          response_header_to_add {
            header_name  = "x-cache-status"
            header_value = "{cdn_cache_status}"
          }
        }
      }
    }
  }
}

Es kann bis zu einer Minute dauern, bis der erste Dienst erstellt wird. Media CDN stellt dedizierte IP-Adressen bereit und überträgt Ihre Konfiguration an Tausende von Edge-Standorten. Nachfolgende Aktualisierungen eines Dienstes, z. B. das Ändern einer Routenkonfiguration oder übereinstimmender Parameter, sind schneller.

Rufen Sie den neu erstellten EdgeCacheService in der Liste Ihrer Dienste auf:

Console

  1. Rufen Sie in der Google Cloud Console die Seite Media CDN auf.

    Zu Media CDN

  2. Klicken Sie auf den Tab Services (Dienste).

gcloud

gcloud edge-cache services list

IP-Adressen abrufen

Zum Abrufen der IP-Adressen (IPv4 und IPv6) für den neu erstellten EdgeCacheService können Sie einen describe-Befehl ausführen:

Console

  1. Rufen Sie in der Google Cloud Console die Seite Media CDN auf.

    Zu Media CDN

  2. Klicken Sie auf den Tab Services (Dienste).

  3. Informationen zu Ihrem Dienst finden Sie in der Spalte Adressen.

gcloud

gcloud edge-cache services describe SERVICE_NAME

Die Ausgabe zeigt die Ihrem Dienst zugewiesenen IP-Adressen:

ipv4Addresses:
- IPV4_ADDRESS
ipv6Addresses:
- IPV6_ADDRESS
name: projects/my-project/locations/global/edgeCacheServices/SERVICE_NAME
...

Von hier aus können Sie Ihre Domain bei Ihrem DNS-Anbieter so konfigurieren, dass sie auf diese Adressen verweist, sobald sie bereit sind.

Caching testen

Wenn Sie testen möchten, ob der Dienst ordnungsgemäß für das Caching von Inhalten konfiguriert ist, verwenden Sie das curl-Befehlszeilentool, um Anfragen zu senden und die Antworten zu prüfen. curl ist auch in Cloud Shell in der Google Cloud Console verfügbar.

Wenn Sie DNS nicht so konfiguriert haben, dass es auf Ihre bereitgestellten IP-Adressen verweist, können Sie die von curl verwendete Adresse überschreiben.

curl -svo /dev/null --resolve DOMAIN_NAME:80:IP_ADDRESS "http://DOMAIN_NAME/file.mp4"

Der Befehl erzeugt anfangs eine Ausgabe ähnlich der folgenden mit dem Status MISS, da Media CDN die angeforderten Daten nicht bereits vom Ursprung abgerufen hat:

< HTTP/2 200
...
< x-cache-status: MISS
...

Wenn Sie dieselbe Anfrage beliebig oft senden, wird eine Ausgabe ähnlich der folgenden mit dem Status HIT ausgegeben:

< HTTP/2 200
...
< x-cache-status: HIT
...

Wenn der Status nicht HIT lautet, prüfen Sie Folgendes:

  • Die Antwort kann im Cache gespeichert werden.
  • Der konfigurierte Cache-Modus ermöglicht das Caching des Inhalts.
  • Der Ursprung legt keine Cache-Anweisungen fest, die Caching verhindern.

Weitere Informationen finden Sie unter Caching – Übersicht.

Sie haben jetzt einen einfachen EdgeCacheService getestet, der Inhalte global bereitstellen kann. Ein Produktionsdienst benötigt möglicherweise SSL-Zertifikate (TLS), mehrere Ursprünge und eine Google Cloud Armor-Sicherheitsrichtlinie.

Optional: Bereinigen

Verwenden Sie zum Bereinigen nicht verwendeter Ressourcen die entsprechenden delete-Befehle für jede Ressource.

Mit den Befehlen services list und origins list können Sie die von Ihnen erstellten Ressourcen auflisten.

Console

  1. Rufen Sie in der Google Cloud Console die Seite Media CDN auf.

    Zu Media CDN

  2. Klicken Sie auf den Tab Services (Dienste).

  3. Wählen Sie Ihren Dienst aus und klicken Sie auf Löschen.

  4. Klicken Sie auf den Tab Ursprünge.

  5. Wählen Sie den Ursprung aus und klicken Sie auf Löschen.

gcloud

Um einen Ursprung zu löschen, löschen Sie zuerst den Dienst und dann den Ursprung:

gcloud edge-cache services delete SERVICE_NAME
gcloud edge-cache origins delete ORIGIN

Wiederholen Sie diesen Vorgang für alle anderen Ressourcen, die Sie bereinigen möchten.

Nächste Schritte