En esta guía de inicio rápido, se muestra cómo configurar un servicio de Media CDN frente a un bucket de Cloud Storage. Puedes usar esta configuración para realizar pruebas o como base para un entorno de producción.
Para seguir la guía paso a paso en esta tarea directamente en la consola de Google Cloud, haz clic en Guiarme:
En esta página, se te guiará por los siguientes procedimientos:
- Crea un bucket de Cloud Storage para almacenar tu contenido.
- Habilita los servicios obligatorios.
- Crea un recurso
EdgeCacheOrigin
para conectar Media CDN a tu bucket. - Crea un recurso
EdgeCacheService
para configurar el enrutamiento de solicitudes y la almacenamiento en caché del contenido en el origen. - Prueba si una respuesta se almacena en caché.
Antes de comenzar
Asegúrate de tener lo siguiente:
Acceso a Media CDN para tu proyecto actual.
La Google Cloud CLI instalada. Usa la versión 345.0.0 o posterior.
Si es necesario, usa
gcloud version
para verificar la versión ygcloud components update
para actualizar gcloud CLI instalada.Gcloud CLI proporciona el grupo de subcomandos
gcloud edge-cache
para administrar configuraciones de CDN de Media nuevas y existentes.Los permisos de Identity and Access Management (IAM) necesarios para crear recursos de CDN de Media
Cree un bucket de Cloud Storage
El contenido de Media CDN puede provenir de ubicaciones como un bucket de Cloud Storage, una ubicación de almacenamiento de terceros o un equilibrador de cargas.
En esta guía de inicio rápido, almacenaremos contenido en un bucket de Cloud Storage.
Crea un bucket de Cloud Storage de acceso público y asígnale el nombre
my-bucket
.Si prefieres que no se pueda acceder públicamente a tu bucket de Cloud Storage, debes otorgarle permisos a Media CDN para que pueda acceder al bucket. Para obtener más información, consulta Usa buckets privados de Cloud Storage.
Sube un archivo al bucket.
Habilita los servicios obligatorios
Para configurar e implementar los servicios de Media CDN, debes habilitar la API de Network Services y la API de Certificate Manager para tu proyecto.
Console
Habilita la API de Network Services.
Habilita el certificado de la API de Management.
gcloud
Habilita la API de Network Services:
gcloud services enable networkservices.googleapis.com
Habilita la API de administrador de certificados:
gcloud services enable certificatemanager.googleapis.com
Para obtener más información sobre cómo habilitar e inhabilitar servicios, consulta la documentación de Service Usage.
Crea un recurso EdgeCacheOrigin
Crea un origen que apunte a tu bucket de Cloud Storage.
Console
En la consola de Google Cloud, ve a la página Media CDN.
Haz clic en la pestaña Orígenes.
Haz clic en Crear origen.
Ingresa el nombre del origen como
cloud-storage-origin
.Opcional: Ingresa una descripción para el origen.
En Dirección de origen, elige Seleccionar un bucket de Google Cloud Storage, navega al bucket de Cloud Storage llamado
my-bucket
y, luego, haz clic en Seleccionar.Si tienes un origen externo, elige Especificar un FQDN o una dirección IP y, luego, ingresa el FQDN o la dirección IP.
Haz clic en Crear origen.
Después de aproximadamente 10 minutos, el recurso EdgeCacheOrigin
recién creado aparecerá en la lista de orígenes de tu proyecto en la página Orígenes.
Para actualizar una dirección de origen, haz clic en el origen y, luego, en
Editar.gcloud
Usa el comando gcloud edge-cache origins create
:
gcloud edge-cache origins create ORIGIN \
--origin-address="ADDRESS"
Reemplaza lo siguiente:
ORIGIN
: Es el nombre del origen nuevo.ADDRESS
: El nombre del bucket,gs://my-bucket
Si tienes un origen externo, reemplaza
ADDRESS
por el FQDN o la dirección IP.
Para ver el origen recién creado, usa el comando gcloud edge-cache origins list
.
Para actualizar la dirección de origen, usa el comando gcloud edge-cache origins update
.
API
Usa el método edgeCacheOrigins.create
:
POST https://networkservices.googleapis.com/v1/PARENT/edgeCacheOrigins?edgeCacheOriginId=ORIGIN_ID { "name": "ORIGIN_ID", "originAddress: "ADDRESS" }
Reemplaza lo siguiente:
PARENT
: El recurso superior en el formatoprojects/PROJECT/locations/global
ORIGIN_ID
: Es el nombre corto del nuevo origen.ADDRESS
: El nombre del bucket,gs://my-bucket
Si tienes un origen externo, reemplaza
ADDRESS
por el FQDN o la dirección IP.
Para ver el origen recién creado, usa el método edgeCacheOrigins.list
.
Para actualizar la dirección de origen, usa el método edgeCacheOrigins.patch
.
Terraform
Crea un recurso EdgeCacheService
Tu recurso EdgeCacheService
configura la configuración de enrutamiento, certificado y almacenamiento en caché, y puede apuntar a recursos EdgeCacheOrigin
.
Crea un recurso EdgeCacheService
básico que haga lo siguiente:
- Almacena en caché todas las respuestas de nuestro origen configurado durante una hora.
- Establece un encabezado de respuesta
x-cache-status
que muestra el estado de la caché (comoHIT
oMISS
).
De manera opcional, registra un nombre de dominio para este servicio.
Console
En la consola de Google Cloud, ve a la página Media CDN.
Haga clic en la pestaña Servicios.
Haz clic en Crear servicio.
Ingresa un nombre único para tu servicio, por ejemplo,
my-service
, y haz clic en Siguiente.En la sección Enrutamiento, haz clic en Agregar regla de host y, luego, ingresa uno o más nombres de dominio de host.
En Hosts, ingresa un nombre de dominio de host, por ejemplo,
web.example.com
.Haz clic en Add route rule.
- En Prioridad, especifica
1
. - Haz clic en Add match condition, para Path match, especifica
/
y, luego, haz clic en Listo. - Selecciona Fetch from an Origin y, luego, selecciona el origen que configuraste.
- Haz clic en Acciones de complementos.
- En Header action, haz clic en Agregar un elemento. A continuación, haz lo siguiente:
- En Tipo, selecciona Response headers to add.
- Haz clic en Agregar encabezado.
- En Nombre, especifica
x-cache-status
y, en Valor, especifica{cdn_cache_status}
. - Haz clic en Listo.
- En Route action, haz clic en Agregar un elemento. A continuación, haz lo siguiente:
- En Tipo, selecciona CDN policy.
- En Modo de almacenamiento de caché, selecciona FORCE_CACHE_ALL.
- Haz clic en Listo.
- Haz clic en Guardar.
- En Prioridad, especifica
Haz clic en Crear servicio.
El recurso EdgeCacheService
recién creado aparecerá en la página Servicios en la lista de servicios de tu proyecto.
gcloud
En Cloud Shell, usa un editor de texto para crear un archivo local llamado
my-service.yaml
.Este archivo indica lo siguiente:
- Cómo funciona el enrutamiento: primero, se hace coincidir el host y, luego, la ruta
- Cómo funciona el almacenamiento en caché según el modo de almacenamiento en caché y el TTL
- Cómo se modifican las solicitudes y las respuestas (por ejemplo, insertando la variable
cdn_cache_status
en un encabezado de respuesta)
Pega el siguiente contenido de muestra en el archivo y, luego, guárdalo:
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}"
Reemplaza lo siguiente:
SERVICE
: Es el nombre del servicio.DOMAIN
: Es el dominio del servicio nuevo.
Si especificas el nombre de dominio, Media CDN responde con un error
404
para otros hosts. *ORIGIN
: Es el nombre del origen relacionado.Usa el comando
gcloud edge-cache services import
con el archivo.yaml
:gcloud edge-cache services import SERVICE \ --source=my-service.yaml
Para ver el servicio creado recientemente en la lista de recursos
EdgeCacheService
de tu proyecto, usa el comandogcloud edge-cache services list
.
API
Usa el método 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}" } ] }, } ] } ] } }
Reemplaza lo siguiente:
PARENT
: El recurso superior en el formatoprojects/PROJECT/locations/global
SERVICE_ID
: Es el nombre del servicio.DOMAIN
: Es el dominio del servicio nuevo.Si especificas el nombre de dominio, Media CDN responde con un error
404
para otros hosts.ORIGIN_NAME
: Es el nombre del origen relacionado.
Para ver el servicio creado recientemente en la lista de recursos EdgeCacheService
de tu proyecto, usa el método edgeCacheServices.list
.
Terraform
El primer servicio puede tardar varios minutos en crearse. Media CDN aprovisiona direcciones IP dedicadas y envía tu configuración a miles de ubicaciones perimetrales. Las actualizaciones posteriores de un servicio, como cambiar la configuración de una ruta o hacer coincidir los parámetros, son más rápidas.
Recupera las direcciones IP
Para ver las direcciones IP del servicio que acabas de crear, sigue estos pasos:
Console
En la consola de Google Cloud, ve a la página Media CDN.
Haga clic en la pestaña Servicios.
Para ver las direcciones IP de tu servicio, consulta la celda Direcciones.
Si la celda está vacía, actualiza el navegador.
gcloud
Usa el comando gcloud edge-cache services describe
:
gcloud edge-cache services describe SERVICE
Reemplaza SERVICE por el nombre del servicio.
En el resultado, se muestran las direcciones IP asignadas a tu servicio:
ipv4Addresses:
IPV4_ADDRESS
ipv6Addresses:
IPV6_ADDRESS
name: projects/my-project/locations/global/edgeCacheServices/SERVICE
...
API
Usa el método edgeCacheServices.get
:
GET https://networkservices.googleapis.com/v1/SERVICE_NAME
Reemplaza SERVICE_NAME
por el nombre completo del servicio. Usa el siguiente formato:
projects/PROJECT/locations/global/edgeCacheServices/SERVICE_ID
Reemplaza SERVICE_ID
por el nombre corto del servicio.
Los detalles recuperados incluyen las direcciones IP asignadas al servicio:
ipv4Addresses:
IPV4_ADDRESS
ipv6Addresses:
IPV6_ADDRESS
Prueba si una respuesta se almacena en caché
Antes de probar el servicio, asegúrate de tener contenido que se pueda almacenar en caché en tu origen para que Media CDN pueda recuperarlo.
Para probar que tu servicio esté configurado correctamente para almacenar en caché el contenido, usa la herramienta de línea de comandos curl
para enviar solicitudes y verificar las respuestas. curl
también está disponible en Cloud Shell en la consola de Google Cloud.
Si deseas usar tu EdgeCacheService
con tu dominio, puedes asignar la dirección IP del EdgeCacheService
a un registro de dominio. Para obtener instrucciones, consulta Configura tu dominio con Cloud DNS.
Después de configurar tu dominio, accede a tu contenido con el siguiente comando curl
:
curl -svo /dev/null "http://DOMAIN_NAME/FILE_NAME"
Si no configuraste el DNS para que apunte a tus direcciones IP aprovisionadas, usa la opción resolve
para anular la dirección que usa curl
.
curl -svo /dev/null --resolve DOMAIN_NAME:80:IP_ADDRESS "http://DOMAIN_NAME/FILE_NAME"
Reemplaza lo siguiente:
DOMAIN_NAME
: El dominio del host que especificaste cuando creaste el servicioIP_ADDRESS
: Es la dirección IP del servicio como se ve en la columna Direcciones de la lista de servicios.FILE_NAME
: Es el nombre del archivo que subiste al bucket.
Ejemplo:
curl -svo /dev/null --resolve web.example.com:80:34.104.37.129 "http://web.example.com/file.mp4"
Inicialmente, el comando produce un resultado similar al siguiente, con el estado miss
, ya que Media CDN aún no tiene los datos solicitados del origen:
< HTTP/2 200 OK
...
< x-cache-status: den;miss
...
Cuando vuelvas a enviar la misma solicitud varias veces, se producirá un resultado similar al siguiente, con el estado hit
:
< HTTP/2 200 OK
...
< x-cache-status: den;hit
...
Si no muestra el estado hit
, verifica lo siguiente:
- La respuesta se puede almacenar en caché.
- El modo de almacenamiento en caché configurado permite almacenar en caché el contenido.
- El origen no establece directivas de caché que impidan el almacenamiento en caché. Para obtener más información, consulta Configuración de la caché.
Ya probaste un recurso EdgeCacheService
básico que puede entregar contenido a nivel mundial. Es posible que un servicio de nivel de producción necesite certificados SSL (TLS), varios orígenes y una política de seguridad de Google Cloud Armor.
Opcional: Limpieza
Borra los recursos que no tengas la intención de volver a usar.
Console
En la consola de Google Cloud, ve a la página Media CDN.
Haga clic en la pestaña Servicios.
Selecciona tu servicio y, luego, haz clic en Borrar.
Haz clic en la pestaña Orígenes.
Selecciona tu origen y, luego, haz clic en Borrar.
gcloud
Para enumerar los recursos que creaste, usa el comando
gcloud edge-cache origins list
y el comandogcloud edge-cache services list
.Para borrar el servicio, usa el comando
gcloud edge-cache services delete
:gcloud edge-cache services delete SERVICE
Reemplaza
SERVICE
por el nombre del servicio.Para borrar el origen, usa el comando
gcloud edge-cache origins delete
:gcloud edge-cache origins delete ORIGIN
Reemplaza
ORIGIN
por el nombre del origen.
API
Para enumerar los recursos que creaste, usa el método
edgeCacheServices.list
y el métodoedgeCacheOrigins.list
.Para borrar el servicio, usa el método
edgeCacheServices.delete
:DELETE https://networkservices.googleapis.com/v1/SERVICE_NAME
Reemplaza
SERVICE_NAME
por el nombre completo del servicio. Usa el siguiente formato:projects/PROJECT/locations/global/edgeCacheServices/SERVICE_ID
Reemplaza
SERVICE_ID
por el nombre corto del servicio.Para borrar el origen, usa el método
edgeCacheOrigins.delete
:DELETE https://networkservices.googleapis.com/v1/ORIGIN
Reemplaza
ORIGIN
por el nombre completo del origen. Usa el siguiente formato:projects/PROJECT/locations/global/edgeCacheOrigins/ORIGIN_ID
Reemplaza
ORIGIN_ID
por el nombre corto del origen.
Repite este proceso para cualquier otro recurso que hayas creado y que no tengas la intención de volver a usar, como el bucket de Cloud Storage.
¿Qué sigue?
- Emite y adjunta un certificado SSL (TLS) a tu
EdgeCacheService
. - Consulta los registros de solicitudes con Cloud Logging.
- Configura solicitudes firmadas para proteger tu contenido.
- Optimiza las claves de caché y los TTL y mejora las tasas de acierto de caché.
- Configura la coincidencia avanzada de rutas y crea orígenes adicionales.