Cloud CDN aprovecha el balanceador de carga de aplicación externo global o el balanceador de carga de aplicación clásico que elijas para proporcionar enrutamiento, comprobaciones del estado y compatibilidad con direcciones IP anycast. Como los balanceadores de carga de aplicaciones externos globales pueden tener varios tipos de instancias de backend (instancias de VM de Compute Engine, pods de Google Kubernetes Engine, cubos de Cloud Storage o backends externos fuera de Google Cloud), puedes elegir en qué backends (orígenes) habilitar Cloud CDN.
En esta guía de configuración se explica cómo crear un balanceador de carga de aplicación externo con Cloud CDN habilitado. En el ejemplo se usan los siguientes recursos:
- Red de nube privada virtual (VPC) predeterminada
- Un mapa de URLs predeterminado
- Una dirección IP externa reservada
- Un segmento de Cloud Storage como backend
- Un único segmento de backend de balanceador de carga que actúa como contenedor del segmento de Cloud Storage
Un backend bucket admite lo siguiente:
- Segmentos de Cloud Storage de cualquier clase de almacenamiento, incluidos los segmentos multirregionales
- Políticas de Cloud CDN para almacenar contenido en caché en el perímetro global de Google
Para saber cómo funciona Cloud CDN, consulta la información general sobre Cloud CDN.
De forma predeterminada, Cloud Storage utiliza la misma caché que Cloud CDN. Si habilitas Cloud CDN en el backend, puedes usar los controles de Cloud CDN en tu contenido.
Los controles de Cloud CDN incluyen, por ejemplo, modos de caché, URLs firmadas e invalidación. Cloud CDN también te permite almacenar en caché contenido de gran tamaño (más de 10 MB). Si no habilitas Cloud CDN en tu segmento de backend, solo podrás usar los encabezados Cache-Controlde origen para controlar el almacenamiento en caché de contenido más pequeño, tal como se define en los metadatos de Cloud Storage.
Backends del balanceador de carga
Un balanceador de carga de aplicaciones externo usa un mapa de URLs para dirigir el tráfico de URLs especificadas a servicios especificados. En la siguiente tabla se resumen los tipos de back-ends en los que puedes alojar contenido y servicios.
| Configuración de backend del balanceador de carga | Tipo de contenido habitual | Tipos de backend |
|---|---|---|
| Servicio de backend | Dinámicos (como los datos) |
|
| Segmento de backend | Estático (como imágenes) |
|
Antes de empezar
- Si usas HTTPS en el frontend, crea un certificado SSL, que puede ser autogestionado o gestionado por Google. Te recomendamos que uses un certificado gestionado por Google.
- Si usas Google Cloud CLI, consulta el artículo Descubrir el almacenamiento de objetos con la herramienta gcloud para instalarlo.
Consola
- En la Google Cloud consola, ve a la página Inicio.
- A la derecha de Google Cloud, selecciona un proyecto en el menú desplegable.
gcloud
gcloud config set project PROJECT_ID
Sustituye PROJECT_ID por el ID de tu proyecto. Google Cloud
Terraform
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Opcional: Usar direcciones BYOIP
Con la función de utilizar tu propia dirección IP (BYOIP), puedes importar tus propias direcciones públicas a Google Cloud para usar las direcciones con recursos de Google Cloud . Por ejemplo, si importa sus propias direcciones IPv4, puede asignar una a la regla de reenvío al configurar el balanceador de carga. Cuando sigas las instrucciones de este documento para crear el balanceador de carga de aplicaciones externo, proporciona la dirección BYOIP como dirección IP.
Para obtener más información sobre cómo usar BYOIP, consulta el artículo Utilizar tus propias direcciones IP.
Crea un segmento de Cloud Storage
Si tienes un segmento de Cloud Storage que aún no se ha asignado a un balanceador de carga, puedes ir al siguiente paso.
Cuando creas un segmento de Cloud Storage para usarlo como backend de un balanceador de carga de aplicaciones externo con Cloud CDN, te recomendamos que elijas un segmento multirregional, que replica automáticamente los objetos en varias regiones Google Cloud . De esta forma, se puede mejorar la disponibilidad del contenido y la tolerancia a fallos de la aplicación.
Consola
- En la Google Cloud consola, abre la página Segmentos de Cloud Storage.
- Haz clic en Crear segmento.
Especifique los valores de los campos de la siguiente tabla y deje el resto con los valores predeterminados.
Propiedad Valor (escribe el valor o selecciona una opción según se especifique) Nombre Asigna un nombre único a cada segmento. Si el nombre que introduces no es único, verás un mensaje para que pruebes con otro. Tipo de ubicación Multirregional Ubicación Seleccione una región, como us (varias regiones de Estados Unidos). Clase de almacenamiento predeterminada Estándar Control de acceso Uniform Haz clic en Crear.
Anota el nombre del segmento de Cloud Storage que acabas de crear para el siguiente paso.
gcloud
gcloud storage buckets create gs://BUCKET_NAME --project=PROJECT_ID --default-storage-class=standard --location=us-east1 --uniform-bucket-level-access
Terraform
Para crear un segmento, usa el google_storage_bucket
recurso.
Para saber cómo aplicar o quitar una configuración de Terraform, consulta Comandos básicos de Terraform.
Copiar un archivo gráfico en tu segmento de Cloud Storage
Para que puedas probar la configuración, copia un archivo gráfico de un segmento de Cloud Storage público a tu propio segmento de Cloud Storage.
gcloud
Ejecuta el siguiente comando en Cloud Shell. Sustituye BUCKET_NAME por el nombre único de tu segmento de Cloud Storage:
gcloud storage cp gs://gcp-external-http-lb-with-bucket/three-cats.jpg gs://BUCKET_NAME/never-fetch/
Terraform
Para copiar el objeto, usa local-exec
Provisioner con el comando gcloud storage cp.
resource "null_resource" "upload_image" {
provisioner "local-exec" {
command = "gcloud storage cp gs://gcp-external-http-lb-with-bucket/three-cats.jpg gs://${google_storage_bucket.default.name}/never-fetch/ --recursive"
}
}
También puede usar el recurso google_storage_bucket_object para subir un objeto.
Para saber cómo aplicar o quitar una configuración de Terraform, consulta Comandos básicos de Terraform.
En la Google Cloud consola, haz clic en Actualizar para comprobar que el archivo gráfico se haya copiado.
Hacer público un segmento de Cloud Storage
En este ejemplo, se hace que tu segmento de Cloud Storage sea de lectura pública. Este es el enfoque recomendado para el contenido público. Con este ajuste, cualquier usuario de Internet puede ver y enumerar tus objetos y sus metadatos, excepto las ACLs. Para reducir el riesgo de que los datos se expongan de forma accidental, normalmente debes dedicar segmentos de Cloud Storage específicos a los objetos públicos.
Estas son algunas alternativas a la hora de hacer público un segmento de Cloud Storage:
Usa carpetas gestionadas para hacer que una parte de tu segmento se pueda leer públicamente.
Hacer que objetos concretos se puedan leer públicamente. No recomendamos este enfoque porque utiliza un sistema de permisos antiguo específico de Cloud Storage.
Usa URLs firmadas.
El siguiente procedimiento concede a todos los usuarios acceso para ver objetos en tu segmento de Cloud Storage, lo que hace que el segmento sea de lectura pública.
Consola
- En la Google Cloud consola, abre la página Segmentos de Cloud Storage.
- Ve al segmento y haz clic en la pestaña Permisos.
- Haz clic en Añadir principales.
- En Principales nuevos, introduce
allUsers. - En el campo "Rol", selecciona Cloud Storage > Visor de objetos de Storage.
- Haz clic en Guardar.
gcloud
gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME --member=allUsers --role=roles/storage.objectViewer
Terraform
Para hacer público tu segmento de Cloud Storage, usa el recurso google_storage_bucket_iam_member.
Para saber cómo aplicar o quitar una configuración de Terraform, consulta Comandos básicos de Terraform.
Reservar una dirección IP externa
Ahora que tu segmento de Cloud Storage está en funcionamiento, configura una dirección IP externa estática global que tus clientes usan para llegar a tu balanceador de carga.
Este paso es opcional, pero recomendable, ya que una dirección IP externa estática proporciona una única dirección a la que dirigir tu dominio.
Consola
- En la Google Cloud consola, ve a la página Direcciones IP externas.
- Para reservar una dirección IPv4, haz clic en Reservar dirección estática.
- Asigne un Nombre de
example-ip. - Configure el Nivel de servicio de red como Premium.
- Configura IPv4 (versión de IP) como IPv4.
- En Tipo, seleccione Global.
- Haz clic en Reservar.
gcloud
gcloud compute addresses create example-ip \
--network-tier=PREMIUM \
--ip-version=IPV4 \
--global
Anota la dirección IPv4 que se ha reservado:
gcloud compute addresses describe example-ip \
--format="get(address)" \
--global
Terraform
Para reservar una dirección IP, usa el recurso google_compute_global_address.
Para saber cómo aplicar o quitar una configuración de Terraform, consulta Comandos básicos de Terraform.
Crear el balanceador de carga de aplicación externo
En este procedimiento, creará el segmento de backend del balanceador de carga, que actuará como contenedor de su segmento de Cloud Storage. Cuando crees o edites un backend bucket, puedes habilitar Cloud CDN.
Consola
Iniciar el proceso de configuración del balanceador de carga de aplicación externo
- En la Google Cloud consola, ve a la página Balanceo de carga.
- En Balanceo de carga de HTTP y HTTPS, haz clic en Iniciar configuración.
- Seleccione De Internet a mis VMs y, a continuación, haga clic en Continuar.
- En Gestión avanzada del tráfico, seleccione una de las siguientes opciones:
- En el caso de los balanceadores de carga de aplicación clásicos, selecciona Balanceador de carga HTTP(S) clásico.
- En el caso de los balanceadores de carga de aplicaciones externos globales, selecciona Balanceador de carga HTTP(S) con gestión avanzada del tráfico.
- Asigna el valor
http-lba Nombre y, a continuación, ve al paso siguiente.
Configurar el backend y habilitar Cloud CDN
Crea el segmento de backend del balanceador de carga, que actúa como contenedor del segmento de Cloud Storage. Cuando creas o editas un backend de tipo cubeta, puedes habilitar Cloud CDN.
- Haz clic en