Creación de una instancia de Timestream para InfluxDB y conectarse a ella - Amazon Timestream

Para obtener capacidades similares a las de Amazon Timestream, considere Amazon Timestream LiveAnalytics para InfluxDB. Ofrece una ingesta de datos simplificada y tiempos de respuesta a las consultas en milisegundos de un solo dígito para realizar análisis en tiempo real. Obtenga más información aquí.

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Creación de una instancia de Timestream para InfluxDB y conectarse a ella

En este tutorial, se crea una instancia de Amazon EC2 y una instancia de base de datos de Amazon Timestream para InfluxDB. En el tutorial se muestra cómo escribir datos en la instancia de base de datos desde la instancia de EC2 mediante el cliente de Telegraf. Como práctica recomendada, este tutorial crea una instancia de base de datos privada en una nube privada virtual (VPC). En la mayoría de los casos, otros recursos de la misma VPC, como las instancias de EC2, pueden acceder a la instancia de base de datos, pero los recursos ajenos a la VPC no pueden acceder a ella.

Tras completar el tutorial, habrá una subred pública y una privada en cada zona de disponibilidad de la VPC. En una zona de disponibilidad, la instancia de EC2 estará en la subred pública y la instancia de base de datos estará en la subred privada.

nota

La creación de una AWS cuenta es gratuita. Sin embargo, al completar este tutorial, es posible que incurra en costos por los AWS recursos que utilice. Puede eliminar estos recursos después de completar el tutorial si ya no son necesarios.

En el siguiente diagrama se muestra la configuración cuando la accesibilidad es pública.

Network diagram showing VPC with public subnet, internet gateway, ENI, and Timestream-InfluxDB database.
aviso

No recomendamos usar 0.0.0.0/0 para el acceso HTTP, ya que esto no permitiría que todas las direcciones IP accedan a su instancia pública de InfluxDB mediante HTTP. Este método no es aceptable ni siquiera para un periodo de tiempo corto en un entorno de prueba. Autorice solo una dirección IP específica o un intervalo de direcciones para acceder a sus instancias de InfluxDB mediante HTTP para el acceso a la IU web o la API.

En este tutorial se crea una instancia de base de datos que ejecuta InfluxDB con la Consola de administración de AWS. Nos centraremos únicamente en el tamaño y el identificador de la instancia de base de datos. Utilizaremos los ajustes predeterminados para las otras opciones de configuración. La instancia de base de datos creada en este ejemplo será privada.

Otros ajustes que puede configurar incluyen la disponibilidad, la seguridad y el registro. Para crear una instancia de base de datos pública, debe seleccionar que su instancia sea de acceso público en la sección Configuración de conectividad. Para obtener información acerca de la creación de instancias de base de datos, consulte Creación de una instancia de base de datos.

Si la instancia no es de acceso público, haga lo siguiente:

  • Cree un host en la VPC de la instancia a través del cual pueda canalizar el tráfico.

  • Configure los túneles SSH en la instancia. Para obtener más información, consulte Reenvío de puertos de instancias Amazon EC2 con. AWS Systems Manager

  • Para que el certificado funcione, añada la siguiente línea al archivo /etc/hosts de su máquina cliente: 127.0.0.1. Esta es la dirección DNS de la instancia.

  • Conéctese a su instancia con el nombre de dominio completo, por ejemplo, https://<DNS>:8086.

    nota

    Localhost no puede validar el certificado porque localhost no forma parte del SAN del certificado.

En el siguiente diagrama se muestra la configuración cuando la accesibilidad es privada:

Network diagram showing public and private subnets, security groups, and connections to external services.

Requisitos previos

Antes de empezar, complete los pasos de las siguientes secciones:

  • Regístrese para obtener una AWS cuenta.

  • Crear un usuario administrativo.

Paso 1: creación de una instancia de Amazon EC2

Cree una instancia de Amazon EC2 que utilicará para conectarse a la base de datos.

  1. Inicie sesión en la consola Amazon EC2 Consola de administración de AWS y ábrala en. https://console.aws.amazon.com/ec2/

  2. En la esquina superior derecha de Consola de administración de AWS, elija la AWS región en la que desee crear la instancia EC2.

  3. Elija Panel de EC2 y, a continuación, Lanzar instancia.

  4. Cuando se abra la página Lanzar una instancia, seleccione la siguiente configuración:

    1. En Nombre y etiquetas, en Nombre, introduzca ec2-database-connect.

    2. En Imágenes de aplicación y sistema operativo (Imagen de máquina de Amazon), elija Amazon Linux y, a continuación, AMI de Amazon Linux 2023. Mantenga los valores predeterminados para las demás opciones.

    3. En Instance type (Tipo de instancia), elija t2.micro.

    4. En Key pair (login) [Par de claves (inicio)], elija Key pair name (Nombre de par de claves) para utilizar un par de claves existente. Para crear un nuevo par de claves para la instancia de Amazon EC2, que se muestra a continuación, elija Create new key pair (Crear nuevo par de claves) y, a continuación, utilice la ventana Create key pair (Crear un par de claves). Para obtener más información sobre la creación de un nuevo par de claves, consulte Creación de un par de claves para la instancia de Amazon EC2 en la Guía del usuario de Amazon Elastic Compute Cloud.

    5. En Permitir tráfico de SSH desde en Configuraciones de red, elija el origen de las conexiones SSH a la instancia de EC2. Puede elegir My IP (Mi IP) si la dirección IP que se muestra es correcta para las conexiones SSH. De lo contrario, puede determinar la dirección IP que usará para conectarse a las instancias de EC2 en su VPC mediante Secure Shell (SSH). Para determinar su dirección IP pública, en una ventana o pestaña distinta del navegador, puede utilizar el servicio en checkip.amazonaws.com/. Un ejemplo de dirección IP es 192.0.2.1/32. En muchos casos, puede conectarse a través de un proveedor de servicios de internet (ISP) o protegido por un firewall sin una dirección IP estática. Si es así, asegúrese de identificar el rango de direcciones IP que utilizan los equipos cliente.

      aviso

      No recomendamos usar 0.0.0.0/0 para el acceso SSH, ya que esto no permitiría que todas las direcciones IP accedan a sus instancias públicas de EC2 mediante SSH. Este método no es aceptable ni siquiera para un periodo de tiempo corto en un entorno de prueba. Autorice solo una dirección IP específica o un intervalo de direcciones para acceder a sus instancias de EC2 mediante SSH.

Paso 2: crear una instancia de base de datos de InfluxDB

El componente básico de Amazon Timestream para InfluxDB es la instancia de base de datos. Este es el entorno en el que ejecuta las bases de datos InfluxDB.

En este ejemplo, creará una instancia de base de datos que ejecuta el motor de la base de datos de InfluxDB con una clase de instancia de base de datos db.influx.large.

  1. Inicie sesión en la consola Amazon Timestream for InfluxDB Consola de administración de AWS y ábrala en. https://console.aws.amazon.com/timestream/

  2. En la esquina superior derecha de la consola de Amazon Timestream para InfluxDB, elija la región de AWS en la que desea crear la instancia de base de datos.

  3. En el panel de navegación, elija Bases de datos de InfluxDB.

  4. Elija Crear base de datos de InfluxDB.

    Empty InfluxDB databases interface with option to create a new database.
  5. En la sección Configuración de implementación, seleccione Clúster con réplicas de lectura. Seleccione Ver opciones de suscripción para iniciar una suscripción al complemento de réplica de lectura. Para obtener más información, consulte Lea detenidamente las licencias de réplica AWS Marketplace.

  6. En la sección Credenciales de la base de datos, introduzca KronosTest -1 como nombre del clúster de base de datos.

  7. Proporcione los parámetros básicos de configuración de InfluxDB: Nombre de usuario inicial, Nombre de la organización inicial, Nombre del bucket inicial y Contraseña.

    importante

    No podrá ver de nuevo la contraseña de usuario. No podrá acceder a su instancia ni obtener un token de operador sin su contraseña. Si no la registra, es posible que tenga que cambiarla. Consulte Crear un nuevo token de operador para su instancia de InfluxDB.

    Si tiene que cambiar la contraseña de usuario después de que la instancia de base de datos esté disponible, puede modificar la instancia de base de datos para ello. Para obtener más información acerca de la modificación de una instancia de base de datos, consulte Actualización de instancias de base de datos.

    InfluxDB database creation interface with deployment settings and credentials input fields.
  8. En la sección Configuración de instancias, seleccione la clase de instancia de base de datos db.influx.large.

  9. En la sección Configuración del almacenamiento, seleccione Operaciones de E/S incluidas de Influx (3000) como Tipo de almacenamiento.

  10. En la sección de configuración de conectividad, seleccione IPv4el tipo de red. Asegúrese de que su instancia de InfluxDB esté en la misma subred que la instancia de EC2 recién creada. En Acceso público, seleccione No es de acceso público para que su instancia de base de datos sea privada.

    Connectivity configuration settings for database access, including network type, VPC, subnets, and security options.
  11. En las secciones Configuración de conmutación por error y Configuración del grupo de parámetros, mantenga los valores predeterminados.

  12. Configure sus registros en Configuración de la entrega de registros y cree etiquetas (opcional). Para obtener más información acerca de los registros, consulte Configuración para ver los registros de InfluxDB en las instancias de Timestream para InfluxDB. Para obtener más información acerca de cómo agregar etiquetas, consulte Agregar etiquetas a los recursos.

  13. Elija Crear base de datos de InfluxDB.

  14. En la lista Bases de datos, seleccione el nombre de la nueva instancia de InfluxDB para ver sus detalles. La instancia de base de datos tiene el estado Creando hasta que está lista para usarse.

Cuando el estado cambie a Disponible, podrá conectarse a la instancia de base de datos. Dependiendo de la clase de instancia de la base de datos y de la cantidad de almacenamiento, es posible que la nueva instancia tarde hasta 20 minutos en estar disponible.

importante

En este momento, no puede modificar las configuraciones de computación (tipos de instancia) y almacenamiento (tipos de almacenamiento) de las instancias existentes.

Paso 3: acceder a la IU de InfluxDB

Para acceder a la IU de InfluxDB desde una instancia privada de base de datos de Timestream para InfluxDB, debe conectarse desde la misma subred y el mismo grupo de seguridad. Una forma de facilitar esta conexión es crear un host bastión dentro de la subred privada.

Un host bastión es un servidor para fines específicos que actúa como un punto de entrada seguro a los sistemas esenciales y protege la red del acceso externo. Sirve como puerta de enlace entre su red interna segura y el mundo exterior.

nota

Para las instancias de base de datos de acceso público de Timestream para InfluxDB, puede acceder a la IU de InfluxDB mediante el botón IU de InfluxDB de la página de detalles de la instancia en la consola. Tenga en cuenta que este botón estará deshabilitado en las instancias que no sean de acceso público.

Si tiene una instancia de base de datos pública, conéctese a la IU de InfluxDB a través de la consola y continúe con Paso 4: enviar los datos de Telegraf a su instancia de InfluxDB.

Interfaz resumida en la que se muestran los detalles de una base de datos privada de InfluxDB. El botón de IU de InfluxDB está desactivado.

Siga estos pasos para crear y configurar el host bastión:

  1. Crear un host bastión: para crear un host bastión, puede lanzar una nueva instancia de EC2 o utilizar una existente. Asegúrese de que la instancia tenga la configuración de red necesaria para acceder al grupo de seguridad que utilizó para crear la instancia privada de Timestream para InfluxDB a la que intenta acceder.

  2. Conectarse a la IU de InfluxDB: una vez que haya creado un host bastión, puede utilizar el punto de conexión que se muestra en la consola para conectarse a la IU de InfluxDB. El punto de conexión tendrá el formato <db-identifier>-<*>.timestream-influxdb.<region>.on.aws. En China, será <db-identifier>-<*>.timestream-influxdb.<region>.on.amazonwebservices.com.rproxy.govskope.ca.cn.

  3. Configure su host bastión para el reenvío local: para configurar el reenvío local, utilice el administrador de sesiones AWS Systems Manager (SSM). Ejecute el siguiente comando y bastion-ec2-instance-id sustitúyalo por el ID de su instancia de host de bastión, endpoint por el punto final que aparece en la consola anterior y port-number por el número de puerto que desee usar:

    aws ssm start-session --target bastion-ec2-instance-id \ --document-name AWS-StartPortForwardingSessionToRemoteHost \ --parameters '{"host":["endpoint"], "portNumber":["port-number"], "localPortNumber":["port-number"]}'

    Es posible que se le pida que instale el SessionManagerPlugin. Para obtener más información, consulte Instalación del complemento del Administrador de sesiones para la AWS CLI.

  4. Acceda a la interfaz de usuario de InfluxDB: después de completar los pasos anteriores, puede acceder a la interfaz de usuario de InfluxDB en http://localhost:. port-number Deberá aceptar el mensaje que indica que “no es seguro”.

  5. Habilitar la validación del nombre de dominio: para habilitar la validación del nombre de dominio, añada la siguiente línea en su archivo /etc/hosts (Linux), /private/etc/hosts (Mac) o C:\Windows\System32\drivers\etc (Windows).

    127.0.0.1 endpoint
  6. Ahora puede acceder a la interfaz de usuario de InfluxDB mediante https://:. endpoint port-number

Paso 4: enviar los datos de Telegraf a su instancia de InfluxDB

Ahora puede empezar a enviar datos de telemetría a su instancia de base de datos de InfluxDB mediante el agente de Telegraf. En este ejemplo, instalará y configurará un agente de Telegraf para enviar las métricas de rendimiento a su instancia de base de datos de InfluxDB.

  1. Después de conectarse a la IU de InfluxDB, debería aparecer una nueva ventana del navegador con una petición de inicio de sesión. Introduzca las credenciales que utilizó anteriormente para crear su instancia de base de datos de InfluxDB.

  2. En el panel de navegación izquierdo, haga clic en el icono de flecha y seleccione Tokens de API.

  3. Para esta prueba, seleccione Generar token de API. Seleccione Todos los tokens de API en la lista desplegable.

    nota

    Para los escenarios de producción, recomendamos crear tokens con acceso específico a los buckets necesarios y que estén diseñados para las necesidades específicas de Telegraf.

    Dialog for generating an all-access API token with a warning and description field.
  4. Su token aparecerá en la pantalla.

    importante

    Asegúrese de copiar y guardar el token, ya que no volverá a mostrarse.

  5. Conéctese a la instancia de EC2 que ha creado anteriormente siguiendo los pasos que se indican en Conexión con la instancia de Linux mediante SSH en la Guía del usuario de Amazon Elastic Compute Cloud.

    Le recomendamos que se conecte a la instancia de EC2 mediante SSH. Si la utilidad de cliente SSH está instalada en Windows, Linux o Mac, puede conectarse a la instancia con el siguiente formato de comando:

    ssh -i location_of_pem_file ec2-user@ec2-instance-public-dns-name

    Por ejemplo, suponga que ec2-database-connect-key-pair.pem está almacenado en /dir1 en Linux y que el DNS IPv4 público de su instancia de EC2 es ec2-12-345-678-90.compute-1.amazonaws.com. Su comando SSH tendría el siguiente aspecto:

    ssh -i /dir1/ec2-database-connect-key-pair.pem ec2-user@ec2-12-345-678-90.compute-1.amazonaws.com
  6. Obtenga la versión más reciente de Telegraf instalada en la instancia. Para ello, utilice el siguiente comando:

    cat <<EOF | sudo tee /etc/yum.repos.d/influxdata.repo [influxdata] name = InfluxData Repository - Stable baseurl = https://repos.influxdata.com/stable/\$basearch/main enabled = 1 gpgcheck = 1 gpgkey = https://repos.influxdata.com/influxdata-archive_compat.key EOF sudo yum install telegraf
  7. Configure su instancia de Telegraf.

    nota

    Si telegraf.conf no existe o no contiene ninguna sección de timestream, puede generar una con:

    telegraf —section-filter agent:inputs:outputs —input-filter cpu:mem —output-filter timestream config > telegraf.conf
    1. Edite el archivo de configuración que normalmente se encuentra en /etc/telegraf.

      sudo nano /etc/telegraf/telegraf.conf
    2. Configure los complementos de entrada para CPUs las métricas de memoria y el uso del disco.

      [[inputs.cpu]] percpu = true totalcpu = true collect_cpu_time = false report_active = false [[inputs.mem]] [[inputs.disk]] ignore_fs = ["tmpfs", "devtmpfs", "devfs"]
    3. Configure el complemento de salida para enviar datos a su instancia de base de datos de InfluxDB y guarde los cambios.

      [[outputs.influxdb_v2]] urls = ["https://us-west-2-1.aws.cloud2.influxdata.com"] token = "<your_telegraf_token" organization = "your_org" bucket = "your_bucket" timeout = "5s"
    4. Configure el objetivo de Timestream.

      # Configuration for sending metrics to Amazon Timestream. [[outputs.timestream]] ## Amazon Region and credentials region = "us-east-1" access_key = "<AWS key here>" secret_key = "<AWS secret key here>" database_name = "<timestream database name>" # needs to exist ## Specifies if the plugin should describe on start. describe_database_on_start = false mapping_mode = "multi-table" # allows multiple tables for each input metrics create_table_if_not_exists = true create_table_magnetic_store_retention_period_in_days = 365 create_table_memory_store_retention_period_in_hours = 24 use_multi_measure_records = true # Important to use multi-measure records measure_name_for_multi_measure_records = "telegraf_measure" max_write_go_routines = 25
  8. Habilite e inicie el servicio de Telegraf.

    $ sudo systemctl enable telegraf $ sudo systemctl start telegraf

Paso 5: eliminar la instancia de Amazon EC2 y la instancia de base de datos de InfluxDB

Tras explorar los datos generados por Telegraf utilizando su instancia de base de datos de InfluxDB con la IU de InfluxDB, elimine las instancias de base de datos de EC2 y de InfluxDB para que no se le cobre más por ellas.

Para eliminar la instancia de EC2:

  1. Inicie sesión en la consola Amazon EC2 Consola de administración de AWS y ábrala en. https://console.aws.amazon.com/ec2/

  2. En el panel de navegación, seleccione Instances (Instancias).

  3. Seleccione la casilla de verificación junto al nombre de la instancia de EC2 y, a continuación, seleccione Estado de la instancia. Seleccione Terminar (eliminar) instancia.

  4. Cuando se le indique que confirme, elija Terminar (eliminar).

Para obtener más información sobre la eliminación de una instancia de EC2, consulte Terminación de instancias de EC2 en la Guía del usuario de Amazon Elastic Compute Cloud.

Para eliminar una instancia de base de datos sin instantánea de base de datos final:

  1. Inicie sesión en la consola Amazon Timestream for InfluxDB Consola de administración de AWS y ábrala en. https://console.aws.amazon.com/timestream/

  2. En el panel de navegación, elija Bases de datos de InfluxDB.

  3. Elija la instancia de base de datos que desea eliminar. Elija Delete (Eliminar)

  4. Para confirmar la eliminación, seleccione Eliminar.