Agrega depósitos de Cloud Storage a balanceadores de cargas

Usa depósitos de Cloud Storage como backends del balanceador de cargas

En este documento, se muestra cómo modificar la configuración del balanceador de cargas HTTP(S) de ejemplo para enrutar las solicitudes de contenido estático a los depósitos de Cloud Storage. Una vez configurado el balanceador de cargas con depósitos de Cloud Storage, las solicitudes a las rutas de acceso URL que comienzan con /static se envían a los depósitos de almacenamiento, mientras que todas las demás solicitudes se envían a instancias de máquina virtual. En este documento, también se muestra cómo crear una configuración que enruta el tráfico entre dos depósitos de backend compatible con las regiones de EE.UU. y de la UE.

Antes de comenzar

  1. Si usas las utilidades de gcloud o gsutil, puedes consultar el documento Guía de inicio rápido: usa la herramienta de gsutil para instalarlas.
  2. Configura un proyecto predeterminado.

    Console


    a. Dirígete a la página principal en Google Cloud Platform Console.
    Ir a la página principal de Google Cloud Platform

    b. A la derecha de Google Cloud Platform, selecciona un proyecto del menú desplegable.

    gcloud o gsutil


     gcloud config set project [PROJECT_ID]
    

    o

     gsutil config set project [PROJECT_ID]
    
    • [PROJECT_ID]: el proyecto que usarás para esta guía.
  1. Completa la guía para el balanceo de cargas interregional y según el contenido a fin de crear los recursos requeridos en las instrucciones del presente documento.

Configura depósitos de Cloud Storage y el servicio de balanceo de cargas

En las instrucciones siguientes, se supone que subirás un solo objeto a cada depósito de Cloud Storage y, luego, configurarás los permisos para el objeto.

Si quieres hacer públicos todos los objetos en los depósitos de Cloud Storage, usa las instrucciones sobre cómo hacer grupos de objetos legibles a nivel público.

Si quieres usar comodines (globs) a fin de subir y configurar los permisos para varios objetos, consulta Nombres de comodines. Para obtener más información sobre cómo subir objetos, consulta Sube objetos.

Configura los depósitos de Cloud Storage

Crea dos depósitos de Cloud Storage y sube un objeto a cada uno. Los nombres de los depósitos deben ser únicos a nivel global. En este ejemplo, se crean dos depósitos multirregionales en las mismas regiones que las instancias del ejemplo del balanceo de cargas HTTP(S).

Console


Crea un depósito de Cloud Storage en Estados Unidos.

  • Abre el navegador de Cloud Storage en Google Cloud Platform Console.
    Abrir el navegador de Cloud Storage
  • Haz clic en Create a bucket (Crear depósito).
  • Ingresa un nombre único para tu depósito.
    • No incluyas información sensible en el nombre del depósito, ya que el espacio de nombres del depósito es global y tiene visibilidad pública.
  • Selecciona Estándar para la Clase de almacenamiento.
  • Selecciona Estados Unidos para la Ubicación.
  • Haz clic en Crear.
  • Repite los pasos para crear un segundo depósito y, esta vez, selecciona Unión Europea en Ubicación.

    Ingresa el depósito us.

    Crea la carpeta static.

    1. Cuando estés en el depósito, haz clic en Crear carpeta.
    2. Ingresa un nombre de carpeta de static.
    3. Haz clic en Crear.

    Sube un objeto desde tu directorio local.

    1. Cuando estés en la carpeta, haz clic en Subir archivos.
    2. Dirígete al objeto en tu sistema de archivos y selecciónalo.
    3. Haz clic en Abrir.

    Haz que el objeto se pueda leer a nivel público para que se pueda entregar a través del balanceo de cargas.

    1. Haz clic en el ícono de menú asociado al objeto que quieres hacer público.

      El ícono de menú tiene tres puntos verticales en el extremo derecho de la fila del objeto.

    2. Selecciona Editar permisos en el menú.

    3. Haz clic en Agregar elemento.

    4. Para allUsers, agrega un permiso.

      • Para Entidad, selecciona Usuario.
      • En Nombre, ingresa allUsers.
      • Para Acceso, selecciona Lector.
    5. Haz clic en Guardar.

    Una vez compartido a nivel público, aparece un ícono de vínculo en la columna de acceso público. Puedes hacer clic en este ícono a fin de obtener la URL del objeto.

    Repite los pasos, esta vez en el depósito de la eu.

    gsutil


    1. Crea un depósito de Cloud Storage.

    2. Abre una ventana de la terminal.
    3. Usa el comando gsutil mb y un nombre único para crear un depósito:
      gsutil mb gs://my-awesome-bucket/
      

      Esto usa un depósito llamado “my-awesome-bucket”. Debes elegir tu propio nombre de depósito único a nivel global.

      Si se ejecuta correctamente, el comando mostrará lo siguiente:

      Creating gs://my-awesome-bucket/...
      
    4. Tu depósito está listo y ya puedes comenzar a almacenar tu contenido.

    Repite los pasos, esta vez mediante la ejecución de gsutil mb -l eu gs://my-awesome-bucket/ para establecer la ubicación en eu.

    Ingresa el depósito us.

    1. Sube un objeto desde tu directorio local. Si el archivo está en otro directorio, proporciona la ruta de acceso completa.

      gsutil cp [OBJECT_NAME] gs://[EXAMPLE_BUCKET]/static/[OBJECT_NAME]
      
      • [EXAMPLE_BUCKET]: el depósito que ya creaste.
      • [OBJECT_NAME]: el nombre de archivo de un objeto que se subirá.
    2. Haz que el objeto se pueda leer a nivel público para que se pueda entregar a través del balanceo de cargas.

      gsutil acl ch -u AllUsers:R gs://[EXAMPLE_BUCKET]/static/[OBJECT_NAME]
      
      • [EXAMPLE_BUCKET]: el depósito que ya creaste.
      • [OBJECT_NAME]: el nombre de archivo del objeto que subiste.

    Repite los pasos, esta vez en el depósito de la eu.

    Crea depósitos de backend para tus depósitos de Cloud Storage

    En este procedimiento, suponemos que completaste el ejemplo del balanceo de cargas HTTP(S).

    En lugar de crear un servicio de backend para el contenido estático como lo hiciste con el contenido de video, crea dos depósitos de backend nuevos que apunten a los depósitos de Cloud Storage que creaste antes.

    Console


    1. Ve a la página de balanceo de cargas de Google Cloud Platform Console.
      Ir a la página Balanceo de cargas
    2. Haz clic en Editar en la fila web-map.
    3. Haz clic en la flecha derecha junto a Configuración de backend.
    4. Haz clic en Crear o seleccionar un depósito de backend, luego, selecciona Crear un depósito de backend.
    5. Ingresa un Nombre de static-bucket-us.
    6. Junto al Depósito de Cloud Storage, selecciona Explorar.
    7. Busca y selecciona los depósitos us que creaste antes.
    8. Haz clic en Seleccionar.
    9. Haz clic en Crear para crear el depósito de backend.
    10. Aún no hagas clic en Actualizar para el balanceador de cargas.

    Repite los pasos para crear un segundo depósito de backend, pero esta vez ingresa static-bucket-eu en el campo Nombre y selecciona el depósito eu que creaste antes.

    gcloud


    gcloud compute backend-buckets create static-bucket \
        --gcs-bucket-name [EXAMPLE_BUCKET]
    
    • [EXAMPLE_BUCKET]: el depósito us que creaste.

    Repite el comando, pero esta vez reemplaza EXAMPLE_BUCKET con el depósito eu que creaste.

    Modifica el mapa de URL web-map

    Agrega una regla a tu mapa de URL web-map existente que asigna /static/* al depósito de backend que creaste antes. Así se enrutan todas las solicitudes que tienen /static/* a tu depósito de Cloud Storage.

    Console


    1. Haz clic en la flecha derecha junto a Reglas de host y ruta.
    2. En la tercera fila, ingresa * en el campo Hosts.
    3. Ingresa /static/us/* en el campo Rutas de acceso.
    4. Ingresa static-bucket-us en el campo Backends.
    5. Haz clic en Actualizar para el balanceador de cargas.

    Repite los pasos. Para ello, ingresa /static/eu/* en el campo Rutas de acceso y static-bucket-eu en el campo Backends.

    gcloud


    Ejecuta este comando a fin de agregar una regla de ruta de acceso para EE.UU.:

    gcloud compute url-maps add-path-matcher web-map \
        --default-service web-map-backend-service \
        --path-matcher-name bucket-matcher \
        --backend-bucket-path-rules="/static/us/*=static-bucket-us"
    

    Ejecuta este comando a fin de agregar una regla de ruta de acceso para la UE:

    gcloud compute url-maps add-path-matcher web-map 
    --default-service web-map-backend-service
    --path-matcher-name bucket-matcher
    --backend-bucket-path-rules="/static/eu/*=static-bucket-eu"

    Obtén recursos de tus depósitos de Cloud Storage

    Console


    1. Dirígete a la página de direcciones en Google Cloud Platform Console.
      Ir a la página de direcciones
    2. Busca la fila para lb-ip-1 y toma nota de la dirección IP del campo Dirección externa.
    3. Ingresa http://[IP_ADDRESS]/static/[REGION]/[OBJECT_NAME] o https://[IP_ADDRESS]/static/[REGION]/[OBJECT_NAME] en tu navegador, según el protocolo que use tu balanceador de cargas, y presiona Intro. Intenta ingresar us y eu para [REGION].

    gcloud


    1. Busca la dirección IP de tu regla de reenvío global.

      gcloud compute forwarding-rules list
      
    2. La dirección que necesitas es la dirección de la regla que creaste cuando ejecutaste el ejemplo de balanceo de cargas HTTP(S). Comprueba que tu depósito de Cloud Storage reciba tráfico mediante curl o visita la URL en su navegador.

      curl http://[IP_ADDRESS]/static/[REGION]/[OBJECT_NAME]
      

      o

      curl -k https://[IP_ADDRESS]/static/[REGION]/[OBJECT_NAME]
      
      • [IP_ADDRESS]: la dirección IP de tu regla de reenvío global.
      • [OBJECT_NAME]: usa el nombre del objeto de ejemplo que subiste.
      • [REGION]: ya sea us o eu. Intenta usar cada uno.

    Este comando responde con [OBJECT_NAME] de tu depósito de Cloud Storage [EXAMPLE_BUCKET].

    Si almacenas un objeto en el depósito con el nombre de static/[FOLDER_NAME]/[FOLDER_NAME]/[OBJECT_NAME], puedes recuperarlo con una URL de http://[IP_ADDRESS]/static/[FOLDER_NAME]/[FOLDER_NAME]/[OBJECT_NAME].

    Próximos pasos