En esta guía de inicio rápido, se muestra cómo configurar 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.
En esta página, se te guiará por los siguientes procedimientos:
- Crea un recurso
EdgeCacheOrigin
, que represente dónde se almacena el contenido. - Crea un recurso
EdgeCacheService
que almacene en caché el contenido delEdgeCacheOrigin
configurado y establezca un TTL predeterminado. - Recupera la dirección IP de un servicio.
- Confirma que una respuesta se almacene en caché con encabezados de estado.
Antes de comenzar
Asegúrate de que se cumpla lo siguiente:
- Tener acceso a Media CDN para tu proyecto actual. Consulta Solicitar acceso.
- Tner un bucket de Cloud Storage existente y de acceso público con contenido (como un archivo de video o una imagen) para usar como origen del contenido o algún otro extremo HTTP de acceso público con contenido.
- La Google Cloud CLI instalada.
Los permisos de Identity and Access Management necesarios para crear recursos de CDN de Media. Media CDN tiene las siguientes roles predefinidas de IAM:
roles/networkservices.edgeCacheAdmin
roles/networkservices.edgeCacheUser
roles/networkservices.edgeCacheViewer
Versión 345.0.0 de la CLI de gcloud o posterior
Usa
gcloud version
ygcloud components update
para verificar la versión y actualizar la CLI de gcloud instalada.
Habilita los servicios obligatorios
Para configurar e implementar los servicios de Media CDN, debes habilitar la API de Network Services y el certificado de la API de Management en tu proyecto.
Console
Habilita la API de Network Services.
Habilita el certificado de la API de Management.
gcloud
Para habilitar el certificado de la API de Management de red en tu proyecto actual, ejecuta el siguiente comando:
gcloud services enable networkservices.googleapis.com
Para habilitar el certificado de la API de Management, ejecuta el siguiente comando:
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 origen
Una EdgeCacheOrigin
representa una ubicación de contenido, como un bucket de Cloud Storage, una ubicación de almacenamiento de terceros o un balanceador de cargas.
En este caso, debes crear un origen que se asigne a tu bucket de Cloud Storage llamado my-bucket
. Si tu bucket de Cloud Storage no es de acceso público, debes otorgar permisos de CDN de medios para acceder al bucket. Para obtener más información, consulta Usa buckets privados 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 un nombre para el origen. Por ejemplo:
cloud-storage-origin
.Ingresa una descripción opcional para el origen.
En Dirección de origen, elige Seleccionar un bucket de Google Cloud Storage.
Navega a tu bucket de Cloud Storage.
Mantén la configuración predeterminada.
Haz clic en Crear origen.
gcloud
La CLI de gcloud proporciona el grupo de subcomandos gcloud edge-cache
para administrar las configuraciones nuevas y existentes de Media CDN.
gcloud edge-cache origins create ORIGIN \ --origin-address="gs://my-bucket"
Terraform
Si tienes un origen externo, puedes configurar Media CDN para que use ese origen en lugar de un bucket de Cloud Storage. Por ejemplo:
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 un nombre para el origen. Por ejemplo:
external-origin
.En Dirección de origen, selecciona Especificar un FQDN o una dirección IP.
Ingresa el FQDN o la dirección IP para tu origen externo.
Mantén la configuración predeterminada.
Haz clic en Crear origen.
gcloud
gcloud edge-cache origins create external-origin \ --origin-address="DOMAIN_NAME"
Puedes actualizar la dirección de origen de un origen existente con el comando update
.
Creación de servicio
El recurso EdgeCacheService
configura el enrutamiento, el certificado y el almacenamiento en caché, y se puede asignar a uno o más recursos de origen.
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
cache-status
que muestra el estado de la caché (como HIT o MISS).
Para crear la EdgeCacheService
, haz lo siguiente:
Console
En la consola de Google Cloud, ve a la página Media CDN.
Haga clic en la pestaña Servicios.
Haga clic en Crear servicio.
- Ingresa un nombre para tu servicio.
- Haz clic en Siguiente.
Haz clic en Agregar regla de host.
- Ingresa uno o más nombres de dominio de host.
Haz clic en Agregar regla de enrutamiento.
- En Prioridad, ingresa
1
. - Haz clic en Agregar condición de coincidencia.
- En Tipo de concordancia, selecciona Coincidencia de prefijo.
- En Coincidencia de ruta de acceso, ingresa
/
. - Haz clic en Listo.
- Configura la Acción principal.
- Selecciona Recuperar desde un origen.
- En Seleccionar un origen, selecciona un origen que hayas configurado.
- Haz clic en Acciones del complemento.
- En Acción del encabezado, haz clic en Agregar un elemento.
- En Tipo, selecciona Encabezados de respuesta para agregar.
- Haz clic en Agregar encabezado.
- En Nombre, ingresa
x-cache-status
. - En Valor, ingresa
{cdn_cache_status}
. - Haz clic en Listo.
- En Acción de la ruta, haz clic en Agregar un elemento.
- En Tipo, selecciona Política de CDN.
- Mantén la configuración predeterminada.
- Haz clic en Listo.
- En Acción del encabezado, haz clic en Agregar un elemento.
- En Prioridad, ingresa
Haz clic en Guardar.
Haz clic en Crear servicio.
gcloud
En Cloud Shell, usa un editor de texto de la terminal, como Nano o Vim, para crear un archivo local llamado my-service.yaml
. Pega el siguiente contenido en el archivo y guárdalo:
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}"
Asegúrate de que el valor del campo origin
coincida con el nombre del origen que creaste en el paso anterior.
Para configurar un nombre de dominio (o nombres) que apunte a este servicio, agrega el nombre de dominio a la lista routing.hostRules.hosts[]
. Media CDN responde con un error 404 para otros hosts.
gcloud edge-cache services import SERVICE_NAME \ --source=my-service.yaml
Terraform
El primer servicio puede tardar hasta un minuto en crearse. Media CDN aprovisiona direcciones IP dedicadas y envía la configuración a miles de ubicaciones perimetrales. Las actualizaciones posteriores que se realizan a un servicio, como cambiar una configuración de ruta o hacer coincidir los parámetros, son más rápidas.
Visualiza el EdgeCacheService
que acabas de crear en tu lista de servicios:
Console
En la consola de Google Cloud, ve a la página Media CDN.
Haga clic en la pestaña Servicios.
gcloud
gcloud edge-cache services list
Recupera las direcciones IP
Para recuperar las direcciones IP (IPv4 e IPv6) de tu EdgeCacheService
recién creado, puedes emitir un comando describe
:
Console
En la consola de Google Cloud, ve a la página Media CDN.
Haga clic en la pestaña Servicios.
Para tu servicio, consulta la columna Direcciones.
gcloud
gcloud edge-cache services describe SERVICE_NAME
El resultado muestra las direcciones IP asignadas a tu servicio:
ipv4Addresses: - IPV4_ADDRESS ipv6Addresses: - IPV6_ADDRESS name: projects/my-project/locations/global/edgeCacheServices/SERVICE_NAME ...
Desde aquí, puedes configurar el dominio en tu proveedor de DNS para que apunte a estas direcciones una vez que estén listas.
Prueba el almacenamiento en caché
A fin de probar que tu servicio esté configurado de forma correcta para almacenar en caché el contenido, usa la herramienta de línea de comandos de curl
a fin de emitir solicitudes y verificar las respuestas. curl
también está disponible en Cloud Shell en la consola de Google Cloud.
Si no configuraste el DNS para que apunte a tus direcciones IP aprovisionadas, puedes anular la dirección que usa curl
.
curl -svo /dev/null --resolve DOMAIN_NAME:80:IP_ADDRESS "http://DOMAIN_NAME/file.mp4"
En un principio, el comando produce un resultado similar al siguiente, con el estado MISS
, porque la CDN de Media no tiene los datos solicitados ya recuperados del origen:
< HTTP/2 200 ... < x-cache-status: MISS ...
Cuando envías la misma solicitud cualquier cantidad de veces, se produce un resultado similar al siguiente, con el estado HIT
:
< HTTP/2 200 ... < x-cache-status: HIT ...
Si no muestra el estado como 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 configura directivas de caché que eviten el almacenamiento en caché.
Para obtener más información, consulta Descripción general del almacenamiento en caché.
Ya probaste un EdgeCacheService
básico que puede entregar contenido de forma global. 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
A fin de limpiar los recursos que no se usaron, usa los comandos delete
relevantes para cada recurso.
Para enumerar los recursos que creaste, usa los comandos services list
y origins list
.
Console
En la consola de Google Cloud, ve a la página Media CDN.
Haga clic en la pestaña Servicios.
Selecciona el servicio y haz clic en Borrar.
Haz clic en la pestaña Orígenes.
Selecciona tu origen y haz clic en Borrar.
gcloud
Para borrar un origen, primero borra el servicio y, luego, el origen:
gcloud edge-cache services delete SERVICE_NAME
gcloud edge-cache origins delete ORIGIN
Repite este proceso para cualquier otro recurso que quieras limpiar.
¿Qué sigue?
- Emite y adjunta un certificado SSL (TLS) a tu
EdgeCacheService
. - Visualiza registros de solicitudes con Logging.
- Configura las solicitudes firmadas para proteger tu contenido.
- Optimiza las claves de caché y TTL y mejora las tasas de aciertos de caché.
- Configura la coincidencia avanzada de rutas y agrega orígenes adicionales.