View a markdown version of this page

从非 MSK Apache Kafka 集群迁移到已配置的 Amazon MSK - Amazon Managed Streaming for Apache Kafka
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)。

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

从非 MSK Apache Kafka 集群迁移到已配置的 Amazon MSK

您可以使用 MSK Replicator 将 Apache Kafka 工作负载从自管理环境迁移到亚马逊 MSK 预置集群。MSK Replicator 支持从启用双向 TLS (mTLS) 或 (OAuth) 身份验证的 Kafka 部署(Kafka 版本 2.8.1 或 SASL/OAUTHBEARER 更高版本)迁移数据。 SASL/SCRAM

注意

SASL/SCRAM只有 MSK Replicator 需要 SASL/OAUTHBEARER 进行身份验证、mTLS 或身份验证才能连接到您的自我管理的 Kafka 集群。您的客户端应用程序可以继续使用其现有的身份验证机制。

先决条件

开始之前,确保您已准备好以下事项:

  1. 运行 2.8.1 或更高版本的源 Apache Kafka 集群

  2. SASL/SCRAM、mTLS 或在源集群上启用 SASL/OAUTHBEARER 身份验证

  3. 在源集群上配置的 SSL 加密

  4. 通过 Amazon Site-to-Site VPN 或 Amazon 直接连接进行网络连接

  5. 为访问密钥管理器配置的 VPC 子网

有关详细说明,请参阅使用自管理 Apache Kafka 集群为 MSK Replicator 设置先决条件。

第 1 步:创建 Amazon MSK 预置集群

创建启用 IAM 身份验证的 MSK 预置集群。在三个可用区中至少有三个经纪人。请参阅准备目标集群。

第 2 步:创建 IAM 执行角色

附加AWSMSKReplicatorExecutionRole托管策略并配置的信任策略kafka.amazonaws.com。为 per Amazon Secrets Manager ( Amazon KMS 如果您的密钥是 CMK-encrypted)添加内联权限mTL 和客户管理密钥的其他 SER 权限 SASL/SCRAM SASL/OAUTHBEARER。请参阅使用自管理 Apache Kafka 集群为 MSK Replicator 设置先决条件。

第 3 步:在自管集群上配置 SASL/SCRAM、mTLS 或 SASL/OAUTHBEARER SSL

在自管集群上配置身份验证。对于 SASL/SCRAM,创建具有所需 ACL 权限的专用 SCRAM 用户。对于 mTLS,使用客户端证书身份验证配置 SSL 侦听器。对于 SASL/OAUTHBEARER,为 OAUTHBEARER 配置您的代理并注册提供访问令牌的身份提供商 (IDP)。配置 SSL 证书。请参阅使用自管理 Apache Kafka 集群为 MSK Replicator 设置先决条件。

步骤 4:将凭据存储在 Amazon Secrets Manager

使用适合您的身份验证类型的键值对创建密钥。对于 SASL/SCRAM、包含usernamepassword、和certificate字段。对于 mTL,包括certificate和privateKey字段(加密私钥privateKeyPassword也是可选的)。要 SASL/OAUTHBEARER 使用客户端凭证机制,请包含client_id和client_secret字段。请参阅使用自管理 Apache Kafka 集群为 MSK Replicator 设置先决条件。

步骤 5:创建复制器

使用EARLIEST起始位置、相同主题名称复制并synchroniseConsumerGroupOffsets设置为的 CreateReplicator API true。调用的 IAM 委托人CreateReplicator必须具有中所述的 API 调用者权限创建 MSK 复制器所需的 IAM 权限。如果您计划为回滚功能设置双向复制(步骤 6),还consumerGroupOffsetSyncMode要在正向和反向复制器ENHANCED上都设置为。等待大约 30 分钟,让复制器进入运行状态。请参阅CreateReplicator 自建的 Kafka 集群的 API 示例。

步骤 6:(可选)设置双向复制

从 MSK 配置的集群创建反向复制器返回自管理集群,以实现回滚功能。在反向复制器中识别两个集群,完全按照您在正向复制器中识别它们的方式识别它们。请参阅双向复制示例。

第 7 步:监控复制进度

监控以下指标:

  • MessageLag(应达到 0)

  • ReplicationLatency

  • ConsumerGroupOffsetSyncFailure(应为 0)

  • ConsumerGroupCount

  • OffsetLag (MSK Cluster) 和 OffsetLag (Non-MSK Cluster)

有关更多信息,请参阅 监控复制。

第 8 步:迁移应用程序

请按照以下步骤迁移您的应用程序:

  1. 阻止生产者写入自管集群

  2. 使用 IAM 身份验证将生产者重新配置为 MSK 预置集群

  3. 监视MessageLag直到达到 0

  4. 在自建集群上阻止消费者

  5. 将消费者重新配置为 MSK 配置的集群

第 9 步:(可选)回滚到自建集群

如果配置了双向复制,则可以反向迁移步骤以回滚到自建集群。反向复制器(已配置 MSK → 外部)将使自管理集群保持同步,因此可以将消费者重定向回而不会丢失数据。