一般性问题
问:什么是 Amazon MQ?
Amazon MQ 是一种适用于 Apache ActiveMQ 和 RabbitMQ 的托管消息代理服务,让您能够轻松地在云中设置和操作消息代理。您可以直接访问 ActiveMQ 控制台、RabbitMQ 控制台,以及用于消息传递的行业标准 API 和协议,包括 JMS、NMS、AMQP 0.9.1、AMQP 1.0、STOMP、MQTTv3 和 WebSocket。您可以使用这些标准通过几个步骤创建新的 Amazon MQ 代理,或者将现有消息代理迁移到 Amazon MQ,而无需重写消息传递代码。
问:哪些人应该使用 Amazon MQ?
Amazon MQ 适合计划采用行业标准消息传递 API 和协议来解耦和扩展其在云上的应用程序,而无需承担管理消息代理本身的操作负担的企业 IT 专业人员、开发人员和架构师。
问:Amazon MQ 可以为我处理哪些工作?
Amazon MQ 管理设置消息代理以及配置基础设施和开源代理引擎软件的过程。代理启动并运行后,Amazon 就会持续为您处理软件升级、安全更新、故障检测和恢复工作。
只需几个步骤即可创建 Amazon MQ 多可用区部署代理。 Amazon MQ 自动管理部署中的节点、复制数据以实现高可用性、定期部署补丁、管理与 AWS 服务的集成、使重要指标可见并支持代理引擎版本升级,以便您可以利用开源版本的最新改进。
问:应该在什么时候使用 Amazon MQ,在什么时候在 Amazon EC2 上管理 ActiveMQ 或 RabbitMQ?
有了 Amazon MQ,您不必为代理预置、安全修补、设置、配置、代理版本升级或恢复等管理任务而担心。如果您想要摆脱操作开销和相关成本,您可以考虑使用 Amazon MQ。如果您想要更高的控制以便自定义各种功能和配置,或者想要使用自定义插件,您可以考虑直接在 Amazon EC2 上安装并运行消息代理。
在某些使用案例中,RabbitMQ 的节点间数据传输可能会导致自我管理的集群产生高昂的成本。Amazon MQ 不对 RabbitMQ 代理的节点间数据传输收取费用。
问:如何开始使用 Amazon MQ?
Amazon MQ 让您能够在云中轻松设置和操作消息代理。借助 Amazon MQ,您可以通过 AWS 管理控制台、CLI 或 API 调用在几分钟内启动一个生产就绪型消息代理。大多数情况下,您只需更新 Amazon MQ 代理的各个端点,即可连接到现有的应用程序并开始发送消息。
查看简短教程创建连接消息代理,立即开始使用。
问:哪些 AWS 区域提供 Amazon MQ?
Amazon MQ 区域可用性记录在此处。
迁移到 Amazon MQ
问:如果我使用的是其他消息代理而不是 ActiveMQ 或 RabbitMQ,应该如何迁移?
Amazon MQ 能够与最常见的消息收发 API [例如 Java Message Service(JMS)和 .NET Message Service(NMS)]和协议(包括 AMQP、STOMP、MQTT 和 WebSocket)兼容。这样,您可以从任何基于标准的消息代理轻松切换到 Amazon MQ,无需重新编写应用程序中的消息收发代码。大多数情况下,您只需更新 Amazon MQ 代理的各个端点,即可连接到现有的应用程序并开始发送消息。
Apache ActiveMQ
问:什么是 Apache ActiveMQ?
Apache ActiveMQ 是一个开源、多协议、基于 Java 的消息代理。
问:Amazon MQ 支持哪些版本的 ActiveMQ?
Amazon MQ 默认支持 ActiveMQ Classic 版本 5.18。客户可以选择较旧的版本,例如 ActiveMQ 5.17,但 Amazon MQ 不推荐使用它们。
问:Amazon MQ 将如何支持 ActiveMQ 的新版本?
Amazon MQ 将不断增加对新 ActiveMQ 版本的支持。支持的新版本数量将根据开源维护者发布的频率和内容而有所不同。
问:如何为我的代理指定支持的 ActiveMQ 版本?
通过 AWS 管理控制台或 CreateBroker API 创建新代理时,您可以指定 ActiveMQ 版本(例如 ActiveMQ 5.17.6)。默认情况下,Amazon MQ 将在 AWS 管理控制台上提供可用的最新版本。
问:如何将我的代理升级到最新支持的 ActiveMQ 版本?
您可以随时手动将代理升级到下一个受支持的主要版本、次要版本或补丁版本。当您打开自动次要版本升级时,Amazon MQ 会在下一个维护时段将您的代理升级到最新支持的补丁版本。当前次要版本终止支持时,Amazon MQ 会将所有代理升级到下一个支持的次要版本。
问:Amazon MQ 上的 ActiveMQ 版本终止支持时,会发生什么?
Amazon MQ 支持 ActiveMQ 版本,直至 ActiveMQ 版本支持日历中指示的支持结束日期。在版本停止支持之前,Amazon MQ 将至少提前 90 天发出通知。当前次要版本终止支持时,Amazon MQ 会将所有代理升级到下一个支持的版本。
问:为什么我无法在特定版本上创建 ActiveMQ 代理?
在某些情况下,Amazon MQ 可能会在无事先通知的情况下终止对特定版本的支持,例如当某个版本不符合我们的高质量、性能或安全标准时。万一发生这种情况,Amazon MQ 将阻止使用这些版本创建新代理,并且会将现有代理升级到符合我们标准的下一个受支持版本。所需时间会因不同的情况而异,具体取决于要解决的问题。
问:Amazon MQ for ActiveMQ 提供什么类型的存储?
Amazon MQ for ActiveMQ 支持两种代理存储类型 – 使用 Amazon Elastic File System(Amazon EFS)的持久性优化存储和使用 Amazon Elastic Block Store(EBS)的吞吐量优化型存储。要在多个可用区间利用高持久性和复制功能,请使用 Amazon EFS 支持的持久性优化代理。要利用大容量应用程序的高吞吐量,请使用 EBS 支持的吞吐量优化代理。
问:Amazon MQ 代理网络是什么?
Amazon MQ for ActiveMQ 使用 Apache ActiveMQ 中的“代理网络”功能。代理网络由网格中的多个互连代理组成。网络中的代理会共享有关每个代理托管的客户端及目标的信息。代理使用这些信息通过网络路由消息。借助 Amazon MQ,网络中的代理可以使主动-备用代理(网络中的每个主动代理都有使用共享存储的备用节点,备用节点会在主动节点出故障时接管其工作),也可以是单实例代理(如果节点出故障,在重新启动前将一直不可用)。网络中的每个代理都维护自己独特的消息存储,该消息存储使用持久性优化的存储,在活动/备用代理的区域内的多个可用区(AZ)之间进行复制。网络中的节点会互相转发消息,因此消息在任何给定时间会由单个代理存储。如果需要高可用性,且在代理出故障时需要快速重新连接,或者需要横向扩展,应使用代理网络。
RabbitMQ
问:什么是 RabbitMQ?
RabbitMQ 是一个开源的多协议消息代理,支持各种消息收发使用案例。
问:Amazon MQ 支持哪些版本的 RabbitMQ?
Amazon MQ 默认支持 RabbitMQ 版本 3.13。客户可以选择较旧的版本,例如 RabbitMQ 3.8、3.9、3.10、3.11 或 3.12,但 Amazon MQ 不推荐使用它们。
问:Amazon MQ 将如何支持 RabbitMQ 的新版本?
Amazon MQ 将不断增加对新 RabbitMQ 版本的支持。支持的新版本数量将根据开源维护者发布的频率和内容而有所不同。
问:如何为我的代理指定支持的 RabbitMQ 版本?
通过 AWS 管理控制台或 CreateBroker API 创建新代理时,您可以指定 RabbitMQ 版本(例如 RabbitMQ 3.13)。默认情况下,Amazon MQ 将在 AWS 管理控制台上提供可用的最新版本。
问:如何将我的代理升级到最新支持的 RabbitMQ 版本?
您可以随时手动将代理升级到下一个受支持的主要版本或次要版本。当您打开自动次要版本升级时,Amazon MQ 会在下一个维护时段将您的代理升级到最新支持的补丁版本。当前次要版本终止支持时,Amazon MQ 会将所有代理升级到下一个支持的次要版本。从 RabbitMQ 版本 3.13 开始,Amazon MQ 将为您管理补丁版本并确保所有代理都采用次要版本的最新补丁版本。
问:Amazon MQ 上的 RabbitMQ 版本终止支持时,会发生什么?
Amazon MQ 支持 RabbitMQ 版本,直至 RabbitMQ 版本支持日历中指示的支持结束日期。在版本停止支持之前,Amazon MQ 将至少提前 90 天发出通知。支持到期后,Amazon MQ 会将该版本上的所有代理升级到下一个支持的版本。目前支持的所有 RabbitMQ 版本都相互后向兼容。
问:为什么我无法在特定版本上创建 RabbitMQ 代理?
在某些情况下,Amazon MQ 可能会在不事先通知的情况下终止对特定版本的支持,例如当某个版本出现影响代理性能、可靠性或安全性的问题时。万一发生这种情况,Amazon MQ 将阻止在受影响的版本创建新代理,并且会将现有代理升级到下一个受支持版本。所需时间会因不同的情况而异,具体取决于要解决的问题。
问:Amazon MQ 上的 RabbitMQ 可使用哪些插件?
Amazon MQ for RabbitMQ 包含在所有代理上的管理、shovel、联合和一致的散列交换插件。
集成
问:Amazon MQ 如何与其他 AWS 服务配合使用?
在 AWS 计算服务上运行的任何应用程序(例如 Amazon EC2、Amazon ECS 或 AWS Lambda)都能使用 Amazon MQ。此外,Amazon MQ 还与以下 AWS 产品集成:
- Amazon CloudWatch — 监控指标并生成警报
- Amazon CloudWatch Logs — 将日志从 Amazon MQ 代理发布到 Amazon CloudWatch Logs
- AWS CloudTrail — 记录、持续监控并保留 Amazon MQ API 调用
- AWS CloudFormation — 自动执行消息代理的创建、更新和删除流程
- AWS EventBridge Pipes — 使用 Amazon MQ 消息代理作为来源
- AWS Lambda — 使用 Amazon MQ 消息代理作为来源
- AWS Identity and Access Management(IAM) — 进行服务 API 的身份验证和授权
- AWS Key Management Service(KMS) — 创建和控制用于加密数据的密钥
可用性
问:如何确保 Amazon MQ 的高可用性?
只需在 AWS 管理控制台中单击几下或使用 AWS 开发工具包,即可创建多可用区代理。首先,在 Amazon MQ 控制台中选择要在其中创建 Amazon MQ 集群的 AWS 区域和代理引擎类型。您可以选择 RabbitMQ 的三节点集群部署、Active-Standby 部署或 ActiveMQ 代理的网状网络。
问:当我创建 Amazon MQ 集群时,基础资源(如 Amazon EC2 实例)是否会显示在我的 EC2 控制台中?
不会,EC2 实例在您的 EC2 账户中不可见,因为它们由 Amazon MQ 服务管理。一些网络资源[弹性网络接口(ENI)、VPC 端点]在您的 Amazon EC2 账户中可见,以便您连接到代理。
问:我需要在 Amazon MQ 集群中预置哪些资源?
您需要为您创建的每个代理预置代理实例和代理存储。您可以选择现有的 VPC、子网、安全组或客户管理密钥,而不是 Amazon MQ 服务提供的密钥。
配置
问:我能否更改默认代理配置或将新配置上传到 Amazon MQ?
能,Amazon MQ 允许您创建自定义配置并将其应用于新集群和现有集群。有关自定义配置的更多信息,请参阅配置文档。
加密
问:如何使用我自己的自定义密钥加密 Amazon MQ 中的数据?
Amazon MQ 支持 AWS Key Management Service(AWS KMS),可用于为您在 Amazon MQ 中数据的静态加密创建和管理密钥。现在,在创建代理时,您可以从以下三个选项中选择用于加密数据的 KMS 密钥:Amazon MQ 服务账户中的 KMS 密钥、Amazon MQ 创建和管理的账户中的 KMS 密钥,或您创建和管理的账户中的 KMS 密钥。除了静态加密之外,还可以使用 TLS/SSL 安全地传输在 Amazon MQ 和客户端应用程序之间传输的所有数据。
监控
问:如何监控我的 Amazon MQ 代理?
Amazon MQ 和 Amazon CloudWatch 集成在一起,因此您可以查看和分析代理实例以及队列的指标。您可以从 Amazon MQ 控制台、CloudWatch 控制台、命令行或通过 API 以编程方式查看和分析指标。系统每分钟自动收集指标并将其推送到 CloudWatch。
定价
问:Amazon MQ 如何收费?
使用 Amazon MQ,您只需按实际用量付费。您按代理实例使用量、存储使用量付费,并支付标准数据传输费用。Amazon MQ 提供一年免费套餐,入门非常简单。请参阅 Amazon MQ 定价了解详细信息。
问:我需要为 Amazon MQ for RabbitMQ 节点间数据传输付费吗?
不需要,所有节点间数据传输都包含在该服务中,无需额外付费。
问:Amazon MQ 是否提供预留实例定价?
不,Amazon MQ 不提供预留实例定价。
问:是否需要预置代理启动卷和为其支付费用?
不需要,您预置的每个代理都包括由 Amazon MQ 服务托管的启动卷存储。
合规性
问:Amazon MQ 符合哪些合规性计划?
Amazon MQ 符合以下计划:
- 符合 HIPAA 要求
- 符合 PCI DSS 要求
- 符合 SOC 1、2、3 要求
- 获得 ISO 9001、27001、27017 和 27018 认证
有关 AWS 服务和合规性计划的完整列表,请参考 AWS 按合规性计划提供的范围内服务。
服务水平协议
问:Amazon MQ SLA 提供什么保证?
Amazon MQ SLA 保证 Amazon MQ 的月度正常运行时间百分比至少达到 99.9%。
问:怎样确定我是否有资格获得 SLA 服务抵扣?
如果 Amazon MQ 上的多可用区域代理在任何每月计费周期中的月度正常运行时间低于 99.9%,则您符合 Amazon MQ 的 SLA 抵扣资格。
如需 SLA 的条款与条件的详细信息,以及如何提交索赔的详细信息,请参阅Amazon MQ SLA 详细信息页面。