NaranjaX借助AWS RAM和Route 53实现跨账户MSK Serverless集群管理
DataHot 速览
NaranjaX为从REST架构演进到事件驱动架构,采用Amazon MSK Serverless,并利用AWS RAM和Route 53 Resolver实现跨账户的MSK Serverless集群连接。该方案将共享VPC子网、Route 53解析端点与安全组相结合,支持集群分布在多个账户中,避免集中式配额依赖,同时保持可扩展性、可用性并降低运维开销。
为什么值得关注:跨账户流数据基础设施的DNS与资源共享实践,对采用托管Kafka的企业有参考价值。
本文目录 14 节
译文
AI 逐段翻译NaranjaX 是一家领先的金融科技平台,旨在简化和改善阿根廷数百万人的日常金融生活。通过其数字生态系统,NaranjaX 提供一整套金融产品和服务,包括支付、收款、融资、储蓄和保障产品。
NaranjaX 需要从基于 REST 的架构演进到使用 Amazon Managed Streaming for Apache Kafka (Amazon MSK) Serverless 的事件驱动架构。在多账户环境中,MSK Serverless 集群在其托管账户内解析 DNS 名称。AWS 发布了一种跨账户连接模式,将集群集中在单个账户中。这对许多组织来说是一种有效的方法。NaranjaX 需要额外的灵活性,以便将集群分布到各个账户,同时避免集中的配额依赖。
NaranjaX 通过开发一种使用 AWS Resource Access Manager (AWS RAM) 和 Amazon Route 53 Resolver 的方法解决了这一需求。在本文中,我们向您展示如何在不影响可扩展性、可用性和降低运营开销的情况下,跨多个账户扩展 Amazon MSK Serverless 的使用。
解决方案概览
NaranjaX 的解决方案通过集中式网络架构支持跨账户 MSK Serverless 部署,该架构结合了共享虚拟私有云 (VPC) 资源和 DNS 解析功能。该解决方案使用一个中央 AWS 账户托管共享私有子网和 Route 53 解析器端点,以便不同账户中的 MSK Serverless 集群可以跨账户边界进行通信。
该架构由三个主要组件组成:
- 中央 VPC,其私有子网通过 AWS RAM 跨账户共享。
- Route 53 解析器端点和规则,用于跨账户解析 MSK Serverless 集群的 DNS。
- 网络安全配置,控制组件之间的通信。
当应用程序团队在其账户中创建 MSK Serverless 集群时,他们可以将其关联到共享 VPC 子网。Route 53 解析器规则处理集群域名的 DNS 解析,而安全组管理访问控制。此设计支持 MSK Serverless 集群与跨不同 AWS 账户的应用程序之间的直接连接。

图 1:使用中央网络账户共享子网和 Route 53 解析器端点的跨账户架构
实施要求和配置
本节将引导您完成使用共享 VPC 子网和 Route 53 解析器规则配置跨账户 MSK Serverless 连接的步骤。在开始之前,请确保您已满足前提条件。
前提条件
在实施此解决方案之前,请确认以下事项:
- AWS RAM 已在您的 AWS Organization 中启用。有关说明,请参阅在 AWS Organizations 内启用资源共享。
- Amazon MSK 支持共享子网。在任何账户中创建 MSK Serverless 集群时,您可以将共享 VPC 关联为服务支持的最多五个 VPC 之一。
- 您拥有多账户环境,至少有一个中央网络账户和一个或多个应用程序账户。
- 您有权在中央账户中创建 VPC、子网、Route 53 解析器端点和 AWS RAM 资源共享。
步骤 1:在中央账户中使用 AWS RAM 共享子网
首先,在您的中央网络账户中创建一个带有私有子网的 VPC。这些子网是您将通过 AWS RAM 共享的资源。有关详细信息,请参阅《Amazon VPC 用户指南》中的创建 VPC。
接下来,在 AWS RAM 中为这些子网创建资源共享。选择您创建的子网并指定目标账户。
最后,指定授权使用共享子网的主体(账户 ID)。这些是您将在其中创建 Amazon MSK Serverless 集群的账户。

图 2:在 AWS RAM 中为私有子网创建资源共享

图 3:为资源共享指定目标账户
图 4:确认授权使用共享子网的主体
步骤 2:配置 Amazon Route 53 解析器规则
在您的中央账户中,为域 *.kafka-serverless.<Region>.amazonaws.com 创建 Route 53 解析器规则。此时不要将此规则关联到任何 VPC。

图 5:kafka-serverless 域的 Route 53 解析器规则
将此配置为 kafka-serverless 子域的转发规则。在中央账户中设置出站端点,并将目标 IP 地址指向同一账户中的入站端点。

图 6:使用出站和入站解析器端点的转发规则配置
使用 AWS RAM 与您的应用程序账户共享解析器规则,以便他们可以解析其 MSK Serverless 集群的 DNS 名称。
确保中央 VPC 配置了入站和出站解析器端点,以支持跨账户 DNS 解析。
步骤 3:配置网络安全组
在每个消费账户中配置安全组,以允许端口 53(DNS 解析)和端口 9098(Kafka IAM 身份验证)上的入站和出站流量。这支持跨账户边界对您的 MSK Serverless 代理进行名称解析和安全连接。
步骤 4:启用并测试多对多连接
有了网络基础设施,您现在可以在任何应用账户中创建MSK Serverless集群。为此,请在您的应用账户中创建一个MSK Serverless集群,并将其与中央账户中的共享VPC子网关联。Route 53解析器规则会自动处理集群端点的DNS解析,而您配置的安全组则控制访问。这消除了将所有集群托管在单个账户中的限制。
您可以灵活地为客户端配置DNS解析。例如,在客户端账户中,您可以直接将共享解析器规则与VPC关联,或者使用中央账户中的入站端点IP地址作为自定义DNS服务器。在连接脚本中或为单独的VPC在DHCP选项集中配置这些设置。
要验证连通性,请使用dig命令从客户端账户VPC中的实例测试跨账户MSK Serverless引导字符串的DNS解析。以下示例使用+short标志以清晰显示:

图7:dig命令跨账户解析MSK Serverless引导字符串。
输出显示,在不同账户和VPC中的两个MSK Serverless集群(以boot-*开头的引导字符串)解析到三个监听连接的代理的实际IP地址。
这证实了该架构支持事件驱动工作负载的可扩展、一致的跨账户通信。
主要优势
NaranjaX将MSK Serverless作为其集成骨干的实施,在15多个应用团队和40多个AWS账户中带来了可衡量的优势,转变了应用开发和运维。
可扩展性与优化成本
借助MSK Serverless,团队可以自动扩展工作负载,无需管理代理容量。结合AWS RAM和Route 53,该架构支持在超过40个账户中增长,同时保持成本效率。通过无需专门的Kafka运维人员和自管理集群,NaranjaX相较于之前的自管理Kafka部署,基础设施管理成本降低了约40%。
简化治理与安全
集中式DNS管理和VPC共享使所有账户的配置标准化。基于IAM的访问控制与KATHU集成,提供了对主题所有者和消费者访问的清晰可见性,将安全审查周期从数天缩短到数小时。
通过IDP集成加速开发者入门
通过将Kafka控制平面操作直接集成到内部开发者平台(IDP)中,团队可以通过Terraform模块或图形界面配置集群和主题。这将新团队采用事件驱动架构的入门时间从数周缩短到不到一天。
降低运维开销
应用团队可以专注于交付业务功能,而不是管理Kafka基础设施。中央运维处理DNS、网络和资源共享,而MSK Serverless抽象了代理管理。这将与Kafka相关的运维工单减少了超过70%,并使平台团队能够专注于更高价值的计划。
后续步骤
NaranjaX正在评估扩展此解决方案,通过使用MSK Replicator跨账户自动复制主题,以便某些主题可以作为企业主题在中央枢纽中供全局消费。这将进一步简化架构,提高数据恢复能力,并增强跨事件域的可见性。
结论
通过此架构,NaranjaX成功地在超过20个AWS账户中实现了Amazon MSK Serverless的多对多连接模型。通过使用AWS RAM和Amazon Route 53 Resolver,该组织实现了可扩展、安全且集中的网络拓扑,加速了事件驱动架构的采用,而不会出现运维瓶颈。此方法补充了Tamer Soliman发布的跨账户连接模式,并为需要在大规模多账户环境中分布式Kafka集群的组织提供了额外的灵活性。要开始使用,请参阅Amazon MSK文档,并在您自己的多账户环境中尝试此方法。
这篇内容对你有用吗?
反馈只用于改善内容筛选,不等同于收藏