Configura un servizio Media CDN

Questa guida rapida mostra come configurare un servizio Media CDN di fronte a un bucket Cloud Storage. Puoi utilizzare questa configurazione per i test o come base per un ambiente di produzione.


Per seguire le indicazioni dettagliate per questa attività direttamente nella console Google Cloud, fai clic su Procedura guidata:

Procedura guidata


Questa pagina illustra le seguenti procedure:

  1. Crea un bucket Cloud Storage per archiviare i tuoi contenuti.
  2. Attiva i servizi richiesti.
  3. Crea una risorsa EdgeCacheOrigin per connettere Media CDN al tuo bucket.
  4. Crea una risorsa EdgeCacheService per configurare il routing delle richieste e la memorizzazione nella cache per i contenuti nell'origine.
  5. Testa se una risposta è memorizzata nella cache.

Prima di iniziare

Assicurati di avere quanto segue:

Crea un bucket Cloud Storage

I contenuti della CDN multimediale possono provenire da origini come un bucket Cloud Storage, una posizione di archiviazione di terze parti o un bilanciamento del carico.

In questa guida rapida, archiviamo i contenuti in un bucket Cloud Storage.

  1. Crea un bucket Cloud Storage accessibile pubblicamente e chiamalo my-bucket.

    Se preferisci non rendere il tuo bucket Cloud Storage accessibile pubblicamente, devi concedere a Media CDN le autorizzazioni per accedere al bucket. Per ulteriori informazioni, consulta Utilizzare i bucket Cloud Storage privati.

  2. Carica un file nel bucket.

Attiva i servizi richiesti

Per configurare ed eseguire il deployment dei servizi Media CDN, devi attivare sia l'API Network Services sia l'API Certificate Manager per il tuo progetto.

Console

  1. Abilita l'API Network Services.

    Abilitare l'API

  2. Abilita l'API Certificate Manager.

    Abilitare l'API

gcloud

  1. Abilita l'API Network Services:

    gcloud services enable networkservices.googleapis.com
    
  2. Abilita l'API Certificate Manager:

    gcloud services enable certificatemanager.googleapis.com
    

Per ulteriori informazioni sull'attivazione e la disattivazione dei servizi, consulta la documentazione di Service Usage.

Crea una risorsa EdgeCacheOrigin

Crea un'origine che punti al tuo bucket Cloud Storage.

Console

  1. Nella console Google Cloud, vai alla pagina Media CDN.

    Vai a Media CDN

  2. Fai clic sulla scheda Origini.

  3. Fai clic su Crea origine.

  4. Inserisci il nome dell'origine come cloud-storage-origin.

  5. (Facoltativo) Inserisci una descrizione per l'origine.

  6. Per Indirizzo di origine, scegli Seleziona un bucket Google Cloud Storage, accedi al bucket Cloud Storage denominato my-bucket e fai clic su Seleziona.

    Se invece hai un'origine esterna, scegli Specifica un FQDN o un indirizzo IP e inserisci l'FQDN o l'indirizzo IP.

  7. Fai clic su Crea origine.

Dopo circa 10 minuti, la risorsa EdgeCacheOrigin appena creata viene visualizzata nell'elenco delle origini del progetto nella pagina Origini.

Per aggiornare un indirizzo di partenza, fai clic sull'origine e poi su Modifica.

gcloud

Utilizza il comando gcloud edge-cache origins create:

gcloud edge-cache origins create ORIGIN \
    --origin-address="ADDRESS"

Sostituisci quanto segue:

  • ORIGIN: il nome della nuova origine
  • ADDRESS: il nome del bucket, gs://my-bucket

    Se hai un'origine esterna, sostituisci ADDRESS con l'FQDN o l'indirizzo IP.

Per visualizzare l'origine appena creata, utilizza il comando gcloud edge-cache origins list.

Per aggiornare l'indirizzo di origine, utilizza il comando gcloud edge-cache origins update.

API

Utilizza il metodo edgeCacheOrigins.create:

POST https://networkservices.googleapis.com/v1/PARENT/edgeCacheOrigins?edgeCacheOriginId=ORIGIN_ID
{
  "name": "ORIGIN_ID",
  "originAddress: "ADDRESS"
}

Sostituisci quanto segue:

  • PARENT: la risorsa principale nel formato projects/PROJECT/locations/global
  • ORIGIN_ID: il nome breve della nuova origine
  • ADDRESS: il nome del bucket, gs://my-bucket

    Se hai un'origine esterna, sostituisci ADDRESS con l'FQDN o l'indirizzo IP.

Per visualizzare l'origine appena creata, utilizza il metodo edgeCacheOrigins.list.

Per aggiornare l'indirizzo di origine, utilizza il metodo edgeCacheOrigins.patch.

Terraform

resource "google_network_services_edge_cache_origin" "default" {
  name           = "cloud-storage-origin"
  origin_address = "gs://my-bucket-${random_id.unique_suffix.hex}"
}

Crea una risorsa EdgeCacheService

La risorsa EdgeCacheService configura le impostazioni di routing, certificato e memorizzazione nella cache e può puntare a risorse EdgeCacheOrigin.

Crea una risorsa EdgeCacheService di base che:

  • Memorizza nella cache tutte le risposte della nostra origine configurata per un'ora
  • Imposta un'intestazione di risposta x-cache-status che restituisce lo stato della cache (ad esempio HIT o MISS)

Se vuoi, registra un nome di dominio per questo servizio.

Console

  1. Nella console Google Cloud, vai alla pagina Media CDN.

    Vai a Media CDN

  2. Fai clic sulla scheda Services (Servizi).

  3. Fai clic su Crea servizio.

  4. Inserisci un nome univoco per il tuo servizio, ad esempio my-service, poi fai clic su Avanti.

  5. Nella sezione Routing, fai clic su Aggiungi regola host e inserisci uno o più nomi di dominio host.

  6. In Host inserisci un nome di dominio dell'host, ad esempio web.example.com.

  7. Fai clic su Aggiungi regola di percorso.

    1. In Priorità, specifica 1.
    2. Fai clic su Aggiungi condizione di corrispondenza, per Corrispondenza del percorso specifica /, quindi fai clic su Fine.
    3. Seleziona Recupera da un'origine, quindi seleziona l'origine che hai configurato.
    4. Fai clic su Azioni aggiuntive.
    5. In Azione intestazione, fai clic su Aggiungi un elemento. Poi:
      1. Per Tipo, seleziona Intestazioni di risposta da aggiungere.
      2. Fai clic su Aggiungi intestazione.
      3. In Nome, specifica x-cache-status e in Valore, specifica {cdn_cache_status}.
      4. Fai clic su Fine.
    6. In Azione del percorso, fai clic su Aggiungi un elemento. Poi:
      1. In Tipo, seleziona Criterio CDN.
      2. Per Modalità cache, seleziona FORCE_CACHE_ALL.
      3. Fai clic su Fine.
    7. Fai clic su Salva.
  8. Fai clic su Crea servizio.

La risorsa EdgeCacheService appena creata viene visualizzata nella pagina Servizi nell'elenco dei servizi del progetto.

gcloud

  1. In Cloud Shell, utilizza un editor di testo per creare un file locale denominato my-service.yaml.

    Un file di questo tipo indica quanto segue:

    • Come funziona il routing: prima viene trovata una corrispondenza per l'host e poi per il percorso
    • Come funziona la memorizzazione nella cache, in base alla modalità e al TTL della cache
    • Come vengono modificate le richieste e le risposte, ad esempio inserendo la variabile cdn_cache_status in un'intestazione di risposta
  2. Incolla i seguenti contenuti di esempio nel file e salvalo:

    name: SERVICE
    routing:
      hostRules:
      - hosts:
        - DOMAIN 
        pathMatcher: routes
      pathMatchers:
      - name: routes
        routeRules:
        - priority: 1
          matchRules:
          - prefixMatch: /
          origin: ORIGIN
          routeAction:
            cdnPolicy:
              cacheMode: CACHE_ALL_STATIC
              defaultTtl: 3600s
          headerAction:
            responseHeadersToAdd:
            - headerName: "x-cache-status"
              headerValue: "{cdn_cache_status}"
    

    Sostituisci quanto segue:

    • SERVICE: nome del servizio
    • DOMAIN: il dominio del nuovo servizio

    Se specifichi il nome di dominio, Media CDN risponde con un errore 404 per gli altri host. * ORIGIN: il nome dell'origine correlata

  3. Utilizza il comando gcloud edge-cache services import con il file .yaml:

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

    Per visualizzare il servizio appena creato nell'elenco delle risorse EdgeCacheService nel tuo progetto, utilizza il comando gcloud edge-cache services list.

API

Utilizza il metodo edgeCacheServices.create:

POST https://networkservices.googleapis.com/v1/PARENT/edgeCacheServices?edgeCacheServiceId=SERVICE_ID
{
  "name": "SERVICE_ID",
  "routing": {
    "hostRules": [
      {
        "hosts": ["DOMAIN"],
        "pathMatcher": "routes"
      }
    ],
    "pathMatchers": [
      {
        "name": "routes",
        "routeRules": [
          {
            "priority": "1",
            "matchRules": [
              {
                "prefixMatch": "/"
              }
            ],
            "origin": "ORIGIN",
            "routeAction": {
               "cdnPolicy": {
                 "cacheMode": "CACHE_ALL_STATIC",
                 "defaultTtl": "3600s"
               }
            }
            "headerAction": {
              "responseHeadersToAdd": [
                {
                  "headerName": "x-cache-status",
                  "headerValue": "{cdn_cache_status}"
                }
              ]
            },
          }
        ]
      }
    ]
  }
}

Sostituisci quanto segue:

  • PARENT: la risorsa principale nel formato projects/PROJECT/locations/global
  • SERVICE_ID: il nome del servizio
  • DOMAIN: il dominio del nuovo servizio

    Se specifichi il nome di dominio, Media CDN risponde con un errore 404 per gli altri host.

  • ORIGIN_NAME: il nome dell'origine correlata

Per visualizzare il servizio appena creato nell'elenco delle risorse EdgeCacheService nel tuo progetto, utilizza il metodo edgeCacheServices.list.

Terraform

resource "google_network_services_edge_cache_service" "default" {
  name = "cloud-media-service"
  routing {
    host_rule {
      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 = "/"
        }
        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}"
          }
        }
      }
    }
  }
}

La creazione del primo servizio potrebbe richiedere diversi minuti. Media CDN esegue il provisioning di indirizzi IP dedicati e spinge la configurazione su migliaia di località perimetrali. Gli aggiornamenti successivi a un servizio, come la modifica della configurazione di un percorso o dei parametri di corrispondenza, sono più rapidi.

Recupera gli indirizzi IP

Per visualizzare gli indirizzi IP del servizio appena creato:

Console

  1. Nella console Google Cloud, vai alla pagina Media CDN.

    Vai a Media CDN

  2. Fai clic sulla scheda Services (Servizi).

  3. Per gli indirizzi IP del servizio, consulta la cella Indirizzi.

    Se la cella è vuota, aggiorna il browser.

gcloud

Utilizza il comando gcloud edge-cache services describe:

gcloud edge-cache services describe SERVICE

Sostituisci SERVICE con il nome del servizio.

L'output mostra gli indirizzi IP assegnati al servizio:

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

API

Utilizza il metodo edgeCacheServices.get:

GET https://networkservices.googleapis.com/v1/SERVICE_NAME

Sostituisci SERVICE_NAME con il nome completo del servizio. Utilizza il formato seguente:

projects/PROJECT/locations/global/edgeCacheServices/SERVICE_ID

Sostituisci SERVICE_ID con il nome breve del servizio.

I dettagli recuperati includono gli indirizzi IP assegnati al servizio:

ipv4Addresses:
    IPV4_ADDRESS
ipv6Addresses:
    IPV6_ADDRESS

Testa se una risposta è memorizzata nella cache

Prima di testare il servizio, assicurati di avere contenuti memorizzabili nella cache archiviati nell'origine in modo che Media CDN possa recuperarli.

Per verificare che il servizio sia configurato correttamente per memorizzare nella cache i contenuti, utilizza lo strumento a riga di comando curl per inviare richieste e controllare le risposte. curl è disponibile anche in Cloud Shell nella console Google Cloud.

Se vuoi utilizzare il tuo EdgeCacheService con il tuo dominio, puoi assegnare l'indirizzo IP del EdgeCacheService a un record di dominio. Per istruzioni, consulta Configurare il dominio utilizzando Cloud DNS. Dopo aver configurato il dominio, accedi ai contenuti con il seguente comando curl:

curl -svo /dev/null "http://DOMAIN_NAME/FILE_NAME"

Se non hai configurato il DNS in modo che punti ai tuoi indirizzi IP di cui è stato eseguito il provisioning, utilizza l'opzione resolve per sostituire l'indirizzo utilizzato da curl.

curl -svo /dev/null --resolve DOMAIN_NAME:80:IP_ADDRESS "http://DOMAIN_NAME/FILE_NAME"

Sostituisci quanto segue:

  • DOMAIN_NAME : il dominio host specificato durante la creazione del servizio
  • IP_ADDRESS: l'indirizzo IP del servizio come visualizzato nella colonna Indirizzi nell'elenco dei servizi
  • FILE_NAME: il nome del file che hai caricato nel bucket

Esempio:

curl -svo /dev/null --resolve web.example.com:80:34.104.37.129 "http://web.example.com/file.mp4"

Il comando inizialmente produce un output simile al seguente, con lo stato miss, perché Media CDN non ha recuperato i dati richiesti dall'origine:

< HTTP/2 200 OK
...
< x-cache-status: den;miss
...

Quando invii di nuovo la stessa richiesta un numero qualsiasi di volte, viene prodotto un output simile al seguente, con lo stato hit:

< HTTP/2 200 OK
...
< x-cache-status: den;hit
...

Se non viene visualizzato lo stato hit, controlla quanto segue:

  • La risposta è memorizzabile nella cache.
  • La modalità cache configurata consente la memorizzazione nella cache dei contenuti.
  • L'origine non imposta direttive della cache che ne impediscono la memorizzazione. Per ulteriori informazioni, consulta Configurazione della cache.

Ora hai testato una risorsa EdgeCacheService di base che può pubblicare contenuti a livello globale. Un servizio di livello di produzione potrebbe richiedere certificati SSL (TLS), più origini e un criterio di sicurezza di Google Cloud Armor.

(Facoltativo) Pulizia

Elimina le risorse che non intendi utilizzare di nuovo.

Console

  1. Nella console Google Cloud, vai alla pagina Media CDN.

    Vai a Media CDN

  2. Fai clic sulla scheda Services (Servizi).

  3. Seleziona il tuo servizio e fai clic su Elimina.

  4. Fai clic sulla scheda Origini.

  5. Seleziona l'origine e fai clic su Elimina.

gcloud

  1. Per elencare le risorse che hai creato, utilizza il comando gcloud edge-cache origins list e il comando gcloud edge-cache services list.

  2. Per eliminare il servizio, utilizza il comando gcloud edge-cache services delete:

    gcloud edge-cache services delete SERVICE
    

    Sostituisci SERVICE con il nome del servizio.

  3. Per eliminare l'origine, utilizza il comando gcloud edge-cache origins delete:

    gcloud edge-cache origins delete ORIGIN
    

    Sostituisci ORIGIN con il nome dell'origine.

API

  1. Per elencare le risorse che hai creato, utilizza il metodo edgeCacheServices.list e il metodo edgeCacheOrigins.list.

  2. Per eliminare il servizio, utilizza il metodo edgeCacheServices.delete:

    DELETE https://networkservices.googleapis.com/v1/SERVICE_NAME
    

    Sostituisci SERVICE_NAME con il nome completo del servizio. Utilizza il formato seguente:

    projects/PROJECT/locations/global/edgeCacheServices/SERVICE_ID
    

    Sostituisci SERVICE_ID con il nome breve del servizio.

  3. Per eliminare l'origine, utilizza il metodo edgeCacheOrigins.delete:

    DELETE https://networkservices.googleapis.com/v1/ORIGIN
    

    Sostituisci ORIGIN con il nome completo dell'origine. Utilizza il formato seguente:

    projects/PROJECT/locations/global/edgeCacheOrigins/ORIGIN_ID
    

    Sostituisci ORIGIN_ID con il nome breve dell'origine.

Ripeti questa procedura per tutte le altre risorse che hai creato e che non intendi riutilizzare, ad esempio il bucket Cloud Storage.

Passaggi successivi