Ce guide de démarrage rapide vous explique comment configurer un service Media CDN devant 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 :
Cette page décrit les procédures suivantes :
- Créez un bucket Cloud Storage pour stocker votre contenu.
- Activez les services requis.
- Créez une ressource
EdgeCacheOrigin
pour connecter Media CDN à votre bucket. - Créez une ressource
EdgeCacheService
pour configurer le routage des requêtes et le cache pour le contenu de l'origine. - 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 etgcloud components update
pour mettre à jour votre installation de gcloud CLI.La gcloud CLI 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 des ressources Media CDN.
Créer un bucket Cloud Storage
Le contenu Media CDN peut provenir d'emplacements tels qu'un bucket Cloud Storage, un emplacement de stockage tiers ou un équilibreur de charge.
Dans ce guide de démarrage rapide, nous allons stocker du contenu dans un bucket Cloud Storage.
Créez un bucket Cloud Storage accessible au public et nommez-le
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.
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
Activez l'API Network Services.
Activez l'API Certificate Manager.
gcloud
Activez l'API Network Services:
gcloud services enable networkservices.googleapis.com
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
Dans la console Google Cloud, accédez à la page Media CDN.
Cliquez sur l'onglet Origines.
Cliquez sur Créer une origine.
Saisissez
cloud-storage-origin
comme nom de l'origine.Facultatif: saisissez une description de l'origine.
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 avez 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.
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 Origines.
Pour modifier une adresse d'origine, cliquez dessus, 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 origineADDRESS
: nom du bucket,gs://my-bucket
Si vous avez une origine externe, remplacez
ADDRESS
par le nom de domaine complet ou l'adresse IP.
Pour afficher l'origine nouvellement créée, utilisez la commande gcloud edge-cache origins list
.
Pour mettre à jour l'adresse d'origine, utilisez la 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 formatprojects/PROJECT/locations/global
ORIGIN_ID
: nom abrégé de la nouvelle origineADDRESS
: nom du bucket,gs://my-bucket
Si vous avez une origine externe, remplacez
ADDRESS
par le nom de domaine complet ou l'adresse IP.
Pour afficher l'origine nouvellement créée, utilisez la méthode edgeCacheOrigins.list
.
Pour mettre à jour l'adresse d'origine, utilisez la méthode edgeCacheOrigins.patch
.
Terraform
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 effectue les opérations suivantes:
- Mise en cache de toutes les réponses de notre origine configurée pendant une heure.
- Définit un en-tête de réponse
x-cache-status
qui renvoie l'état du cache (HIT
ouMISS
, par exemple).
Vous pouvez éventuellement enregistrer un nom de domaine pour ce service.
Console
Dans la console Google Cloud, accédez à la page Media CDN.
Cliquez sur l'onglet Services.
Cliquez sur Créer un service.
Saisissez un nom unique pour votre service, par exemple
my-service
, puis cliquez sur Suivant.Dans la section Routage, cliquez sur Ajouter une règle d'hôte, puis saisissez un ou plusieurs noms de domaine d'hôte.
Pour Hôtes, saisissez un nom de domaine hôte (par exemple,
web.example.com
).Cliquez sur Ajouter une règle de routage.
- Pour Priorité, spécifiez
1
. - Cliquez sur Ajouter une condition de correspondance. Pour Chemin d'accès correspondant, spécifiez
/
puis cliquez sur OK. - Sélectionnez Extraire d'une origine, puis sélectionnez l'origine que vous avez configurée.
- Cliquez sur Actions complémentaires.
- Dans Action d'en-tête, cliquez sur Ajouter un élément. Ensuite, procédez comme suit :
- Pour Type, sélectionnez En-têtes de réponse à ajouter.
- Cliquez sur Ajouter un en-tête.
- Pour Nom, spécifiez
x-cache-status
. Pour Valeur, spécifiez{cdn_cache_status}
. - Cliquez sur OK.
- Dans Action de routage, cliquez sur Ajouter un élément. Ensuite, procédez comme suit :
- Dans le champ Type, sélectionnez Règle CDN.
- Pour le mode cache, sélectionnez FORCE_CACHE_ALL.
- Cliquez sur OK.
- Cliquez sur Enregistrer.
- Pour Priorité, spécifiez
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
Dans Cloud Shell, utilisez un éditeur de texte pour créer un fichier local appelé
my-service.yaml
.Un tel fichier indique les éléments suivants:
- 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 cache et de la valeur TTL
- Comment les requêtes et les réponses sont modifiées (par exemple, en insérant la variable
cdn_cache_status
dans un en-tête de réponse)
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 serviceDOMAIN
: domaine du nouveau service
Si vous spécifiez le nom de domaine, Media CDN répond avec une erreur
404
pour les autres hôtes. *ORIGIN
: nom de l'origine associéeExécutez la commande
gcloud edge-cache services import
avec le fichier.yaml
:gcloud edge-cache services import SERVICE \ --source=my-service.yaml
Pour afficher le service nouvellement créé dans la liste des ressources
EdgeCacheService
de votre projet, utilisez la commandegcloud 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 formatprojects/PROJECT/locations/global
SERVICE_ID
: nom du serviceDOMAIN
: domaine du nouveau serviceSi vous spécifiez le nom de domaine, Media CDN répond avec 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
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 de votre service nouvellement créé, procédez comme suit:
Console
Dans la console Google Cloud, accédez à la page Media CDN.
Cliquez sur l'onglet Services.
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 votre contenu peut être mis en cache à l'origine, afin que Media CDN puisse le 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 votre EdgeCacheService
avec votre domaine, vous pouvez attribuer l'adresse IP de l'EdgeCacheService
à un enregistrement de domaine. Pour obtenir des instructions, consultez Configurer votre domaine à l'aide de Cloud DNS.
Une fois votre domaine configuré, accédez à votre contenu à l'aide de la commande curl
suivante:
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 l'option 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 hôte que vous avez spécifié lors de la création du serviceIP_ADDRESS
: adresse IP du service, visible dans la colonne Adresses de la liste des servicesFILE_NAME
: nom du fichier que vous avez importé dans 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 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 OK
...
< x-cache-status: den;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 section Configuration du cache.
Vous avez maintenant testé une ressource EdgeCacheService
de base 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
Supprimez toutes les ressources que vous ne comptez plus utiliser.
Console
Dans la console Google Cloud, accédez à la page Media CDN.
Cliquez sur l'onglet Services.
Sélectionnez votre service, puis cliquez sur Supprimer.
Cliquez sur l'onglet Origines.
Sélectionnez votre origine, puis cliquez sur Supprimer.
gcloud
Pour répertorier les ressources que vous avez créées, utilisez les commandes
gcloud edge-cache origins list
etgcloud edge-cache services list
.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.Pour supprimer l'origine, utilisez la commande
gcloud edge-cache origins delete
:gcloud edge-cache origins delete ORIGIN
Remplacez
ORIGIN
par le nom de l'origine.
API
Pour répertorier les ressources que vous avez créées, utilisez la méthode
edgeCacheServices.list
et la méthodeedgeCacheOrigins.list
.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.Pour supprimer l'origine, utilisez la méthode
edgeCacheOrigins.delete
:DELETE https://networkservices.googleapis.com/v1/ORIGIN
Remplacez
ORIGIN
par le nom complet de l'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 n'avez pas l'intention d'utiliser à nouveau, comme le bucket Cloud Storage.
Étape suivante
- Émettez et associez un certificat SSL (TLS) à votre
EdgeCacheService
. - Affichez les journaux de requêtes avec Cloud Logging.
- Configurez les requêtes signées afin de protéger votre contenu.
- Optimisez les clés de cache et les valeurs TTL afin d'améliorer les taux de succès de mise en cache.
- Configurez la correspondance de route avancée et créez des origines supplémentaires.