创建适用于 InfluxDB 的 Timestream 只读副本集群 - Amazon Timestream

要获得与亚马逊 Timestream 类似的功能 LiveAnalytics,可以考虑适用于 InfluxDB 的亚马逊 Timestream。适用于 InfluxDB 的 Amazon Timestream 提供简化的数据摄取和个位数毫秒级的查询响应时间,以实现实时分析。点击此处了解更多信息。

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

创建适用于 InfluxDB 的 Timestream 只读副本集群

适用于 InfluxDB 的 Timestream 只读副本集群包含一个写入器数据库实例和一个读取器数据库实例,位于不同可用区。适用于 InfluxDB 的 Timestream 只读副本集群可提供高可用性、增加读取工作负载的容量以及在配置到副本的失效转移时实现更快的失效转移。

数据库集群先决条件

重要

以下是创建只读副本集群之前需要完成的先决条件。

为数据库集群配置网络

您只能在虚拟私有云(VPC)中基于 Amazon VPC 服务创建适用于 InfluxDB 的 Timestream 只读副本数据库集群。它必须位于至少 AWS 区域 有三个可用区的中。为数据库集群选择的数据库子网组必须包含至少三个可用区。此配置可确保数据库集群中的每个数据库实例都位于不同的可用区。

要从同一 VPC 中的 EC2 实例以外的资源连接到数据库集群,请手动配置网络连接。

其他先决条件

在创建只读副本集群之前,请考虑以下附加先决条件:

要定制您的数据库集群的配置参数,请通过必需的参数设置来指定数据库集群参数组。有关创建或修改数据库集群参数组的信息,请参阅只读副本集群的参数组

确定要为您的数据库集群指定的 TCP/IP 端口号。有些公司的防火墙将会阻止通往这些默认端口的连接。如果您的公司防火墙阻止默认端口,请为数据库集群选择其他端口。数据库集群中的所有数据库实例均使用相同的端口。

创建数据库集群

你可以使用 AWS 管理控制台、或 Amazon Timestream for InfluxDB API 为 InfluxDB 只读副本数据库集群创建 Timestream。 AWS CLI

Using the AWS 管理控制台

通过在部署设置部分中选择带只读副本的集群,创建适用于 InfluxDB 的 Timestream 只读副本数据库集群。

使用控制台创建只读副本数据库集群:

  1. 登录到 AWS 管理控制台,并打开 Amazon Timestream 控制台。

  2. 在的右上角 AWS 管理控制台,选择要 AWS 区域 在其中创建只读副本数据库集群的。

  3. 在导航窗格中,选择 InfluxDB 数据库

  4. 选择创建 InfluxDB 数据库

  5. 部署设置中,选择带只读副本的集群

    选择该选项后,将显示一条消息,提示您需要通过 AWS Marketplace 小工具激活订阅。点击查看订阅选项。请注意,订阅生效可能需要 1-2 分钟。

    创建 InfluxDB 数据库界面,显示新数据库可用的不同部署设置。已选中“带只读副本的集群”选项。
    部署设置界面显示订阅正在进行的消息。
  6. 订阅激活后,点击查看订阅

    部署设置界面显示订阅现已激活的消息。
  7. 将弹出一个窗口,显示每个区域中每 vCPU 每实例小时的成本信息。这遵循相同的计算定价模型,即根据您选择的实例类型,对实例处于活动状态的小时数计费。您只需要订阅一次该附加组件,即可在所有可使用适用于 InfluxDB 的 Timestream 的区域创建实例。

    订阅选项表单,显示每个区域中每 vCPU 每实例小时的定价详情。
    重要

    要订阅该优惠,您需要拥有 AWSMarketplaceManageSubscriptions 或 AWSMarketplaceFullAccess权限。有关这些权限的更多信息,请查看控制对 AWS Marketplace 订阅的访问权限。

  8. 确认订阅后,该服务将根据实例所在区域自动选择区域。

  9. 数据库凭证中,填写以下字段:

    1. 对于数据库集群名称,请输入数据库集群的标识符。

    2. 提供 InfluxDB 基本的初始配置参数:用户名组织名称存储桶名称以及密码

  10. 实例配置中,指定数据库实例类。选择最适合工作负载需求的实例大小。请注意,此实例类型将用于只读副本数据库集群中的所有实例。

  11. 存储配置中,选择适合您需求的存储类型。在所有情况下,仅需要配置已分配的存储空间。请注意,此存储类型将用于只读副本数据库集群中的所有实例。

  12. 连接配置部分,请确保 InfluxDB 集群与需要连接到适用于 InfluxDB 的 Timestream 数据库实例的客户端位于同一子网中。您还可以在公共访问子部分中,选择将数据库实例设为公开可用。

  13. 选择创建 InfluxDB 数据库

  14. InfluxDB 数据库列表中,选择新 InfluxDB 集群的名称,以显示其详细信息。数据库集群具有正在创建状态,直到其就绪可供使用。

  15. 当状态变为可用时,即可连接到该数据库集群。根据数据库实例类和存储量,新实例可能需要等待 20 分钟时间才可用。

    数据库集群摘要页面显示两个实例均处于“可用”状态。
  16. 创建完成后,您可以点击数据库集群标识符,以检索新创建集群的相关信息。显示实例模式为 PRIMARY 的端点是您需要用于写入和引擎管理的端点。

Using the AWS CLI

要使用创建数据库实例 AWS Command Line Interface,请使用以下参数调用create-db-cluster命令。将每个 user input placeholder 替换为您自己的信息。

aws timestream-influxdb create-db-cluster \ --region region \ --vpc-subnet-ids subnet-ids \ --vpc-security-group-ids security-group-ids \ --db-instance-type db.influx.large \ --db-storage-type InfluxIOIncludedT2 \ --allocated-storage 400 \ --password password \ --name cluster-name \ --deployment-type MULTI_NODE_READ_REPLICAS \ --publicly-accessible //--failover-mode is optional and defaults to AUTOMATIC.

创建只读副本集群的设置

有关创建只读副本集群时所选设置的详细信息,请参阅下表。有关这些 AWS CLI 选项的更多信息,请参阅create-db-cluster。有关适用于 InfluxDB 的 Amazon Timestream API 参数的更多信息,请参阅。CreateDbCluster

控制台设置 设置说明 CLI 选项和适用于 InfluxDB 的 Timestream API 参数
分配的存储空间 为数据库集群中的每个数据库实例分配的存储量(以 GiB 为单位)。有关更多信息,请参阅InfluxDB 实例存储

CLI 选项:--allocated-storage

API 参数:allocatedStorage

数据库端口

InfluxDB 接受连接的端口号。

有效值:1024-65535

默认值:8086

限制:该值不能为 2375-2376、7788-7799、8090 或 51678-51680。

CLI 选项:--port

API 参数:port

数据库集群名称 唯一标识数据库集群的名称。每个客户和每个区域的数据库实例名称都必须具有唯一性。

CLI 选项:--name

API 参数:name

数据库实例类型 适用于 InfluxDB 的 Timestream 数据库集群中各数据库实例(例如 db.influx.xlarge)的计算和内存容量。

如有可能,请选择足够大的数据库实例类以便典型查询工作集能够保留在内存中。如果在内存中保留工作集,系统可以避免写入到磁盘,从而提高性能。

CLI 选项:--db-instance-type

API 参数:dbInstanceType

数据库集群参数组 要分配给数据库集群的数据库参数组 ID。数据库参数组指定数据库的配置方式。例如,数据库参数组可指定查询并发的限制。

CLI 选项:--db-parameter-group-identifier

API 参数:dbParameterGroupIdentifier

部署类型

指定将数据库集群部署为多节点只读副本还是多可用区多节点只读副本。

可能的值:MULTI_NODE_READ_REPLICAS

CLI 选项:--deployment-type

API 参数:deploymentType

VPC 子网 ID 要用于数据库集群的数据库子网 ID。选择选择现有以使用现有的数据库子网组,然后从现有数据库子网组下拉列表中,选择所需的子网组。选择自动设置,让适用于 InfluxDB 的 Timestream 选择兼容的数据库子网组。

CLI 选项:--vpc-subnet-ids

API 参数:vpcSubnetIds

Organization(组织) InfluxDB 中初始管理员用户的初始组织名称。InfluxDB 组织是用户组的工作空间。

CLI 选项:--organization

API 参数:organization

存储桶 初始 InfluxDB 存储桶的名称。所有 InfluxDB 数据都存储在存储桶中。存储桶结合数据库的概念和保留期(每个数据点存在的持续时间)。存储桶属于组织。

CLI 选项:--bucket

API 参数:bucket

日志导出

用于将 InfluxDB 引擎日志发送至指定 S3 存储桶的配置。

S3 存储桶日志传输的配置:s3Configuration -> (structure)

要向其传输日志的 S3 存储桶名称:bucketName -> (string)

指示是否启用向 S3 存储桶传输日志:enabled -> (boolean)

速记语法:s3Configuration={bucketName=string, enabled=boolean}

CLI 选项:--log-delivery-configuration

API 参数:logDeliveryConfiguration

密码 在 InfluxDB 中创建的初始管理员用户的密码。此密码将允许您访问 InfluxDB UI 以执行各种管理任务,还可以使用 InfluxDB CLI 创建运算符令牌。这些属性将存储在账户的 AWS Secrets Manager 中创建的密钥中。

CLI 选项:--password

API 参数:password

用户名 在 InfluxDB 中创建的初始管理员用户的用户名。必须以字母开头,且不能以连字符结束或包含两个连续的连字符。例如,my-user1。此用户名将允许您访问 InfluxDB UI 以执行各种管理任务,还可以使用 InfluxDB CLI 创建运算符令牌。这些属性将存储在账户的 AWS Secrets Manager 中创建的密钥中。

CLI 选项:--username

API 参数:username

公有访问权限 指示是否可从 VPC 外部访问数据库集群。

请选择可公开访问,为数据库集群提供公有 IP 地址,这表示可在 VPC 外部访问该实例。要可供公开访问,数据库集群还必须在 VPC 的公有子网中。

请选择不可公开访问,以设置只能从 VPC 内部访问数据库集群。

CLI 选项:--publicly-accessible--no-publicly-accessible

API 参数:publiclyAccessible

数据库存储类型 InfluxDB 数据。

根据工作负载的要求,您可以在三种不同类型的预置 Influx IOPS 内含存储之间进行选择:

可能的值:

  • Influx T1 IOIncluded

  • Influx T2 IOIncluded

  • Influx T3 IOIncluded

CLI 选项:--db-storage-type--no-publicly-accessible

API 参数:dbStorageType

VPC 安全组 IDs 要与数据库实例关联的 VPC 安全组列表。

CLI 选项:--vpc-security-group-ids--no-publicly-accessible

API 参数:vpcSecurityGroupIds

VPC 子网 IDs IDs 要与数据库实例关联的 VPC 子网列表。使用 InfluxDB 数据库集群的 Timestream 部署时, IDs 在不同的可用区中至少提供两个 VPC 子网。

CLI 选项:--vpc-subnet-ids

API 参数:vpcSubnetIds

失效转移模式 集群如何响应主实例故障。可使用以下选项进行配置:

AUTOMATIC:如果主实例失败,系统会自动将只读副本提升为新的主实例。

NO_FAILOVER:如果主实例失败,系统会尝试在不提升只读副本的情况下还原主实例。在主实例还原之前,集群将保持不可用状态。

CLI 选项:--failover-mode

API 参数:failoverMode

重要

作为数据库集群响应对象的一部分,您将收到 influxAuthParametersSecretArn。这将在账户中保存 Secrets Manager 密钥的 ARN。仅在 InfluxDB 数据库实例可用后才会进行填充。该密钥包含 CreateDbInstance 过程中提供的 Influx 身份验证参数。这是只读副本,因为此密钥的任何updates/modifications/deletions副本都不会影响创建的数据库实例。如果您删除此密钥,我们的 API 响应仍将引用已删除的密钥 ARN。