arrow_back

Cómo optimizar los costos con Google Cloud Storage

Acceder Unirse
Pon a prueba tus conocimientos y compártelos con nuestra comunidad
done
Obtén acceso a más de 700 labs prácticos, insignias de habilidad y cursos

Cómo optimizar los costos con Google Cloud Storage

Lab 1 hora universal_currency_alt 5 créditos show_chart Intermedio
info Es posible que este lab incorpore herramientas de IA para facilitar tu aprendizaje.
Pon a prueba tus conocimientos y compártelos con nuestra comunidad
done
Obtén acceso a más de 700 labs prácticos, insignias de habilidad y cursos

GSP649

Labs de autoaprendizaje de Google Cloud

Descripción general

En este lab, utilizarás Cloud Functions y Cloud Scheduler para identificar y borrar recursos de nube desperdiciados. Activarás una Cloud Function para migrar un bucket de almacenamiento desde una política de alertas de Cloud Monitoring hacia una clase de almacenamiento menos costosa.

Google Cloud proporciona reglas del ciclo de vida de los objetos de almacenamiento que se usan para migrar objetos a diferentes clases de almacenamiento automáticamente según un conjunto de atributos, como su fecha de creación o estado en vivo. Sin embargo, estas reglas no pueden determinar si se accedió a los objetos. En algunas ocasiones, es posible que desees mover objetos más nuevos a Nearline Storage si no se accedió a estos por cierto tiempo.

Actividades

  • Crea dos buckets de almacenamiento, agrega un archivo a serving-bucket y genera tráfico en este.
  • Crea un panel de Cloud Monitoring para visualizar el uso de los buckets.
  • Implementa una Cloud Function para migrar el bucket inactivo a una clase de almacenamiento menos costosa y activa la función con una carga útil diseñada para simular una notificación emitida por una política de alertas de Cloud.

Configuración y requisitos

En esta sección, configurarás la infraestructura y las identidades requeridas para completar este lab.

Antes de hacer clic en el botón Comenzar lab

Lee estas instrucciones. Los labs son cronometrados y no se pueden pausar. El cronómetro, que comienza a funcionar cuando haces clic en Comenzar lab, indica por cuánto tiempo tendrás a tu disposición los recursos de Google Cloud.

Este lab práctico te permitirá realizar las actividades correspondientes en un entorno de nube real, no en uno de simulación o demostración. Para ello, se te proporcionan credenciales temporales nuevas que utilizarás para acceder a Google Cloud durante todo el lab.

Para completar este lab, necesitarás lo siguiente:

  • Acceso a un navegador de Internet estándar (se recomienda el navegador Chrome)
Nota: Usa una ventana de navegador privada o de Incógnito para ejecutar este lab. Así evitarás cualquier conflicto entre tu cuenta personal y la cuenta de estudiante, lo que podría generar cargos adicionales en tu cuenta personal.
  • Tiempo para completar el lab: Recuerda que, una vez que comienzas un lab, no puedes pausarlo.
Nota: Si ya tienes un proyecto o una cuenta personal de Google Cloud, no los uses en este lab para evitar cargos adicionales en tu cuenta.

Cómo iniciar tu lab y acceder a la consola de Google Cloud

  1. Haga clic en el botón Comenzar lab. Si debe pagar por el lab, se abrirá una ventana emergente para que seleccione su forma de pago. A la izquierda, se encuentra el panel Detalles del lab, que tiene estos elementos:

    • El botón Abrir la consola de Google Cloud
    • El tiempo restante
    • Las credenciales temporales que debe usar para el lab
    • Otra información para completar el lab, si es necesaria
  2. Haz clic en Abrir la consola de Google Cloud (o haz clic con el botón derecho y selecciona Abrir el vínculo en una ventana de incógnito si ejecutas el navegador Chrome).

    El lab inicia recursos y abre otra pestaña en la que se muestra la página de acceso.

    Sugerencia: Ordene las pestañas en ventanas separadas, una junto a la otra.

    Nota: Si ves el diálogo Elegir una cuenta, haz clic en Usar otra cuenta.
  3. De ser necesario, copia el nombre de usuario a continuación y pégalo en el diálogo Acceder.

    {{{user_0.username | "Username"}}}

    También puedes encontrar el nombre de usuario en el panel Detalles del lab.

  4. Haz clic en Siguiente.

  5. Copia la contraseña que aparece a continuación y pégala en el diálogo Te damos la bienvenida.

    {{{user_0.password | "Password"}}}

    También puedes encontrar la contraseña en el panel Detalles del lab.

  6. Haz clic en Siguiente.

    Importante: Debes usar las credenciales que te proporciona el lab. No uses las credenciales de tu cuenta de Google Cloud. Nota: Usar tu propia Cuenta de Google podría generar cargos adicionales.
  7. Haga clic para avanzar por las páginas siguientes:

    • Acepta los Términos y Condiciones.
    • No agregues opciones de recuperación o autenticación de dos factores (esta es una cuenta temporal).
    • No te registres para obtener pruebas gratuitas.

Después de un momento, se abrirá la consola de Google Cloud en esta pestaña.

Nota: Para ver un menú con una lista de productos y servicios de Google Cloud, haz clic en el menú de navegación que se encuentra en la parte superior izquierda. Ícono del menú de navegación

Activa Cloud Shell

Cloud Shell es una máquina virtual que cuenta con herramientas para desarrolladores. Ofrece un directorio principal persistente de 5 GB y se ejecuta en Google Cloud. Cloud Shell proporciona acceso de línea de comandos a tus recursos de Google Cloud.

  1. Haz clic en Activar Cloud Shell Ícono de Activar Cloud Shell en la parte superior de la consola de Google Cloud.

Cuando te conectes, habrás completado la autenticación, y el proyecto estará configurado con tu PROJECT_ID. El resultado contiene una línea que declara el PROJECT_ID para esta sesión:

Your Cloud Platform project in this session is set to YOUR_PROJECT_ID

gcloud es la herramienta de línea de comandos de Google Cloud. Viene preinstalada en Cloud Shell y es compatible con la función de autocompletado con tabulador.

  1. Puedes solicitar el nombre de la cuenta activa con este comando (opcional):
gcloud auth list
  1. Haz clic en Autorizar.

  2. Ahora, el resultado debería verse de la siguiente manera:

Resultado:

ACTIVE: * ACCOUNT: student-01-xxxxxxxxxxxx@qwiklabs.net To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. Puedes solicitar el ID del proyecto con este comando (opcional):
gcloud config list project

Resultado:

[core] project = <project_ID>

Resultado de ejemplo:

[core] project = qwiklabs-gcp-44776a13dea667a6 Nota: Para obtener toda la documentación de gcloud, consulta la guía con la descripción general de gcloud CLI en Google Cloud.

Arquitectura

De acuerdo con el siguiente diagrama, activarás una Cloud Function para migrar un bucket de almacenamiento desde una política de alertas de Cloud Monitoring hacia una clase de almacenamiento menos costosa.

Diagrama de la migración del bucket de almacenamiento

Tarea 1. Habilita las APIs y clona el repositorio

  1. En Cloud Shell, habilita la API de Cloud Scheduler:

    gcloud services enable cloudscheduler.googleapis.com

    Haz clic en Revisar mi progreso para verificar el objetivo.

Habilitar la API de Cloud Scheduler
  1. Clona el repositorio:

    git clone https://github.com/GoogleCloudPlatform/gcf-automated-resource-cleanup.git && cd gcf-automated-resource-cleanup/
  2. Configura las variables de entorno y convierte la carpeta del repositorio en tu $WORKDIR donde ejecutarás todos los comandos relacionados con este lab:

    export PROJECT_ID=$(gcloud config list --format 'value(core.project)' 2>/dev/null) WORKDIR=$(pwd)
  3. Instala Apache Bench, una herramienta de generación de carga de código abierto:

    sudo apt-get install apache2-utils -y

Tarea 2. Crea buckets de Cloud Storage y agrega un archivo

  1. En Cloud Shell, navega al directorio migrate-storage:

    cd $WORKDIR/migrate-storage
  2. Crea serving-bucket, el bucket de Cloud Storage. Lo usarás más adelante para cambiar las clases de almacenamiento:

    export PROJECT_ID=$(gcloud config list --format 'value(core.project)' 2>/dev/null) gsutil mb -c regional -l {{{project_0.default_region|REGION}}} gs://${PROJECT_ID}-serving-bucket

Haz clic en Revisar mi progreso para verificar el objetivo.

Crear un bucket de Cloud Storage
  1. Configura el bucket como público:

    gsutil acl ch -u allUsers:R gs://${PROJECT_ID}-serving-bucket
  2. Agrega un archivo de texto al bucket:

    gsutil cp $WORKDIR/migrate-storage/testfile.txt gs://${PROJECT_ID}-serving-bucket
  3. Configura el archivo como público:

    gsutil acl ch -u allUsers:R gs://${PROJECT_ID}-serving-bucket/testfile.txt
  4. Confirma que puedes acceder al archivo:

    curl http://storage.googleapis.com/${PROJECT_ID}-serving-bucket/testfile.txt

    El resultado será el siguiente:

    this is a test

Haz clic en Revisar mi progreso para verificar el objetivo.

Configurar el bucket de Cloud Storage como público
  1. Crea un segundo bucket llamado idle-bucket que no entregará ningún dato:

    gsutil mb -c regional -l {{{project_0.default_region|REGION}}} gs://${PROJECT_ID}-idle-bucket

Haz clic en Revisar mi progreso para verificar el objetivo.

Crear otro bucket de Cloud Storage

Tarea 3. Crea un panel de supervisión

Crea un permiso de métricas de Monitoring

Configura un permiso de métricas de Monitoring que esté vinculado a tu proyecto de Google Cloud. Sigue estos pasos para crear una cuenta nueva que incluya una prueba gratuita de Monitoring.

  • En la consola de Cloud, haz clic en Menú de navegación (Ícono del menú de navegación) > Monitoring.

Cuando se abra la página de Descripción general de Monitoring, tu proyecto de permisos de métricas estará listo.

  1. En el panel de la izquierda, haz clic en Paneles > Crear panel.

  2. Asígnale el nombre Bucket Usage al panel.

  3. Haz clic en + AGREGAR WIDGET.

  4. Haz clic en Gráfico de líneas.

  5. En Título del Widget, escribe Bucket Access.

  6. En selecciona una métrica > Métrica, escribe gcs_bucket para el recurso, selecciona la métrica Bucket de GCS > API > Api > Recuento de solicitudes y haz clic en Aplicar.

Nota: Si no puedes encontrar la métrica Recuento de solicitudes, desactiva la opción Mostrar solo recursos y métricas activos.

Panel Selecciona una métrica

  1. Haz clic en + Agregar filtro.

Si deseas filtrar por el nombre del método, haz lo siguiente:

  • En Label, selecciona method.
  • En Comparison, selecciona =(equals).
  • En Value, selecciona ReadObject.
  • Haz clic en Aplicar.
  1. Para agrupar las métricas por nombre de bucket, en la lista desplegable Agrupar por, selecciona bucket_name y haz clic en Aceptar.

Configuraste Cloud Monitoring para observar el acceso a objetos en tus buckets. El gráfico no tiene ningún dato porque los buckets de Cloud Storage no están recibiendo tráfico.

Tarea 4. Genera carga en el bucket de entrega

Ahora que configuraste la supervisión, usa Apache Bench para enviar tráfico a serving-bucket.

  1. En Cloud Shell, envía solicitudes al objeto en el bucket de entrega:
ab -n 10000 http://storage.googleapis.com/$PROJECT_ID-serving-bucket/testfile.txt
  1. En el panel de la izquierda, haz clic en Paneles y, luego, en el nombre de tu panel (Bucket Usage) para ver el gráfico de acceso del bucket.
Nota: Si cerraste esta pestaña antes, selecciona el menú de navegación > Monitoring y, en el panel izquierdo, haz clic en Paneles > Bucket Usage. Nota: Debes esperar al menos 1 minuto para que el gráfico aparezca en el panel Bucket Usage.
  1. Consulta los detalles del tráfico.

Panel Bucket Usage

Tarea 5. Revisa e implementa la Cloud Function

  1. En Cloud Shell, ingresa el siguiente comando para ver el código de la Cloud Function que migra un bucket de almacenamiento a la clase Nearline Storage:

    cat $WORKDIR/migrate-storage/main.py | grep "migrate_storage(" -A 15

    El resultado es el siguiente:

    def migrate_storage(request): # process incoming request to get the bucket to be migrated: request_json = request.get_json(force=True) # bucket names are globally unique bucket_name = request_json['incident']['resource_name'] # create storage client storage_client = storage.Client() # get bucket bucket = storage_client.get_bucket(bucket_name) # update storage class bucket.storage_class = "NEARLINE" bucket.patch()

    Observa que la Cloud Function usa el nombre del bucket que se pasó en la solicitud para cambiar su clase de almacenamiento a Nearline.

  2. Implementa la Cloud Function:

    gcloud functions deploy migrate_storage --trigger-http --runtime=python37 --region {{{project_0.default_region | Region}}}

    Cuando se te solicite, ingresa Y para permitir las invocaciones no autenticadas.

  3. Captura la URL activadora en una variable de entorno que usarás en la próxima sección:

    export FUNCTION_URL=$(gcloud functions describe migrate_storage --format=json --region {{{project_0.default_region | Region}}} | jq -r '.httpsTrigger.url')

Haz clic en Revisar mi progreso para verificar el objetivo.

Implementar la Cloud Function

Tarea 6. Prueba y valida la automatización de alertas

  1. Establece el nombre del bucket inactivo:

    export IDLE_BUCKET_NAME=$PROJECT_ID-idle-bucket
  2. Usa el archivo incident.json para enviar una notificación de prueba a la Cloud Function que implementaste:

    envsubst < $WORKDIR/migrate-storage/incident.json | curl -X POST -H "Content-Type: application/json" $FUNCTION_URL -d @-

    El resultado es el siguiente:

    OK

    El resultado no termina con una línea nueva y, por lo tanto, lo sigue de inmediato el símbolo del sistema.

  3. Confirma que el bucket inactivo se haya migrado a Nearline:

    gsutil defstorageclass get gs://$PROJECT_ID-idle-bucket

    El resultado es el siguiente:

    gs://-idle-bucket: NEARLINE

Haz clic en Revisar mi progreso para verificar el objetivo.

Confirmar la migración del bucket a Nearline

¡Felicitaciones!

Completaste las siguientes tareas:

  • Creaste dos buckets de Cloud Storage.
  • Agregaste un objeto a uno de los buckets.
  • Configuraste Cloud Monitoring para observar el acceso al objeto del bucket.
  • Revisaste el código de la Cloud Function que migra objetos de un bucket regional a uno Nearline.
  • Implementaste la Cloud Function.
  • Usaste una alerta de Cloud Monitoring para probar la Cloud Function.

Finaliza la Quest

Este lab de autoaprendizaje forma parte de la Quest Optimizing your Google Cloud Costs. Una Quest es una serie de labs relacionados que forman una ruta de aprendizaje. Si completas esta Quest, obtendrás una insignia como reconocimiento por tu logro. Puedes hacer públicas tus insignias y agregar vínculos a ellas en tu currículum en línea o en tus cuentas de redes sociales. Inscríbete en esta Quest y obtén un crédito inmediato de realización.
Consulta el catálogo de Google Cloud Skills Boost para ver todas las Quests disponibles.

Realiza tu próximo lab

Continúa tu Quest con Niveles de red: Cómo optimizar los gastos de la red o bien consulta estas sugerencias:

Capacitación y certificación de Google Cloud

Recibe la formación que necesitas para aprovechar al máximo las tecnologías de Google Cloud. Nuestras clases incluyen habilidades técnicas y recomendaciones para ayudarte a avanzar rápidamente y a seguir aprendiendo. Para que puedas realizar nuestros cursos cuando más te convenga, ofrecemos distintos tipos de capacitación de nivel básico a avanzado: a pedido, presenciales y virtuales. Las certificaciones te ayudan a validar y demostrar tus habilidades y tu conocimiento técnico respecto a las tecnologías de Google Cloud.

Última actualización del manual: 25 de octubre de 2023

Prueba más reciente del lab: 26 de octubre de 2023

Copyright 2024 Google LLC. All rights reserved. Google y el logotipo de Google son marcas de Google LLC. Los demás nombres de productos y empresas pueden ser marcas de las respectivas empresas a las que estén asociados.

Este contenido no está disponible en este momento

Te enviaremos una notificación por correo electrónico cuando esté disponible

¡Genial!

Nos comunicaremos contigo por correo electrónico si está disponible