Configurer un service Media CDN

Ce guide de démarrage rapide explique comment configurer un service Media CDN devant dans un bucket Cloud Storage. Vous pouvez utiliser cette configuration pour les tests ou comme base pour un environnement de production.


Pour obtenir des instructions détaillées sur cette tâche directement dans la console Google Cloud, cliquez sur Visite guidée :

Visite guidée


Cette page décrit les procédures suivantes :

  1. Créez un bucket Cloud Storage pour stocker votre contenu.
  2. Activez les services requis.
  3. Créer une ressource EdgeCacheOrigin à laquelle connecter Media CDN dans votre bucket.
  4. Créez une ressource EdgeCacheService pour configurer le routage des requêtes et le cache pour le contenu de l'origine.
  5. Vérifier si une réponse est mise en cache

Avant de commencer

Assurez-vous de disposer des éléments suivants :

  • Accès à Media CDN pour votre projet actuel.

  • Une installation de Google Cloud CLI. Utilisez la version 345.0.0 ou ultérieure.

    Si nécessaire, utilisez gcloud version pour vérifier la version et gcloud components update pour mettre à jour la gcloud CLI installée.

    La CLI gcloud fournit le groupe de sous-commandes gcloud edge-cache pour gérer les configurations Media CDN nouvelles et existantes.

  • Les autorisations IAM (Identity and Access Management) requises pour créer Ressources Media CDN. Media CDN dispose des rôles IAM prédéfinis suivants :

    • roles/networkservices.edgeCacheAdmin
    • roles/networkservices.edgeCacheUser
    • roles/networkservices.edgeCacheViewer

Créer un bucket Cloud Storage

Le contenu Media CDN peut provenir d'emplacements tels que un bucket Cloud Storage, un emplacement de stockage tiers ou une charge de votre équilibreur de charge.

Dans ce guide de démarrage rapide, nous allons stocker le contenu dans un bucket Cloud Storage.

  1. Créer un bucket Cloud Storage accessible publiquement et nommez-la my-bucket.

    Si vous préférez ne pas rendre votre bucket Cloud Storage accessible au public, vous devez autoriser Media CDN à y accéder. Pour en savoir plus, consultez Utiliser des buckets Cloud Storage privés

  2. Importez un fichier dans le bucket.

Activer les services requis

Pour configurer et déployer des services Media CDN, vous devez activer l'API Network Services et l'API Certificate Manager pour votre projet.

Console

  1. Activez l'API Network Services.

    Activer l'API

  2. Activez l'API Certificate Manager.

    Activer l'API

gcloud

  1. Activez l'API Network Services:

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

    gcloud services enable certificatemanager.googleapis.com
    

Pour en savoir plus sur l'activation et la désactivation des services, consultez la documentation de Service Usage.

Créer une ressource EdgeCacheOrigin

Créez une origine qui pointe vers votre bucket Cloud Storage.

Console

  1. Dans la console Google Cloud, accédez à la page Media CDN.

    Accéder à Media CDN

  2. Cliquez sur l'onglet Origines.

  3. Cliquez sur Créer une origine.

  4. Saisissez cloud-storage-origin comme nom de point de départ.

  5. Facultatif: saisissez une description de l'origine.

  6. Dans le champ Adresse d'origine, cliquez sur Sélectionner un bucket Google Cloud Storage, accédez au bucket Cloud Storage nommé my-bucket, puis cliquez sur Sélectionner.

    Si vous disposez d'une origine externe, sélectionnez Spécifier un nom de domaine complet ou une adresse IP , puis saisissez le nom de domaine complet ou l'adresse IP.

  7. Cliquez sur Créer une origine.

Après environ 10 minutes, la ressource EdgeCacheOrigin nouvellement créée apparaît dans la liste des origines de votre projet sur la page Origins.

Pour mettre à jour une adresse de départ, cliquez sur celle-ci, puis sur Modifier.

gcloud

Exécutez la commande gcloud edge-cache origins create :

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

Remplacez les éléments suivants :

  • ORIGIN: nom de la nouvelle origine
  • ADDRESS : nom du bucket, gs://my-bucket

    Si vous avez une origine externe, remplacez ADDRESS par le nom de domaine complet (FQDN). ou son adresse IP.

Pour afficher l'origine que vous venez de créer, utilisez la méthode Commande gcloud edge-cache origins list

Pour mettre à jour l'adresse de départ, utilisez la méthode Commande gcloud edge-cache origins update

API

Utilisez la méthode edgeCacheOrigins.create :

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

Remplacez les éléments suivants :

  • PARENT: ressource parente au format projects/PROJECT/locations/global
  • ORIGIN_ID: nom court de la nouvelle origine.
  • ADDRESS : nom du bucket, gs://my-bucket

    Si vous avez une origine externe, remplacez ADDRESS par le nom de domaine complet (FQDN). ou son adresse IP.

Pour afficher l'origine nouvellement créée, utilisez la méthode edgeCacheOrigins.list.

Pour mettre à jour l'adresse de départ, utilisez la méthode Méthode 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}"
}

Créer une ressource EdgeCacheService

Votre ressource EdgeCacheService configure les paramètres de routage, de certificat et de mise en cache, et peut pointer vers des ressources EdgeCacheOrigin.

Créez une ressource EdgeCacheService de base qui:

  • Mise en cache de toutes les réponses de notre origine configurée pendant une heure.
  • Il définit un en-tête de réponse x-cache-status qui renvoie l'état du cache. (HIT ou MISS, par exemple)

(Facultatif) Enregistrez un nom de domaine pour ce service.

Console

  1. Dans la console Google Cloud, accédez à la page Media CDN.

    Accéder à Media CDN

  2. Cliquez sur l'onglet Services.

  3. Cliquez sur Créer un service.

  4. Saisissez un nom unique pour votre service, par exemple my-service, puis cliquez sur Suivant.

  5. Dans la section Routage, cliquez sur Ajouter une règle d'hôte, puis saisissez un ou plusieurs noms de domaine d'hôte.

  6. Pour Hôtes, saisissez un nom de domaine hôte (par exemple, web.example.com).

  7. Cliquez sur Ajouter une règle de routage.

    1. Pour Priorité, spécifiez 1.
    2. Cliquez sur Ajouter une condition de correspondance. Pour Chemin d'accès correspondant, spécifiez / puis cliquez sur OK.
    3. Sélectionnez Extraire d'une origine, puis sélectionnez l'origine que vous avez configurée.
    4. Cliquez sur Actions complémentaires.
    5. Dans Action d'en-tête, cliquez sur Ajouter un élément. Ensuite, procédez comme suit :
      1. Pour Type, sélectionnez En-têtes de réponse à ajouter.
      2. Cliquez sur Ajouter un en-tête.
      3. Pour Nom, spécifiez x-cache-status. Pour Valeur, spécifiez {cdn_cache_status}.
      4. Cliquez sur OK.
    6. Dans Action de routage, cliquez sur Ajouter un élément. Ensuite, procédez comme suit :
      1. Dans le champ Type, sélectionnez Règle CDN.
      2. Pour le mode cache, sélectionnez FORCE_CACHE_ALL.
      3. Cliquez sur OK.
    7. Cliquez sur Enregistrer.
  8. Cliquez sur Créer un service.

La ressource EdgeCacheService que vous venez de créer s'affiche sur la page Services dans la liste des services de votre projet.

gcloud

  1. Dans Cloud Shell, utilisez un éditeur de texte pour créer un fichier local appelé my-service.yaml

    Un tel fichier indique ce qui suit:

    • Fonctionnement du routage : mise en correspondance de l'hôte, puis du chemin d'accès
    • Fonctionnement de la mise en cache (en fonction du mode de cache et de la valeur TTL)
    • des modifications apportées aux requêtes et aux réponses (par exemple, en insérant la variable cdn_cache_status dans un en-tête de réponse ;
  2. Collez l'exemple de contenu suivant dans le fichier, puis enregistrez-le :

    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}"
    

    Remplacez les éléments suivants :

    • SERVICE : nom du service
    • DOMAIN: domaine du nouveau service

    Si vous spécifiez le nom de domaine, Media CDN répond avec un message Erreur 404 pour les autres hôtes. * ORIGIN: nom de l'origine associée

  3. Exécutez la commande gcloud edge-cache services import. par le fichier .yaml:

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

    Afficher le service que vous venez de créer dans la liste de EdgeCacheService ressources de votre projet, utilisez commande gcloud edge-cache services list.

API

Utilisez la méthode 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}"
                }
              ]
            },
          }
        ]
      }
    ]
  }
}

Remplacez les éléments suivants :

  • PARENT: ressource parente au format projects/PROJECT/locations/global
  • SERVICE_ID: nom du service
  • DOMAIN: domaine du nouveau service

    Si vous spécifiez le nom de domaine, Media CDN répond avec le message une erreur 404 pour les autres hôtes ;

  • ORIGIN_NAME : nom de l'origine associée

Pour afficher le service nouvellement créé dans la liste des ressources EdgeCacheService de votre projet, utilisez la méthode 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 création de votre premier service peut prendre plusieurs minutes. Media CDN provisionne des adresses IP dédiées et transfère votre configuration vers des milliers d'emplacements périphériques. Les mises à jour ultérieures d'un service, telles que la modification d'une configuration de route ou de paramètres de correspondance, sont plus rapides.

Récupérer les adresses IP

Pour afficher les adresses IP du service que vous venez de créer, procédez comme suit:

Console

  1. Dans la console Google Cloud, accédez à la page Media CDN.

    Accéder à Media CDN

  2. Cliquez sur l'onglet Services.

  3. Pour connaître les adresses IP de votre service, consultez la cellule Adresses.

    Si la cellule est vide, actualisez le navigateur.

gcloud

Exécutez la commande gcloud edge-cache services describe :

gcloud edge-cache services describe SERVICE

Remplacez SERVICE par le nom du service.

Le résultat affiche les adresses IP attribuées à votre service :

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

API

Utilisez la méthode edgeCacheServices.get :

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

Remplacez SERVICE_NAME par le nom complet du service. Utilisez le format suivant :

projects/PROJECT/locations/global/edgeCacheServices/SERVICE_ID

Remplacez SERVICE_ID par le nom court du service.

Les informations récupérées incluent les adresses IP attribuées au service:

ipv4Addresses:
    IPV4_ADDRESS
ipv6Addresses:
    IPV6_ADDRESS

Vérifier si une réponse est mise en cache

Avant de tester le service, assurez-vous que les paramètres peuvent être mis en cache contenus stockés à votre origine afin que Media CDN peut la récupérer.

Pour vérifier que votre service est correctement configuré pour mettre en cache le contenu, utilisez l'outil de ligne de commande curl pour émettre des requêtes et vérifier les réponses. curl est également disponible dans Cloud Shell dans la console Google Cloud.

Si vous souhaitez utiliser EdgeCacheService avec votre domaine, vous pouvez attribuer l'adresse IP de EdgeCacheService à un enregistrement de domaine. Pour instructions, consultez la page Configurer votre domaine à l'aide de Cloud DNS. Une fois votre domaine configuré, accédez à votre contenu avec l'curl suivant :

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

Si vous n'avez pas configuré le DNS pour qu'il pointe vers vos adresses IP provisionnées, utilisez la classe resolve pour remplacer l'adresse utilisée par curl.

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

Remplacez les éléments suivants :

  • DOMAIN_NAME : domaine de l'hôte que vous avez spécifié lors de la création du service
  • IP_ADDRESS: adresse IP du service en tant que visible dans la colonne Adresses de la liste des services
  • FILE_NAME: nom du fichier dans lequel vous avez importé le bucket

Exemple :

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

La commande produit initialement un résultat semblable au suivant, avec l'état miss, car Media CDN n'a pas encore récupéré les données demandées à partir de l'origine :

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

Lorsque vous soumettez à nouveau la même demande autant de fois que vous le souhaitez, une erreur un résultat semblable à ce qui suit, avec l'état hit:

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

Si l'état hit n'est pas affiché, vérifiez les points suivants:

  • La réponse peut être mise en cache.
  • Le mode de cache configuré permet la mise en cache du contenu.
  • L'origine ne définit pas d'instructions de cache qui empêchent la mise en cache. Pour plus plus d'informations, consultez la section Configuration du cache.

Vous avez maintenant testé une ressource EdgeCacheService de base pouvant être diffusée dans le monde entier. Un service de niveau production peut nécessiter des certificats SSL (TLS), des origines multiples et une stratégie de sécurité Google Cloud Armor.

Facultatif : Effectuer un nettoyage

Supprimez toutes les ressources que vous ne prévoyez pas d'utiliser à nouveau.

Console

  1. Dans la console Google Cloud, accédez à la page Media CDN.

    Accéder à Media CDN

  2. Cliquez sur l'onglet Services.

  3. Sélectionnez votre service, puis cliquez sur Supprimer.

  4. Cliquez sur l'onglet Origines.

  5. Sélectionnez votre origine, puis cliquez sur Supprimer.

gcloud

  1. Pour répertorier les ressources que vous avez créées, utilisez les commandes gcloud edge-cache origins list et gcloud edge-cache services list.

  2. Pour supprimer le service, utilisez la commande gcloud edge-cache services delete :

    gcloud edge-cache services delete SERVICE
    

    Remplacez SERVICE par le nom du service.

  3. Pour supprimer l'origine, utilisez la méthode Commande gcloud edge-cache origins delete:

    gcloud edge-cache origins delete ORIGIN
    

    Remplacez ORIGIN par le nom de l'origine.

API

  1. Pour répertorier les ressources que vous avez créées, utilisez la méthode Méthode edgeCacheServices.list et la méthode edgeCacheOrigins.list.

  2. Pour supprimer le service, utilisez la Méthode edgeCacheServices.delete:

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

    Remplacez SERVICE_NAME par le nom complet du service. Utilisez le format suivant :

    projects/PROJECT/locations/global/edgeCacheServices/SERVICE_ID
    

    Remplacez SERVICE_ID par le nom court. du service.

  3. Pour supprimer l'origine, utilisez la méthode Méthode edgeCacheOrigins.delete:

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

    Remplacez ORIGIN par le nom complet du origine. Utilisez le format suivant :

    projects/PROJECT/locations/global/edgeCacheOrigins/ORIGIN_ID
    

    Remplacez ORIGIN_ID par le nom court de l'origine.

Répétez ce processus pour toutes les autres ressources que vous avez créées et que vous ne souhaitez pas utiliser. à réutiliser, comme le bucket Cloud Storage.

Étape suivante