Guide de démarrage rapide : Configurer Media CDN

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

Cette page décrit les procédures suivantes :

  1. Créer une ressource EdgeCacheOrigin qui représente l'emplacement de stockage de votre contenu.
  2. Créer une ressource EdgeCacheService qui met en cache le contenu de la ressource EdgeCacheOrigin configurée et définit une valeur TTL par défaut.
  3. Récupérer l'adresse IP d'un service.
  4. Confirmer la mise en cache d'une réponse avec des en-têtes d'état.

Avant de commencer

Vous devez disposer des éléments suivants :

  • L'accès à Media CDN pour votre projet actuel. Consultez la section Demander l'accès.
  • Un bucket Cloud Storage existant et accessible publiquement avec du contenu (fichier ou image, par exemple) à utiliser comme origine de contenu, ou un autre point de terminaison HTTP accessible au public avec du contenu.
  • Une installation de Google Cloud CLI.
  • Les autorisations IAM (Identity and Access Management) sont requises pour créer des ressources Media CDN. Media CDN dispose des rôles IAM prédéfinis suivants :

    • roles/networkservices.edgeCacheAdmin
    • roles/networkservices.edgeCacheUser
    • roles/networkservices.edgeCacheViewer
  • gcloud CLI version 345.0.0 ou ultérieure.

    Utilisez gcloud version et gcloud components update pour vérifier la version et mettre à jour votre installation de gcloud CLI.

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 dans votre projet.

Console

  1. Activez l'API Network Services.

    Activer l'API

  2. Activez l'API Certificate Manager.

    Activer l'API

gcloud

Pour activer le service d'API Network Services dans votre projet actuel, exécutez la commande suivante :

gcloud services enable networkservices.googleapis.com

Pour activer l'API Certificate Manager, exécutez la commande suivante :

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 origine

Un objet EdgeCacheOrigin représente un emplacement de contenu, tel qu'un bucket Cloud Storage, un emplacement de stockage tiers ou un équilibreur de charge.

Dans ce cas, vous créez une origine mappée à votre bucket Cloud Storage nommé my-bucket. Si votre bucket Cloud Storage n'est pas accessible au public, vous devez autoriser Media CDN à y accéder. Pour en savoir plus, consultez Utiliser des buckets Cloud Storage privés.

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 un nom pour l'origine. Exemple : cloud-storage-origin.

  5. Saisissez une description facultative pour l'origine.

  6. Pour Adresse d'origine, choisissez Sélectionner un bucket Google Cloud Storage.

  7. Naviguez vers votre bucket Cloud Storage.

  8. Conservez les paramètres par défaut.

  9. Cliquez sur Créer une origine.

gcloud

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

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

Si vous avez une origine externe, vous pouvez configurer Media CDN de façon à l'utiliser plutôt que d'utiliser un bucket Cloud Storage. Exemple :

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 un nom pour l'origine. Exemple : external-origin.

  5. Sous Adresse d'origine, sélectionnez Spécifier un nom de domaine complet ou une adresse IP.

  6. Saisissez le nom de domaine complet ou l'adresse IP de votre origine externe.

  7. Conservez les paramètres par défaut.

  8. Cliquez sur Créer une origine.

gcloud

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

Vous pouvez mettre à jour l'adresse d'origine d'une origine existante à l'aide de la commande update.

Créer un service

Votre ressource EdgeCacheService configure les paramètres de routage, de certificat et de mise en cache, et peut être mappée à une ou plusieurs ressources d'origine.

Vous créez une ressource EdgeCacheService de base qui effectue les opérations suivantes :

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

Pour créer le EdgeCacheService, 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. Cliquez sur Créer un service.

    1. Saisissez un nom pour votre service.
    2. Cliquez sur Suivant.
  4. Cliquez sur Ajouter une règle d'hôte.

    1. Saisissez un ou plusieurs noms de domaine hôte.
  5. Cliquez sur Ajouter une règle de routage.

    1. Dans le champ Priorité, saisissez 1.
    2. Cliquez sur Ajouter une condition de correspondance.
      1. Pour Type de correspondance, sélectionnez Correspondance de préfixe.
      2. Dans le champ Correspondance de chemin d'accès, saisissez /.
      3. Cliquez sur OK.
    3. Configurez l'action principale.
      1. Sélectionnez Extraire d'une origine.
      2. Dans Sélectionner une origine, sélectionnez une origine que vous avez configurée.
    4. Cliquez sur Actions complémentaires.
      1. Dans Action d'en-tête, cliquez sur Ajouter un élément.
        1. Pour Type, sélectionnez En-têtes de réponse à ajouter.
        2. Cliquez sur Ajouter un en-tête.
        3. Dans le champ Nom, saisissez x-cache-status.
        4. Pour Valeur, saisissez {cdn_cache_status}.
        5. Cliquez sur OK.
      2. Dans Action de routage, cliquez sur Ajouter un élément.
        1. Dans le champ Type, sélectionnez Règle CDN.
        2. Conservez les paramètres par défaut.
        3. Cliquez sur OK.
  6. Cliquez sur Enregistrer.

  7. Cliquez sur Créer un service.

gcloud

Dans Cloud Shell, utilisez un éditeur de texte de terminal tel que Nano ou Vim pour créer un fichier local appelé my-service.yaml. Collez le contenu suivant dans le fichier, puis enregistrez-le :

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

Assurez-vous que la valeur du champ origin correspond au nom de l'origine que vous avez créée à l'étape précédente.

Pour configurer un ou plusieurs noms de domaine de sorte qu'ils pointent vers ce service, ajoutez les noms de domaine à la liste routing.hostRules.hosts[]. Media CDN répond avec une erreur 404 pour les autres hôtes.

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

La création de votre premier service peut prendre jusqu'à une minute. 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.

Retrouvez le EdgeCacheService que vous venez de créer dans votre liste de services :

Console

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

    Accéder à Media CDN

  2. Cliquez sur l'onglet Services.

gcloud

gcloud edge-cache services list

Récupérer les adresses IP

Pour récupérer les adresses IP (IPv4 et IPv6) de votre nouveau EdgeCacheService, vous pouvez émettre une commande describe :

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 votre service, consultez la colonne Adresses.

gcloud

gcloud edge-cache services describe SERVICE_NAME

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_NAME
...

À partir de là, vous pouvez configurer le domaine auprès de votre fournisseur DNS pour qu'il pointe vers ces adresses une fois qu'elles seront prêtes.

Tester la mise en cache

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 n'avez pas configuré le DNS pour qu'il pointe vers vos adresses IP provisionnées, vous pouvez remplacer l'adresse utilisée par curl.

curl -svo /dev/null --resolve DOMAIN_NAME:80:IP_ADDRESS "http://DOMAIN_NAME/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
...
< x-cache-status: MISS
...

Lorsque vous envoyez à nouveau la même requête un quelconque nombre de fois, elle génère un résultat semblable à celui-ci, avec l'état HIT :

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

Si l'état HIT n'apparaît pas, 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 en savoir plus, consultez la page Présentation de la mise en cache.

Vous avez maintenant testé un élément EdgeCacheService simple capable de diffuser du contenu 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

Pour nettoyer les ressources inutilisées, utilisez les commandes delete appropriées pour chaque ressource.

Pour répertorier les ressources que vous avez créées, utilisez les commandes services list et origins list.

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

Pour supprimer une origine, supprimez d'abord le service, puis l'origine :

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

Répétez cette procédure pour toutes les autres ressources que vous souhaitez nettoyer.

Étapes suivantes