Solución de inicio: canalización de análisis de registros

Last reviewed 2023-04-10 UTC

Esta guía te ayuda a comprender, implementar y usar la solución de inicio Canalización de análisis de registros, que muestra cómo se captura una transmisión de datos de la aplicación desde varias fuentes y se pone a disposición para análisis.

Puedes implementar la solución para extraer y analizar registros web de una aplicación, lo que puede ayudarte a hacer lo siguiente:

  • Realizar un seguimiento del acceso a los recursos de la aplicación.
  • Identificar y reaccionar a los patrones de uso en tu aplicación.
  • Analizar y solucionar problemas de rendimiento.

Para obtener más información sobre la implementación y las prácticas recomendadas de registro, consulta Supervisar y registrar recursos.

Este documento está dirigido a desarrolladores que tengan experiencia en el procesamiento y análisis de datos de registro de las aplicaciones. Se supone que estás familiarizado con los conceptos básicos de la nube, aunque no necesariamente con Google Cloud. Es útil tener experiencia en Terraform.

Objetivos

Esta guía de soluciones te ayuda a hacer lo siguiente:

  • Obtener información sobre cómo los datos fluyen según un programa desde fuentes locales y en la nube hacia varias opciones de Cloud Storage y, finalmente, a tu flujo de trabajo de análisis.
  • Implementar una canalización de ejemplo que capture, almacene y procese registros web de muestra de una aplicación que se ejecuta en Cloud Run.
  • Analizar la información de registro mediante la consulta de datos almacenados en las tablas de BigQuery y la visualización de datos en los informes de Looker Studio

Arquitectura

Esta solución incluye registros web de muestra que capturan las interacciones de los usuarios con una aplicación web, incluidos los accesos, las solicitudes y la modificación de datos. En el siguiente diagrama, se muestra la arquitectura de la solución:

Diagrama de solución de inicio de la canalización de análisis de registros.

Flujo de solicitud

A continuación, se muestra el flujo de procesamiento de solicitudes de la canalización del análisis de registros que implementa esta solución. Los pasos del flujo están numerados como se muestra en el diagrama de arquitectura anterior.

  1. Un servidor web que se implementa en Cloud Run genera registros web cuando un usuario visita un sitio web que se implementa en el servidor web. Los registros web se envían de forma automática a Cloud Logging.

  2. Cloud Logging enruta los registros web a una tabla designada en BigQuery según un programa de la configuración de receptor de Cloud Logging.

  3. Las aplicaciones que se ejecutan en otras nubes o de manera local suben archivos de registro web a un bucket de Cloud Storage (esta implementación incluye un archivo de texto que contiene un archivo de registro web de muestra en formato JSON).

  4. El Servicio de transferencia de datos de BigQuery transfiere de forma periódica los archivos de registro web a una tabla designada en BigQuery, según la configuración de transferencia del Servicio de transferencia de datos de BigQuery.

  5. Ejecuta consultas en los registros web de la tabla o usa Looker Studio para visualizar los registros web.

Componentes y configuración

La arquitectura incluye los siguientes componentes:

Componente Descripción del producto Propósito de esta solución
Cloud Run Un servicio completamente administrado que te permite implementar y compilar apps sin servidores alojadas en contenedores. Google Cloud controla el escalamiento y otras tareas de infraestructura para que puedas enfocarte en la lógica empresarial de tu código. Aloja tu aplicación y la habilita para ejecutar y generar registros web.
Cloud Logging Servicio que te permite almacenar, buscar, analizar, supervisar y generar alertas sobre los datos y los eventos de registro de Google Cloud y otras nubes. Enruta registros web de aplicaciones alojadas en Cloud Run al almacén de datos de forma programada.
BigQuery Un almacén de datos altamente escalable y completamente administrado con capacidades integradas de aprendizaje automático. Almacena los registros que genera la aplicación y proporciona herramientas para analizar los datos.
Servicio de transferencia de datos de BigQuery Un servicio que transfiere datos desde fuentes en la nube o locales hacia el almacén de datos de BigQuery de forma segura y a un bajo costo. Mueve de forma periódica los archivos de registro generados (por aplicaciones que se ejecutan en otras nubes y de forma local) desde Cloud Storage al almacén de datos de BigQuery.
Cloud Storage Un servicio preparado para empresas que proporciona almacenamiento de objetos de bajo costo y sin límites para varios tipos de datos. Se puede acceder a los datos desde y hacia Google Cloud, y replicarlos con redundancia geográfica. Actúa como un data lake en el que las aplicaciones que se ejecutan en otras nubes y suben archivos de registro web. Luego, estos archivos se transfieren al almacén de datos de BigQuery. En esta implementación, se incluye un archivo de registro web de ejemplo.
Looker Studio Una plataforma de inteligencia empresarial de autoservicio que te ayuda a crear y compartir estadísticas de datos. Proporciona una forma de crear visualizaciones a partir de la información de registro web.

Costo

Para obtener una estimación del costo de los recursos de Google Cloud que usa la solución de canalización de análisis de registros, consulta la estimación calculada previamente en la calculadora de precios de Google Cloud.

Usa la estimación como punto de partida para calcular el costo de la implementación. Puedes modificar la estimación para que refleje cualquier cambio de configuración que planeas realizar para los recursos que se usan en la solución.

La estimación calculada previamente se basa en suposiciones para ciertos factores, incluidos los siguientes:

  • Las ubicaciones de Google Cloud en las que se implementan los recursos.
  • La cantidad de tiempo que se usan los recursos.

  • La cantidad de datos que almacenas y analizas con BigQuery

Implementa la solución

En esta sección, se te guiará a través del proceso de implementación de la solución.

Crea o elige un proyecto de Google Cloud

Cuando implementas la solución, eliges el proyecto de Google Cloud en el que se implementan los recursos. Cuando decidas si usarás un proyecto existente o crearás un proyecto nuevo, ten en cuenta los siguientes factores:

  • Si creas un proyecto para la solución, cuando ya no necesites la implementación, puedes borrar el proyecto y evitar la facturación continua. Si usas un proyecto existente, debes borrar la implementación cuando ya no la necesites.
  • El uso de un proyecto nuevo puede ayudar a evitar conflictos con los recursos aprovisionados con anterioridad, como los recursos que se usan para cargas de trabajo de producción.

Si deseas implementar la solución en un proyecto nuevo, crea el proyecto antes de comenzar la implementación.

Para crear un proyecto, completa los siguientes pasos:

  1. En la consola de Google Cloud, ve a la página del selector de proyectos.

    Ir al selector de proyectos

  2. Para comenzar a crear un proyecto de Google Cloud, haz clic en Crear proyecto.

  3. Ponle un nombre al proyecto. Toma nota de tu ID del proyecto generado.

  4. Edita los otros campos según sea necesario.

  5. Para crear el proyecto, haz clic en Crear.

Obtén los permisos de IAM necesarios

Para iniciar el proceso de implementación, necesitas los permisos de Identity and Access Management (IAM) que se enumeran en la siguiente tabla. Si tienes el rol básico roles/owner para el proyecto en el que planeas implementar la solución, ya tienes todos los permisos necesarios. Si no tienes el rol roles/owner, pídele a tu administrador que te otorgue estos permisos (o los roles que incluyen estos permisos).

Se requiere permiso de IAM Rol predefinido que incluye los permisos necesarios

serviceusage.services.enable

Administrador de Service Usage
(roles/serviceusage.serviceUsageAdmin)

iam.serviceAccounts.create

Administrador de cuenta de servicio
(roles/iam.serviceAccountAdmin)

resourcemanager.projects.setIamPolicy

Administrador de IAM de proyecto
(roles/resourcemanager.projectIamAdmin)
config.deployments.create
config.deployments.list
Administrador de Cloud Config Manager
(roles/config.admin)

Cuenta de servicio creada para la solución

Cuando inicias el proceso de implementación, se crea una cuenta de servicio para implementar la solución en tu nombre (y para borrar la implementación más adelante si lo deseas). A esta cuenta de servicio se le asignan ciertos permisos de IAM de forma temporal; es decir, los permisos se revocan de forma automática después de que se completan las operaciones de implementación y eliminación de la solución. Google recomienda que, después de borrar la implementación, borres la cuenta de servicio, como se describe más adelante en esta guía.

Ve los roles asignados a la cuenta de servicio

Estos roles se enumeran aquí en caso de que tu administrador necesite esta información.

  • roles/bigquery.admin
  • roles/iam.serviceAccountAdmin
  • roles/iam.serviceAccountUser
  • roles/logging.configWriter
  • roles/resourcemanager.projectIamAdmin
  • roles/run.admin
  • roles/serviceusage.serviceUsageAdmin
  • roles/storage.admin

Elige un método de implementación

Puedes implementar esta solución con los siguientes métodos:

  • Desde la consola: Usa este método si deseas probar la solución como está y ver cómo funciona. Cloud Build implementa todos los recursos necesarios para la solución. Cuando ya no necesites la solución implementada, puedes borrarla mediante la consola. Es posible que cualquier recurso que crees después de implementar la solución deba borrarse por separado.

    Para usar este método de implementación, sigue las instrucciones en Implementa desde la consola.

  • Usa Terraform: Usa este método si quieres personalizar la solución o automatizar el aprovisionamiento y la administración de los recursos mediante el uso del enfoque de la infraestructura como código (IaC). Descarga la configuración de Terraform desde GitHub y opcionalmente personaliza el código según sea necesario e implementa la solución mediante Terraform. Después de implementar la solución, puedes seguir usando Terraform para administrarla.

    Para usar este método de implementación, sigue las instrucciones en Implementa con Terraform.

Implementar desde la consola

Completa los siguientes pasos para implementar la solución preconfigurada como está.

  1. En el catálogo de soluciones de inicio de Google Cloud, ve a la página Canalización de análisis de registros.

  2. Revisa la información que se proporciona en la página, como el costo estimado de la solución y el tiempo de implementación.

  3. Cuando estés listo para comenzar la implementación de la solución, haz clic en Implementar.

    Se muestra una guía interactiva paso a paso.

  4. Completa los pasos de la guía interactiva:

    1. Selecciona un proyecto en el que quieras crear recursos implementados por la solución y haz clic en Continuar.

    2. En el campo Nombre de la implementación, escribe un nombre que no hayas usado antes en este proyecto.

    3. De manera opcional, agrega una etiqueta de identificación a la implementación. (El indicador de la solución y las etiquetas del nombre de la implementación se agregan automáticamente). Puedes usar etiquetas para organizar recursos por criterios, como el centro de costos, el entorno o el estado.

      Para obtener más información sobre las etiquetas, consulta Crea y administra etiquetas.

    4. En la lista Región, selecciona la región en la que se crearán los recursos.

      Para obtener más información acerca de las regiones, consulta Geografía y regiones.

  5. Cuando termines de especificar las opciones, haz clic en Implementar.

    Se muestra la página Implementaciones de soluciones. El campo Estado de esta página muestra Implementando.

  6. Espera a que se implemente la solución.

    Si la implementación falla, el campo Estado muestra Con errores. Puedes usar el registro de Cloud Build para diagnosticar los errores. Para obtener más información, consulta Errores cuando se implementa desde la consola

    Una vez completada la implementación, el campo Estado cambia a Implementado.

  7. Para ver los recursos de Google Cloud que se implementan y su configuración, realiza un recorrido interactivo.

    Empieza el recorrido

Usa la solución

Una vez que termine de implementarse la solución, puedes interactuar con ella para asegurarte de que el contenedor se esté ejecutando y comenzar tu análisis. Completa los siguientes pasos para usar la solución.

  1. En la página Implementaciones de soluciones, haz clic en el menú Acciones.

  2. Para ver el sitio de demostración de la imagen de contenedor de Cloud Run, haz clic en Ver sitio de demostración.

    El sitio de demostración contiene información básica y el estado de ejecución de la imagen de contenedor.

  3. Espera hasta 15 minutos para permitir que se complete la transferencia de datos inicial.

  4. Para visualizar la información de registro, regresa a Implementaciones de soluciones haz clic en el menú Acciones y, luego, haz clic en Ver informe de Looker Studio.

    El informe de Looker Studio te ayuda a visualizar la información del host y el estado de los registros generados de muestra. Para obtener más información sobre cómo interactuar con datos, consulta Analiza datos con BI Engine Looker

  5. Para ver la información detallada de los registros, regresa a la página Implementaciones de soluciones haz clic el menú Acciones y, luego, haz lo siguiente:

    1. Haz clic en Ver registros en BigQuery. Se abrirá la página Explorador y mostrará información sobre el conjunto de datos de logging que usas para esta implementación.

    2. En el panel Explorador, expande el recurso de registro.

    3. Haz clic en la tabla transferred_logs.

    4. En el panel transferred_logs, haz clic en la pestaña Vista previa. Se muestran todos los datos de registro en la tabla.

    Para obtener más información sobre cómo analizar datos en tablas de BigQuery, consulta Descripción general de estadísticas de BigQuery.

Implementaste la solución de ejemplo, interactuaste con un informe de muestra y obtuviste una vista previa de la información del registro en el almacén de datos. Para obtener información sobre las recomendaciones de diseño a fin de abordar las necesidades únicas de análisis de registros de tu organización, consulta Recomendaciones de diseño.

Cuando ya no necesites la solución, puedes borrar la implementación para evitar que se sigan facturando los recursos de Google Cloud. Para obtener más información, consulta Borra la implementación.

Implementa con Terraform

En esta sección, se describe cómo puedes personalizar la solución o automatizar el aprovisionamiento y la administración de la solución mediante Terraform. Las soluciones que implementas mediante el código de Terraform no se muestran en la página Implementaciones de soluciones en la consola de Google Cloud.

Configura el cliente de Terraform

Puedes ejecutar Terraform en Cloud Shell o en tu host local. En esta guía, se describe cómo ejecutar Terraform en Cloud Shell, que tiene Terraform preinstalado y configurado para autenticarse con Google Cloud.

El código de Terraform para esta solución está disponible en un repositorio de GitHub.

  1. Clona el repositorio de GitHub en Cloud Shell.

    Abrir en Cloud Shell

    Se muestra un mensaje para que confirmes la descarga del repositorio de GitHub en Cloud Shell.

  2. Haz clic en Confirmar.

    Cloud Shell se inicia en otra pestaña del navegador y el código de Terraform se descarga en el directorio $HOME/cloudshell_open de tu entorno de Cloud Shell.

  3. En Cloud Shell, verifica si el directorio de trabajo actual es $HOME/cloudshell_open/terraform-google-log-analysis/examples/simple_example. Este es el directorio que contiene los archivos de configuración de Terraform para la solución. Si necesitas cambiar a ese directorio, ejecuta el siguiente comando:

    cd $HOME/cloudshell_open/terraform-google-log-analysis/examples/simple_example
    
  4. Inicializa Terraform mediante la ejecución del siguiente comando:

    terraform init
    

    Espera hasta ver el siguiente mensaje:

    Terraform has been successfully initialized!
    

Configura las variables de Terraform

El código de Terraform que descargaste incluye variables que puedes usar para personalizar la implementación según tus requisitos. Por ejemplo, puedes especificar el proyecto de Google Cloud y la región en la que deseas que se implemente la solución.

  1. Asegúrate de que el directorio de trabajo actual sea $HOME/cloudshell_open/terraform-google-log-analysis/examples/simple_example. Si no es así, ve a ese directorio.

  2. En el mismo directorio, crea un archivo de texto llamado terraform.tfvars.

  3. En el archivo terraform.tfvars, copia el siguiente fragmento de código y establece los valores para las variables obligatorias.

    • Sigue las instrucciones que se proporcionan como comentarios en el fragmento de código.
    • Este fragmento de código solo incluye las variables para las que debes establecer valores. La configuración de Terraform incluye otras variables que tienen valores predeterminados. Para revisar todas las variables y los valores predeterminados, consulta el archivo variables.tf que está disponible en el directorio $HOME/cloudshell_open/terraform-google-log-analysis/examples/simple_example.
    • Asegúrate de que cada valor que establezcas en el archivo terraform.tfvars coincida con el tipo de variable como se declara en el archivo variables.tf. Por ejemplo, si el tipo que se define para una variable en el archivo variables.tf es bool, debes especificar true o false como el valor de esa variable en el archivo terraform.tfvars.
      # This is an example of the terraform.tfvars file.
      # The values that you set in this file must match the variable types, as declared in variables.tf.
      # The values in this file override any defaults in variables.tf.
    
      # The project to provision resources to (required)
      project_id = "PROJECT_ID"
    
      # Google Cloud region where you want to deploy the solution (optional)
      # Example: us-central1
      region = "REGION"
    
      # The name used when resources are provisioned (optional)
      # Example: log-analysis
      deployment_name = project_id = "DEPLOYMENT_NAME"
    
      # A set of key/value label pairs to assign to the resources deployed by this solution (optional)
      # Example: {"team"="monitoring", "environment"="test"}
      labels = {"KEY1"="VALUE1",..."KEYn"="VALUEn"}
    
      # Whether to enable underlying APIs (optional)
      # Example: true
      enable_apis = "ENABLE_APIS"
    
      # Whether to delete all BigQuery resources when the solution is deleted (optional)
      # Example: false
      delete_content_on_destroy = "DELETE_CONTENT_ON_DESTROY"
    

Para obtener información sobre los valores que puedes asignar a las variables obligatorias, consulta los siguientes vínculos:

  • El campo project_id es obligatorio. Para obtener detalles sobre este valor, consulta Identifica proyectos.

  • Las otras variables tienen valores predeterminados. Puedes cambiar algunas de ellas (por ejemplo, deployment_name y labels).

Valida y revisa la configuración de Terraform

  1. Asegúrate de que el directorio de trabajo actual sea $HOME/cloudshell_open/terraform-google-log-analysis/examples/simple_example. Si no es así, ve a ese directorio.

  2. Verifica que la configuración de Terraform no tenga errores:

    terraform validate
    

    Si el comando muestra algún error, realiza las correcciones necesarias en la configuración y, luego, vuelve a ejecutar el comando terraform validate. Repite este paso hasta que el comando muestre el siguiente mensaje:

    Success! The configuration is valid.
    
  3. Revisa los recursos que se definen en la configuración:

    terraform plan
    
  4. Si no creaste el archivo terraform.tfvars como se describió antes, Terraform te solicita que ingreses valores para las variables que no tienen valores predeterminados. Ingresa los valores obligatorios.

    El resultado del comando terraform plan es una lista de los recursos que Terraform aprovisiona cuando aplicas la configuración.

    Si deseas realizar algún cambio, edita la configuración y, luego, vuelve a ejecutar los comandos terraform validate y terraform plan.

Aprovisiona los recursos

Cuando no se necesiten más cambios en la configuración de Terraform, implementa los recursos de la siguiente manera:

  1. Asegúrate de que el directorio de trabajo actual sea $HOME/cloudshell_open/terraform-google-log-analysis/examples/simple_example. Si no es así, ve a ese directorio.

  2. Aplica la configuración de Terraform:

    terraform apply
    
  3. Si no creaste el archivo terraform.tfvars como se describió antes, Terraform te solicita que ingreses valores para las variables que no tienen valores predeterminados. Ingresa los valores obligatorios.

    Terraform muestra una lista de los recursos que se crearán.

  4. Cuando se te solicite que realices las acciones, ingresa yes.

    Terraform muestra mensajes que señalan el progreso de la implementación.

    Si no se puede completar la implementación, Terraform muestra los errores que causaron la falla. Revisa los mensajes de error y actualiza la configuración para corregir los errores. Luego, vuelva a ejecutar el comando terraform apply. Para obtener ayuda con la solución de errores de Terraform, consulta Errores que se generan cuando se implementa la solución con Terraform.

    Una vez que se hayan creado todos los recursos, Terraform mostrará el siguiente mensaje:

    Apply complete!
    

    Una vez que se hayan creado todos los recursos, Terraform mostrará un mensaje similar al siguiente (algunos valores serán diferentes en tu implementación):

      bigquery_dataset_name = "<DEPLOYMENT_NAME>_logsink"
      bigquery_dataset_url = "https://console.cloud.google.com/bigquery?project=<PROJECT_ID>&ws=!1m4!1m3!3m2!1sPROJECT_ID!2s<DEPLOYMENT_NAME_logsink"
      bigquery_table_name = "transferred_logs"
      bucket_name = "<DEPLOYMENT_NAME>-ingest-cce5ab38"
      cloud_run_url="<VALUE>"
      lookerstudio_report_url = "https://lookerstudio.google.com/reporting/create?c.mode=edit&ds.connector=BIG_QUERY&ds.type=TABLE&ds.projectId=<PROJECT_ID>&ds.datasetId=<DEPLOYMENT_NAME>_logsink&ds.tableId=transferred_logs"
    

    Se muestran los siguientes detalles:

    • Nombre del conjunto de datos de BigQuery: el conjunto de datos en el que se almacenan los registros web.
    • URL del conjunto de datos de BigQuery: un vínculo a los detalles del conjunto de datos en la consola de Google Cloud.
    • Nombre de la tabla de BigQuery: La tabla en la que se almacenan los datos dentro del conjunto de datos.
    • Nombre del bucket: el bucket de almacenamiento que almacena archivos de registro web de aplicaciones que se ejecutan en otras nubes y de forma local.
    • URL del informe de Looker Studio: un vínculo a un informe en el que puedes visualizar registros web.

Usa la solución

Una vez que termine de implementarse la solución, puedes interactuar con ella para asegurarte de que el contenedor se esté ejecutando y comenzar tu análisis. Completa los siguientes pasos para usar la solución.

  1. Haz copias de los valores de bigquery_dataset_url y lookerstudio_report_url a fin de poder usarlos más adelante.

  2. Espera hasta 15 minutos para permitir que se complete la transferencia de datos inicial.

  3. Para ver una visualización de la información del registro, pega la URL de Looker Studio en el navegador.

    El informe de Looker Studio te ayuda a visualizar la información del host y el estado de los registros web de muestra. Para obtener más información sobre cómo interactuar con datos, consulta Analiza datos con BI Engine Looker

  4. Para ver información detallada del registro, haz lo siguiente:

    1. Pega el nombre del conjunto de datos de BigQuery en tu navegador. Se abrirá la página Explorador y se mostrará información sobre el conjunto de datos que usas para esta implementación.

    2. En el panel Explorador, expande el recurso de registro.

    3. Haz clic en la tabla transferred_logs.

    4. En el panel de la derecha, haz clic en Vista previa. Se muestran todos los datos de registro en la tabla.

    Para obtener más información sobre cómo analizar datos en tablas de BigQuery, consulta Descripción general de estadísticas de BigQuery.

  5. Para ver los recursos de Google Cloud que se implementan y su configuración, realiza un recorrido interactivo.

    Empieza el recorrido

Personaliza la solución

En esta sección, se proporciona información que los desarrolladores de Terraform pueden usar para modificar la solución de canalización de análisis de registros a fin de cumplir con sus propios requisitos técnicos y comerciales. La guía de esta sección es relevante solo si implementas la solución mediante Terraform.

Los recursos de Google Cloud que aprovisiona esta solución tienen parámetros preconfigurados. A fin de demostrar el flujo de trabajo para modificar los parámetros, este procedimiento te ayuda a modificar el parámetro de programa del Servicio de transferencia de datos de BigQuery, que puedes modificar para que se alinee con el intervalo esperado de actualización de datos.

Para personalizar la solución, completa los siguientes pasos en Cloud Shell:

  1. Verifica que el directorio de trabajo actual sea $HOME/cloudshell_open/terraform-google-log-analysis/examples/simple_example. Si no es así, ve a ese directorio:

    cd $HOME/cloudshell_open/terraform-google-log-analysis/examples/simple_example
    
  2. Abre el archivo main.tf y realiza los cambios necesarios, como se muestra en la siguiente tabla:

    Parámetro Argumento de Terraform en main.tf
    Programa de trabajo del Servicio de transferencia de datos de BigQuery Argumento en el archivo main.tf: schedule

    Fragmento de código

    
    resource "google_bigquery_data_transfer_config" "log_transfer" {
          ... template { ...
                  
            schedule = "SCHEDULE" ... } }
  3. Valida y revisa la configuración de Terraform.

  4. Aprovisiona los recursos.

Agrega tus propios archivos de registro web a la implementación (opcional)

La implementación de soluciones incluye registros web de muestra que puedes consultar o visualizar en los informes. Si deseas reemplazar los datos de muestra con tus propios datos de registro web, haz lo siguiente:

  1. Asegúrate de que tus registros web estén en formato JSON.

  2. Crea un archivo de esquema de datos basado en tus registros web en formato JSON.

  3. Implementa la solución mediante Terraform y reemplaza el contenido de los siguientes archivos por tus datos de esquema y datos propios:

    • Datos de registros web: sample_access_log.json
    • Esquema de datos: sample_access_log_schema.json

Recomendaciones de diseño

En esta sección, se proporcionan recomendaciones para usar la solución de canalización de análisis de registros a fin de desarrollar una arquitectura que cumpla con tus requisitos de seguridad, confiabilidad, costo y rendimiento.

Alternativas al producto

Si deseas modificar la solución para cumplir con tus requisitos únicos, considera las siguientes alternativas a los productos que se usan en la implementación de ejemplo:

  • La solución entrega tu aplicación desde un contenedor de Cloud Run. En tu entorno, puedes considerar otros productos que se entreguen a tu aplicación, según tus necesidades únicas. Para obtener más información sobre las opciones de procesamiento disponibles, consulta Hosting de aplicaciones en Google Cloud.

  • La solución contiene un bucket de almacenamiento en el que puedes subir archivos de registro de otras plataformas en la nube o locales. Si almacenas datos de registro en una base de datos administrada, puedes considerar transmitir los datos de esa base de datos a BigQuery. Para obtener más información, consulta Descripción general de Datastream.

Seguridad

Implementa las recomendaciones en las siguientes guías para obtener más seguridad sobre la arquitectura:

Confiabilidad

Usa los siguientes lineamientos para mejorar la confiabilidad de los productos de esta solución:

Rendimiento

Ayuda a optimizar el rendimiento mediante el cumplimiento de las siguientes prácticas recomendadas:

Costo

Usa los siguientes principios de diseño para optimizar el costo de tus flujos de trabajo:

Ten en cuenta lo siguiente:

  • Antes de realizar cambios en el diseño, evalúa el impacto del costo y considera posibles compensaciones con otras características. Puedes evaluar el impacto del costo de los cambios de diseño con la calculadora de precios de Google Cloud.
  • Para implementar cambios de diseño en la solución, necesitas experiencia en codificación de Terraform y conocimiento avanzado de los servicios de Google Cloud que se usan en la solución.
  • Si modificas la configuración de Terraform que proporciona Google y, luego, experimentas errores, crea problemas en GitHub. Los problemas de GitHub se revisan según el criterio del mejor esfuerzo y no están destinados a preguntas de uso general.
  • Para obtener información sobre el diseño y la configuración de entornos de producción en Google Cloud, consulta Diseño de la zona de destino en Google Cloud y Lista de tareas para la configuración de Google Cloud.

Borrar la implementación

Cuando ya no necesites la solución, borra todos los recursos que creaste para evitar que se sigan facturando.

Borra a través de la consola

Usa este procedimiento si implementaste la solución a través de la consola.

  1. En la consola de Google Cloud, ve a la página Implementaciones de soluciones.

    Ve a Implementaciones de soluciones

  2. Selecciona el proyecto que contenga la implementación que deseas borrar.

  3. Busca la implementación que deseas borrar.

  4. Haz clic en Acciones y selecciona Borrar.

  5. Ingresa el nombre de la implementación y, luego, haz clic en Confirmar.

    El campo Estado muestra Borrando.

    Si la eliminación falla, consulta la guía de solución de problemas en Error cuando se borra la implementación.

Cuando ya no necesites el proyecto de Google Cloud que usaste para la solución, puedes borrarlo. Para obtener más información, consulta Opcional: Borra el proyecto.

Borra con Terraform

Usa este procedimiento si implementaste la solución con Terraform.

  1. En Cloud Shell, asegúrate de que el directorio de trabajo actual sea $HOME/cloudshell_open/terraform-google-log-analysis/examples/simple_example. Si no es así, ve a ese directorio.

  2. Quita los recursos que aprovisionó Terraform:

    terraform destroy
    

    Terraform muestra una lista de los recursos que se destruirán.

  3. Cuando se te solicite que realices las acciones, ingresa yes.

    Terraform mostrará mensajes que muestran el progreso. Después de borrar todos los recursos, Terraform muestra el siguiente mensaje:

    Destroy complete!
    

    Si la eliminación falla, consulta la guía de solución de problemas en Error cuando se borra la implementación.

Cuando ya no necesites el proyecto de Google Cloud que usaste para la solución, puedes borrarlo. Para obtener más información, consulta Opcional: Borra el proyecto.

Opcional: Borra el proyecto

Si implementaste la solución en un proyecto de Google Cloud nuevo y ya no lo necesitas, sigue estos pasos para borrarlo:

  1. En la consola de Google Cloud, ve a la página Administrar recursos.

    Ir a Administrar recursos

  2. En la lista de proyectos, elige el proyecto que quieres borrar y haz clic en Borrar.
  3. Cuando se te solicite, escribe el ID del proyecto y, luego, haz clic en Cerrar.

Si decides conservar el proyecto, borra la cuenta de servicio que se creó para esta solución, como se describe en la siguiente sección.

Opcional: Borra la cuenta de servicio

Si borraste el proyecto que usaste para la solución, omite esta sección.

Como se mencionó antes en esta guía, cuando implementaste la solución, se creó una cuenta de servicio en tu nombre. A la cuenta de servicio se le asignaron ciertos permisos de IAM de forma temporal, es decir, los permisos se revocaron de forma automática después de que se completaron las operaciones de implementación y eliminación de la solución, pero la cuenta de servicio no se borró. Google recomienda que borres esta cuenta de servicio.

  • Si implementaste la solución desde la consola de Google Cloud, ve a la página Implementaciones de soluciones. (Si ya estás en esa página, actualiza el navegador). Un proceso se activa en segundo plano para borrar la cuenta de servicio. No es necesario realizar ninguna otra acción.

  • Si implementaste la solución con Terraform, completa los siguientes pasos:

    1. En la consola de Google Cloud, ve a la página Cuentas de servicio.

      Ir a Cuentas de servicio

    2. Selecciona el proyecto que usaste para la solución.

    3. Selecciona la cuenta de servicio que deseas borrar.

      El ID de correo electrónico de la cuenta de servicio que se creó para la solución tiene el siguiente formato:

      goog-sc-DEPLOYMENT_NAME-NNN@PROJECT_ID.iam.gserviceaccount.com
      

      El ID de correo electrónico contiene los siguientes valores:

      • DEPLOYMENT_NAME: El nombre de la implementación.
      • NNN: Un número aleatorio de 3 dígitos.
      • PROJECT_ID: Es el ID del proyecto en el que implementaste la solución.
    4. Haz clic en Borrar.

Solucionar errores

Las acciones que puedes realizar para diagnosticar y resolver errores dependen del método de implementación y la complejidad del error.

Errores en la implementación desde la consola

Si la implementación falla cuando usas la consola, haz lo siguiente:

  1. Ve a la página Implementaciones de soluciones.

    Si la implementación falló, el campo Estado muestra Con errores.

  2. Ve los detalles de los errores que causaron la falla:

    1. Haz clic en Acciones.

    2. Selecciona Ver registros de Cloud Build.

  3. Revisa el registro de Cloud Build y toma las medidas adecuadas para resolver el problema que causó la falla.

Errores en la implementación mediante Terraform

Si la implementación falla cuando se usa Terraform, el resultado del comando terraform apply incluye mensajes de error que puedes revisar para diagnosticar el problema.

En los ejemplos de las siguientes secciones, se muestran errores de implementación que puedes encontrar cuando usas Terraform.

Error: API no habilitada

Si creas un proyecto y, luego, intentas implementar la solución en el proyecto nuevo de inmediato, la implementación podría fallar con un error como el siguiente:

Error: Error creating Network: googleapi: Error 403: Compute Engine API has not
been used in project PROJECT_ID before or it is disabled. Enable it by visiting
https://console.developers.google.com/apis/api/compute.googleapis.com/overview?project=PROJECT_ID
then retry. If you enabled this API recently, wait a few minutes for the action
to propagate to our systems and retry.

Si se produce este error, espera unos minutos y vuelve a ejecutar el comando terraform apply.

Errores al borrar la implementación

Después de implementar la solución, si agregas o cambias algún recurso que aprovisiona la solución y, luego, intentas borrar la implementación, la eliminación podría fallar.

Por ejemplo, después de implementar la solución, si agregas una subred a la red de VPC que creó la solución y, luego, intentas borrar la solución, la eliminación fallará. Si implementaste la solución desde la consola, el campo Estado en la página Implementaciones de soluciones muestra Con errores, y el registro de Cloud Build muestra un error como el siguiente:

Error: running tf destroy: terraform destroy failed: running terraform failed: exit status 1
Step #0 - "Destroy blueprint": running tf destroy: terraform destroy failed: running terraform failed: exit status 1
Step #0 - "Destroy blueprint":
Step #0 - "Destroy blueprint": Error: Error waiting for Deleting Network: The network resource 'projects/mysolutionsproject/global/networks/tiered-web-app-private-network' is already being used by 'projects/mysolutionsproject/regions/asia-east1/subnetworks/mysubnet'

Si se produce este error, borra los recursos que agregaste después de implementar la solución y, luego, intenta borrar la solución nuevamente.

Errores cuando se borran recursos de BigQuery

Si la implementación falla cuando se usa Terraform, el resultado del comando terraform destroy incluye mensajes de error que puedes revisar para diagnosticar el problema.

Por ejemplo, puedes ver el siguiente mensaje de error:

Error: cannot destroy instance without setting deletion_protection=false and running `terraform apply`.

Si se produce este error, los recursos de BigQuery que creó la solución no se destruyen. Si deseas destruir los recursos de BigQuery, puedes borrarlos en la consola.

Errores en la transferencia de datos

Es posible que experimentes errores cuando transfieras datos de Cloud Storage a BigQuery o entre tu aplicación y BigQuery. Para solucionar errores de transferencia de datos, consulta la siguiente documentación:

Error cuando se borra una implementación

En algunos casos, los intentos de borrar una implementación podrían fallar:

  • Después de implementar una solución desde la consola, si cambias cualquier recurso que aprovisionó la solución y, luego, intentas borrar la implementación, la eliminación podría fallar. El campo Estado en la página Implementaciones de soluciones muestra Con errores, y el registro de Cloud Build muestra la causa del error.
  • Después de implementar una solución mediante Terraform, si cambias algún recurso mediante una interfaz que no es de Terraform (por ejemplo, la consola) y, luego, intentas borrar la implementación, la eliminación podría fallar. Los mensajes en el resultado del comando terraform destroy muestran la causa del error.

Revisa los registros de errores y los mensajes, identifica y borra los recursos que causaron el error y, luego, intenta borrar la implementación.

Si una implementación basada en la consola no se borra y no puedes diagnosticar el error mediante el registro de Cloud Build, puedes borrar la implementación mediante Terraform, como se describe en la siguiente sección.

Borra una implementación basada en la consola con Terraform

En esta sección, se describe cómo borrar una implementación basada en la consola si se producen errores cuando intentas borrarla de la consola. En este enfoque, descarga la configuración de Terraform para la implementación que deseas borrar y, luego, usa Terraform para borrar la implementación.

  1. Identifica la región en la que se almacenan el código, los registros y otros datos de Terraform de la implementación. Esta región puede ser diferente de la región que seleccionaste cuando implementaste la solución.

    1. En la consola de Google Cloud, ve a la página Implementaciones de soluciones.

      Ve a Implementaciones de soluciones

    2. Selecciona el proyecto que contenga la implementación que deseas borrar.

    3. En la lista de implementaciones, identifica la fila de la implementación que deseas borrar.

    4. Haz clic en Ver todo el contenido de la fila.

    5. En la columna Ubicación, observa la segunda ubicación, como se destaca en el siguiente ejemplo:

      Ubicación del código de implementación, los registros y otros artefactos.

  2. En la consola de Google Cloud, activa Cloud Shell.

    Activar Cloud Shell

    En la parte inferior de la consola de Google Cloud, se inicia una sesión de Cloud Shell en la que se muestra una ventana de línea de comandos. Cloud Shell es un entorno de shell con Google Cloud CLI ya instalada y con valores ya establecidos para el proyecto actual. La sesión puede tardar unos segundos en inicializarse.

  3. Crea variables de entorno para el ID del proyecto, la región y el nombre de la implementación que deseas borrar:

    export REGION="REGION"
    export PROJECT_ID="PROJECT_ID"
    export DEPLOYMENT_NAME="DEPLOYMENT_NAME"
    

    En estos comandos, reemplaza lo siguiente:

    • REGION: Es la ubicación que anotaste antes en este procedimiento.
    • PROJECT_ID: Es el ID del proyecto en el que implementaste la solución.
    • DEPLOYMENT_NAME: Es el nombre de la implementación que deseas borrar.
  4. Obtén el ID de la última revisión de la implementación que deseas borrar:

    export REVISION_ID=$(curl \
        -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        -H "Content-Type: application/json" \
        "https://config.googleapis.com/v1alpha2/projects/${PROJECT_ID}/locations/${REGION}/deployments/${DEPLOYMENT_NAME}" \
        | jq .latestRevision -r)
        echo $REVISION_ID
    

    El resultado es similar a este:

    projects/PROJECT_ID/locations/REGION/deployments/DEPLOYMENT_NAME/revisions/r-0
    
  5. Obtén la ubicación de Cloud Storage de la configuración de Terraform para la implementación:

    export CONTENT_PATH=$(curl \
        -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        -H "Content-Type: application/json" \
        "https://config.googleapis.com/v1alpha2/${REVISION_ID}" \
        | jq .applyResults.content -r)
        echo $CONTENT_PATH
    

    El siguiente es un ejemplo del resultado de este comando:

    gs://PROJECT_ID-REGION-blueprint-config/DEPLOYMENT_NAME/r-0/apply_results/content
    
  6. Descarga la configuración de Terraform desde Cloud Storage a Cloud Shell:

    gsutil cp -r $CONTENT_PATH $HOME
    cd $HOME/content/examples/simple_example
    

    Espera hasta que aparezca el mensaje Operation completed, como se muestra en el siguiente ejemplo:

    Operation completed over 45 objects/268.5 KiB
    
  7. Inicializa Terraform mediante este comando:

    terraform init
    

    Espera hasta ver el siguiente mensaje:

    Terraform has been successfully initialized!
    
  8. Quita los recursos implementados:

    terraform destroy
    

    Terraform muestra una lista de los recursos que se destruirán.

    Si se muestran advertencias sobre variables no declaradas, ignora las advertencias.

  9. Cuando se te solicite que realices las acciones, ingresa yes.

    Terraform mostrará mensajes que muestran el progreso. Después de borrar todos los recursos, Terraform muestra el siguiente mensaje:

    Destroy complete!
    
  10. Borra el artefacto de implementación:

    curl -X DELETE \
        -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        -H "Content-Type: application/json" \
        "https://config.googleapis.com/v1alpha2/projects/${PROJECT_ID}/locations/${REGION}/deployments/${DEPLOYMENT_NAME}?force=true&delete_policy=abandon"
    
  11. Espera unos segundos y, luego, verifica que se haya borrado el artefacto de implementación:

    curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        -H "Content-Type: application/json" \
        "https://config.googleapis.com/v1alpha2/projects/${PROJECT_ID}/locations/${REGION}/deployments/${DEPLOYMENT_NAME}" \
        | jq .error.message
    

    Si el resultado muestra null, espera unos segundos y vuelve a ejecutar el comando.

    Después de borrar el artefacto de implementación, aparece un mensaje como el que se muestra en el siguiente ejemplo:

    Resource 'projects/PROJECT_ID/locations/REGION/deployments/DEPLOYMENT_NAME' was not found
    

Enviar comentarios

Las soluciones de Jump Start solo tienen fines informativos y no son productos compatibles de forma oficial. Google puede cambiar o quitar soluciones sin previo aviso.

Para solucionar errores, revisa los registros de Cloud Build y el resultado de Terraform.

Para enviar comentarios, haz lo siguiente:

  • Para ver la documentación, los instructivos en la consola o la solución, usa el botón Enviar comentarios en la página.
  • Para el código de Terraform sin modificar, crea problemas en el repositorio de GitHub. Los problemas de GitHub se revisan según el criterio del mejor esfuerzo y no están destinados a preguntas de uso general.

¿Qué sigue?

Revisa la siguiente documentación para obtener más información sobre las prácticas recomendadas operativas y de arquitectura para los productos que se usan en esta solución: