一般性问题

问:什么是 Amazon MSK?
 
Amazon MSK 是一种新的亚马逊云科技流数据服务,用于管理 Apache Kafka 基础设施和运营,让开发人员和开发运维经理可以轻松地在亚马逊云科上运行 Apache Kafka 应用程序,而无需成为运行 Apache Kafka 集群方面的专家。Amazon MSK 是在亚马逊云科技运行现有或新的 Apache Kafka 应用程序的理想选择。Amazon MSK 运营和维护 Apache Kafka 集群,提供开箱即用的企业级安全功能,并内置亚马逊云科技集成,可加速流数据应用程序的开发。首先,您可以将现有 Apache Kafka 工作负载迁移到 Amazon MSK,或者只需单击几下,您便可以在几分钟内从头开始构建新的工作负载。集群内流量不会产生数据传输费用,也不需要长期承诺或预付款。您只需为实际使用的资源付费。

问:什么是 Apache Kafka?
 
Apache Kafka 是一个开源、高性能、可容错且可扩展的平台,用于构建实时流数据管道和应用程序。Apache Kafka 是一个流数据存储,它将生成流数据到其数据存储中的应用程序(生成者)与从其数据存储中使用流数据的应用程序(使用者)分离开来。组织使用 Apache Kafka 作为持续分析和响应流数据的应用程序的数据源。

问:什么是流数据?
 
流数据是由数千个机器、设备、网站和应用程序生成的连续的较小记录或事件流(一个记录或事件通常为几千字节)。流数据包括多种数据,例如客户使用您的移动或 Web 应用程序生成的日志文件、网购数据、游戏内玩家活动、社交网络的信息、金融交易大厅、地理空间服务,以及来自数据中心内所连接设备或仪器的遥测数据。流数据服务(如 Amazon MSK 和 Amazon Kinesis Data Streams)使您可以轻松地持续收集、处理和提供流数据。

问:Apache Kafka 的主要功能是什么?
 
Apache Kafka 有三个主要功能:
  • Apache Kafka 以容错的方式将流数据存储为一系列连续的记录,并保留记录的生成顺序。
  • Apache Kafka 充当数据生产者和数据使用者之间的缓冲区。Apache Kafka 允许许多数据生产者(例如网站、IoT 设备、Amazon EC2 实例)持续发布流数据并使用 Apache Kafka 主题对这些数据进行分类。多个数据使用者(例如机器学习应用程序、Lambda 函数)以自己的速率从这些主题中读取,类似于消息队列或企业消息收发系统。
  • 数据使用者以先进先出的方式处理来自 Apache Kafka 主题的数据,从而保留数据的生成顺序。


问:Apache Kafka 的关键概念是什么?

Apache Kafka 将记录存储在主题中。数据生产者将记录写入主题,而使用者则从主题中读取记录。Apache Kafka 中的每条记录均包含一个键、一个值和一个时间戳。Apache Kafka 在称为“代理”的多个节点上对主题进行分区和复制这些分区。Apache Kafka 在一个或多个代理上作为集群运行,代理可以位于多个亚马逊云科技可用区中,以创建高可用性集群。Apache Kafka 依靠 Apache ZooKeeper 来协调集群任务,并且可以维护与 Apache Kafka 集群交互的资源的状态。

问:何时应使用 Apache Kafka?

Apache Kafka 用于支持转换、传输和响应流数据的实时应用程序,还用于构建可在多个系统或应用程序之间可靠地获取数据的实时流数据管道。

问:Amazon MSK 有什么用?

Amazon MSK 让您可以轻松启动并在亚马逊云科技运行 Apache Kafka 的开源版本,具有高可用性和安全性,同时提供与亚马逊云科技服务的集成,而不会产生运行 Apache Kafka 集群的运营开销。通过 Amazon MSK,您可以使用和配置 Apache Kafka 的开源版本,同时该服务可管理 Apache Kafka 集群的设置、预置、亚马逊云科技集成和持续维护。

只需在控制台中单击几下,您就可以预置 Amazon MSK 集群。预置完成后,Amazon MSK 将取代运行状况不佳的代理,自动复制数据以获得高可用性,管理 Apache ZooKeeper 节点,根据需要自动部署硬件补丁,管理与亚马逊云科技服务的集成,通过控制台显示重要指标,并且支持 Apache Kafka 版本升级,因此您可以利用对 Apache Kafka 的开源版本所做的改进。

问:Amazon MSK 支持哪些 Apache Kafka 版本?

有关受支持的 Kafka 版本,请参阅 Amazon MSK 文档

问:Apache Kafka API 是否与 Amazon MSK 兼容?

是的,Amazon MSK 原生支持所有数据层面和管理 API。

问:Amazon MSK 是否支持 Apache Kafka AdminClient?

可以。
 
问:Amazon MSK 是否支持架构注册?
 
支持,Apache Kafka 客户端可以使用 Amazon Glue Schema Registry,这是 Amazon Glue 的一项无服务器功能,无需额外付费。请访问 Schema Registry 用户文档以开始使用并了解更多信息。
 
问:如何开始使用 M7g 集群?
 
Amazon MSK 现在支持基于 Graviton 3 的 M7g 实例,从“large”到“16xlarge”大小不等,用于运行所有 Kafka 工作负载。Graviton 实例具有与 MSK 相同的可用性和耐久性优势,与相应的 M5 实例相比,成本最多可降低 24%。与 MSK 的 M5 实例相比,Graviton 实例提供的每个实例的吞吐量最多高出 29%,这样客户就能够使用更少的代理或更小的实例运行 MSK 集群。

数据生产和使用

问:是否可以使用 Apache Kafka API 在 Apache Kafka 中存取数据?

可以,Amazon MSK 支持原生 Apache Kafka 生产者和使用者 API。当客户开始使用 Amazon MSK 中的集群时,您的应用程序代码无需更改。


问:是否可以将 Apache Kafka Connect、Apache Kafka Streams 或 Apache Kafka 的任何其他生态系统组件与 Amazon MSK 一起使用?

是的,您可以使用任何利用 Apache Kafka 生产者和使用者 API 以及 Apache Kafka Admin Client 的组件。用于将 .jar 文件上传到 Apache Kafka 集群的工具目前与 Amazon MSK 不兼容,包括 Confluent Control Center、Confluent Auto Data Balancer 和 Uber uReplicator。

迁移到 Amazon MSK

问:是否可以将现有 Apache Kafka 集群内的数据迁移到 Amazon MSK?
 
是的,您可以使用第三方工具或开源 Apache Kafka 随附的开源工具(如 MirrorMaker)将集群中的数据复制到 Amazon MSK 集群。

版本升级

问:是否支持 Apache Kafka 版本升级?
 
是的,Amazon MSK 支持完全托管的就地 Apache Kafka 版本升级。如需了解关于升级 Apache Kafka 版本和高可用性最佳实践的更多信息,请参阅 版本升级文档

集群

问:如何创建第一个 Amazon MSK 集群?

只需在 亚马逊云科技管理控制台中单击几下或使用 亚马逊云科技开发工具包,即可创建第一个集群。首先,在 Amazon MSK 控制台中选择要在其中创建 Amazon MSK 集群的 亚马逊云科技区域。选择集群的名称、要与集群一起运行的 VPC、集群的数据复制策略和每个可用区的子网。接下来,选择每个可用区的代理实例类型和代理数量,然后单击“创建”。
 
问:集群中有哪些资源?

每个集群都包含代理实例、预置存储和 Apache ZooKeeper 节点。
 
问:我可以在 Amazon MSK 集群中预置哪些类型的代理实例?

您可以选择 EC2 T3.small 或 EC2 M5 实例系列中的实例。有关完整的实例列表,请参阅 定价页面

问:Amazon MSK 是否提供预留实例定价?

否,目前不提供。
 
问:我是否需要预置代理引导卷和为其付费?

否,您预置的每个代理都包含由 Amazon MSK 服务管理的引导卷存储。
 
问:当我创建 Apache Kafka 集群时,底层资源(例如 Amazon EC2 实例)是否显示在我的 EC2 控制台中?

弹性网络接口 (ENI) 等一些资源将显示在您的 Amazon EC2 账户中。其他 Amazon MSK 资源不会显示在您的 EC2 账户中,因为这些资源由 Amazon MSK 服务管理。
 
问:我需要在 Amazon MSK 集群中预置哪些资源?

您需要在您创建的每个集群中预置代理实例和代理存储。您无需预置 Apache ZooKeeper 节点,因为这些资源免费包含在您创建的每个集群中。
 
问:什么是集群的默认代理配置?

除非另有说明,否则 Amazon MSK 使用 Apache Kafka 开源版本指定的相同默认配置。要查看默认设置,请访问 此处

问:我是否可以预置代理,使它们的数量在可用区之间不平衡(例如,us-east-1a 中 3 个、us-east-1b 中 2 个、us-east-1c 中 1 个)?

否,Amazon MSK 实施这项最佳实践:在集群内,使代理数量在可用区之间保持平衡。
 
问:如何在 Amazon MSK 中进行数据复制?

Amazon MSK 使用 Apache Kafka 的领导者/追随者复制机制在代理之间复制数据。Amazon MSK 可以轻松部署具有多可用区复制的集群,并可让您选择按主题使用自定义复制策略。默认情况下,对于每个复制选项,系统将使用指定的复制策略部署和隔离领导者及追随者代理。例如,如果您选择 3 个可用区代理复制策略,而且每个可用区集群有 1 个代理,则 Amazon MSK 将创建一个包含三个代理的集群(一个区域中的三个可用区各有 1 个代理),而且默认情况下(除非您选择覆盖主题复制因子)主题复制因子也将为 3。

问:我是否可以更改默认代理配置或将集群配置上传到 Amazon MSK?

可以,Amazon MSK 允许您创建自定义配置并将其应用于新集群和现有集群。有关自定义配置的更多信息,请参阅 配置文档

主题

问:如何创建主题?
 
创建 Apache Kafka 集群后,您可以使用 Apache Kafka API 创建主题。所有主题和分区级操作及配置都使用 Apache Kafka API 执行。以下命令是使用 Apache Kafka API 创建主题的示例:
 
bin/kafka-topics.sh --create —bootstrap-server ConnectionString:9092 --replication-factor 3 --partitions 1 --topic TopicName  

联网

问:Amazon MSK 是否在 Amazon VPC 中运行?
 
是,Amazon MSK 始终在 Amazon MSK 服务管理的 Amazon VPC 中运行。Amazon MSK 资源将可用于您在设置集群时选择的您自己的 Amazon VPC、子网和安全组。VPC 中的 IP 地址会通过弹性网络接口 (ENI) 挂载到 Amazon MSK 资源,并且所有网络流量均被限制在 亚马逊云科技网络内,无法通过 Internet 访问。
 
问:我的客户端与 Amazon MSK 集群之间的连接是否始终是私有的?
 
是,从 Amazon MSK 集群生产和使用数据的唯一方式是通过 VPC 中的客户端与 Amazon MSK 集群之间的私有连接。Amazon MSK 不支持公共终端节点。

问:如何使 Amazon MSK 集群中的代理可供 VPC 中的客户端访问?
 
集群中的代理将通过出现在您账户中的弹性网络接口 (ENI) 供 VPC 中的客户端访问。 ENI 上的安全组将决定在代理上允许的入口流量和出口流量的来源和类型。

问:如何允许在不同 亚马逊云科技账户中运行的客户端访问我的集群?
 
您可以使用 VPC 对等连接允许在不同 亚马逊云科技账户中运行的客户端访问您的集群。

连接到 VPC

问:如何通过互联网连接到 Amazon MSK 集群?

最简单的方法是通过互联网向运行 Apache Kafka 2.6.0 或更高版本的 MSK 集群的代理开启公共连接。出于安全原因,您不能在创建 MSK 集群时开启公共访问权限。但是,您可以更新现有集群,使其可公开访问。您还可以创建一个新集群,然后对其进行更新,使其可公开访问。要了解有关开启公共访问的更多信息,请参阅公共访问文档。 

问:如何从亚马逊云科技中国网络内部、我的 Amazon MSK 集群所在的 Amazon VPC 外部连接到我的 Amazon MSK 集群?

为运行 Apache Kafka 版本 2.7.1 或更高版本的 MSK 集群开启多 VPC 私有连接后,您即可从任何非您的 MSK 集群所在的任何 VPC 或亚马逊云科技账户连接到您的 MSK 集群。只有在创建集群后才能为任何受支持的身份验证方案(IAM 身份验证、SASL SCRAM 和 mTLS 身份验证)启用私有连接。Amazon MSK 使用 Amazon PrivateLink 技术来启用私有连接,您应该将您的客户端配置为使用 Amazon PrivateLink 端点连接到集群。要了解有关设置私有连接的更多信息,请参阅从亚马逊云科技内访问文档。

加密

问:是否可以加密 Amazon MSK 集群中的数据?

可以,Amazon MSK 使用 Amazon EBS 服务器端加密和 Amazon KMS 密钥来加密存储卷。
 
问:在 Amazon MSK 集群中的代理之间传输的数据是否会加密?

会。对于代理间的通信,新集群默认通过 TLS 启用传输中加密。创建集群时,您可以选择不使用传输中加密。
 
问:在 Apache Kafka 客户端与 Amazon MSK 服务之间传输的数据是否会加密?

会。默认情况下,仅对于从 CLI 或 亚马逊云科技控制台创建的集群,传输中加密才会设置为 TLS。要让客户端与使用 TLS 加密的集群进行通信,需要进行其他配置。您可以通过选择 TLS/纯文本或纯文本设置来更改默认加密设置。阅读更多: MSK 加密
 
问:在 Amazon MSK 集群中,在代理与 Apache ZooKeeper 节点之间传输的数据是否会加密?

不会,与 Apache Kafka 捆绑在一起的 Apache Zookeeper 默认版本不支持加密。然而,需要注意的是,Apache Zookeeper 与 Apache Kafka 代理之间的通信仅限于代理、主题和分区状态信息。

访问管理

问:如何控制集群身份验证和 Apache Kafka API 授权?

Amazon MSK 提供了三种用于控制身份验证 (AuthN) 和授权 (AuthZ) 的选项。1) AuthN/Z 的 IAM 访问控制(推荐),2) AuthN 的 TLS 证书身份验证 (CA) 和 AuthZ 的访问控制列表,3) AuthN 的 SASL/SCRAM 和 AuthZ 的访问控制列表。Amazon MSK 建议使用 IAM 访问控制。这是使用起来最容易使用的方式,因为它默认启用最低权限访问,因此是最安全的选项。

问:在 Amazon MSK 中如何进行授权?

如果您使用 IAM 访问控制,则 Amazon MSK 将使用您编写的策略及其自己的授权方来授权操作。如果您使用 TLS 证书身份验证或 SASL/SCRAM,则 Apache Kafka 将使用访问控制列表 (ACL) 进行授权。要启用 ACL,您必须使用 TLS 证书或 SASL/SCRAM 启用客户端身份验证。

问:如何同时对客户端进行身份验证和授权?

如果您使用 IAM 访问控制,则 Amazon MSK 将对您进行身份验证和授权,而无需进行任何额外设置。如果您使用 TLS 身份验证,则可以使用客户端 TLS 证书的 Dname 作为 ACL 的主体来授权客户端请求。如果您使用 SASL/SCRAM,则可以使用用户名作为 ACL 的主体来授权客户端请求。

问:如何控制服务 API 操作?

您可以使用 Amazon IAM 控制服务 API 操作。

问:我可以为现有集群启用 IAM 访问控制吗?

不能,但是即将推出允许您更新身份验证设置的功能。

问:我可以在 Amazon MSK 之外使用 IAM 访问控制吗?

不能,IAM 访问控制仅适用于 Amazon MSK 集群。

问:能否更新集群上的身份验证设置?

您可以通过控制台或者 update-security API 为启用启用或禁用身份验证模式。使用 API 时,显式声明的身份验证模式将会相应地更改,而省略的身份验证模式则会保持原样。例如,如果您的集群使用 mTLS 进行身份验证并且您通过调用 update-security API 启用 IAM 访问控制,则您的集群上的 mTLS 和 IAM 访问控制均会启用。

问:能否在我的集群上启用多种身份验证模式?

可以,您可以在创建和更新过程中为集群添加多钟身份验证模式。对于集群内的代理,每种身份验证模式均有专用端口,并且通过这些端口连接到 Kafka 的客户端必须启用相应的身份验证模式。

问:能否在集群上禁用身份验证模式?

可以,您可以禁用身份验证模式。为了确保您的客户端不会中断与代理的连接,在所有客户端更新为使用其他可用身份验证模式之前,请勿禁用任何现有身份验证模式。

问:能否使用集群上的身份验证模式跟踪客户端?

可以,您可以使用发布到 Amazon CloudWatch 指标的 ClientConnectionCount 指标按身份验证模式跟踪当前连接的数量。

问:如何向非 Amazon MSK 所在的亚马逊云科技账户中的 Kafka 客户端提供跨账户存取,以私密连接到我的 Amazon MSK 集群?

您可以向您的 Amazon MSK 集群附加一个集群策略,来提供跨账户 Kafka 客户端权限,以便设置与 Amazon MSK 集群的私有连接。使用 IAM 客户端身份验证时,您还可以使用集群策略为连接的客户端精细定义 Kafka 数据面板权限。要了解有关集群策略的更多信息,请参阅集群策略文档。 

 

监控、指标、日志记录、标记

问:如何监控集群或主题的性能?

您可以使用 Amazon MSK 控制台、Amazon CloudWatch 控制台来监控集群性能,也可以使用开源监控解决方案 Open Monitoring with Prometheus 访问 JMX 和主机指标。

问:不同 CloudWatch 监控级别的费用各是多少?

使用 Amazon CloudWatch 监控集群时的费用取决于您的 Apache Kafka 集群的监控级别和大小。Amazon CloudWatch 按照每月每个指标收费,并提供免费套餐;有关更多信息,请参阅 Amazon CloudWatch 定价。有关各个监控级别公开的指标数量的详细信息,请参阅 Amazon MSK 监控文档

问:哪些监控工具与 Open Monitoring with Prometheus 兼容?

设计为可以读取 Prometheus 导出程序的数据的工具均兼容 Open Monitoring,例如:Datadog、Lenses、New Relic、Sumologic 或 Prometheus 服务器。有关 Open Monitoring 的详细信息,请参阅 Amazon MSK Open Monitoring 文档

问:如何监控客户端的运行状况和性能?

您可以使用您当前使用的 Apache Kafka 版本支持的任何客户端监控工具。

问:我可以标记 Amazon MSK 资源吗?

可以,您可以通过 Amazon CLI 或控制台标记 Amazon MSK 集群。

问:如何监控使用器滞后?
主题级别的使用器滞后指标可作为 Amazon MSK 为所有集群发布到 Amazon CloudWatch 的默认指标集的一部分。无需进行其他设置即可获取这些指标。要获得分区级别的指标(分区维度),您可以在集群上启用增强型监控 (PER_PARTITION_PER_TOPIC)。此外,您也可以在集群上启用开放监控,并使用 Prometheus 服务器,以从集群中的代理获取分区级别的指标。和其他 Kafka 指标一样,使用器滞后指标可在端口 11001 获得。

问:将使用器滞后指标发布到 Amazon CloudWatch 需要多少费用?
主题级别的指标包含在默认的 Amazon MSK 指标集中,这些指标是免费的。分区的级别指标按 Amazon CloudWatch 定价收费。

Apache ZooKeeper

问:什么是 Apache ZooKeeper?

来自 https://zookeeper.apache.org/:“Apache ZooKeeper 是一种集中式服务,用于维护配置信息、执行命名,并提供分布式同步和群组服务。所有这些类型的服务都以某种形式供分布式应用程序使用,”包括 Apache Kafka 在内。

问:Amazon MSK 是否使用 Apache ZooKeeper?

是的,Amazon MSK 使用 Apache ZooKeeper,并将每个集群中的 Apache ZooKeeper 作为 Amazon MSK 服务的一部分进行管理。每个集群均免费包含 Apache ZooKeeper 节点。

问:我的客户端如何与 Apache ZooKeeper 交互?

您的客户端可以通过该服务提供的 Apache ZooKeeper 终端节点与 Apache ZooKeeper 进行交互。此终端节点在 亚马逊云科技管理控制台中提供,或使用 DescribeCluster API 提供。

集成

问:Amazon MSK 与哪些亚马逊云科技集成?

Amazon MSK 可与以下服务集成:

缩放

问:如何扩大集群中的存储?

您可以使用 亚马逊云科技管理控制台或 Amazon CLI 扩展集群中的存储。

问:我是否可以扩展现有集群中的代理数量?

是。您可以扩展或增加现有 Amazon MSK 集群中的代理数量。

问:我是否可以扩展现有集群中代理实例的大小?

否。Amazon MSK 目前不支持扩展现有集群中代理实例的大小,但是我们已经有此计划。

定价和可用性

问:Amazon MSK 如何定价?

定价基于 Apache Kafka 代理小时数和预置存储小时数。亚马逊云科技数据传输费率适用于传入传出 Amazon MSK 的数据。有关更多信息,请访问我们的定价页面

问:我是否需要为数据复制所产生的数据传输付费?

不需要,服务已经涵盖所有集群内数据传输,无需额外付费。

问:数据传输如何定价?

您需要为传入和传出 Amazon MSK 集群的数据量支付标准的 亚马逊云科技数据传输费用。您不需要为一个区域中集群内的数据传输付费,包括代理间数据传输以及代理与 Apache ZooKeeper 节点之间的数据传输。

服务等级协议

问:Amazon MSK SLA 提供了哪些保障?

我们的 Amazon MSK SLA 保证 Amazon MSK 的月度正常运行时间百分比至少达到 99.9%。

问:怎样确定我是否有资格获得 SLA 服务抵扣?

如果在任何月度账单周期内,Amazon MSK 上的多可用区部署在任何每月计费周期中的月度正常运行时间百分比低于 99.9%,那么根据 Amazon MSK SLA,您符合 Amazon MSK 的 SLA 抵扣资格。
 
有关 SLA 的所有条款和条件的完整详情,请参阅 亚马逊云科技服务级别协议页面。

开始使用 Amazon MSK

计算成本
计算成本

访问 Amazon MSK 定价页面

Read the documentation
查看入门指南

请参阅本分步指南,了解如何在 Amazon MSK 上设置 Apache Kafka 集群。

运行您的 Apache Kafka 集群
运行您的 Apache Kafka 集群

开始在 Amazon MSK 上运行您的 Apache Kafka 集群。登录 Amazon MSK 控制台

开始使用亚马逊云科技免费构建

开始使用亚马逊云科技免费构建

关闭
热线

热线

1010 0766
由光环新网运营的
北京区域
1010 0966
由西云数据运营的
宁夏区域