+ All Categories
Home > Documents > Amazon MQ - Migration Guide · 2020. 11. 17. · Amazon MQ Migration Guide About this guide Amazon...

Amazon MQ - Migration Guide · 2020. 11. 17. · Amazon MQ Migration Guide About this guide Amazon...

Date post: 17-Feb-2021
Category:
Upload: others
View: 5 times
Download: 0 times
Share this document with a friend
44
Amazon MQ Amazon MQ for ActiveMQ Migration Guide
Transcript
  • Amazon MQAmazon MQ for ActiveMQ Migration Guide

  • Amazon MQ Amazon MQ for ActiveMQ Migration Guide

    Amazon MQ: Amazon MQ for ActiveMQ Migration GuideCopyright © Amazon Web Services, Inc. and/or its affiliates. All rights reserved.

    Amazon's trademarks and trade dress may not be used in connection with any product or service that is notAmazon's, in any manner that is likely to cause confusion among customers, or in any manner that disparages ordiscredits Amazon. All other trademarks not owned by Amazon are the property of their respective owners, who mayor may not be affiliated with, connected to, or sponsored by Amazon.

  • Amazon MQ Amazon MQ for ActiveMQ Migration Guide

    Table of ContentsAbout this guide .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1Getting started .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

    Prerequisites ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2Key concepts .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

    Messaging protocols ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2Message persistence .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3Network options .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3Availability options .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3Messaging patterns .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3Performance and scalability ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4Latency .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5Destination options .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5Security and authentication .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5Broker quotas .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6Configuration options .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6Cost estimation .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

    Migration approaches .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7Rehost ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7Replatform ..... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7Refactor (re-architect) ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7Phased migration .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

    Service interruption scenarios .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7Without service interruption .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8With service interruption .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

    IBM MQ queue manager .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12Terminologies .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12IBM MQ typical architecture .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

    Option one: IBM MQ high availability topology running on AWS ..... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16Option Two: IBM MQ HA/DR topology running on-premises .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

    Replicating IBM MQ with Amazon MQ ..... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17Steps to re-platform ..... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19Testing and validation .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

    TIBCO EMS server ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23Terminologies .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23TIBCO EMS typical architecture .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

    TIBCO EMS cross-regional architecture in AWS ..... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25TIBCO EMS high availability architecture .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

    Replicating TIBCO EMS with Amazon MQ ..... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27Steps to re-platform ..... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28Testing and validation .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

    Supported plugins .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31Logging and monitoring .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32Throughput benchmarks .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

    mq.m5.large . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33mq.m5.xlarge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34mq.m5.2xlarge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35mq.m5.4xlarge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

    Related resources .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39Release notes .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

    Document History .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40AWS glossary .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

    iii

  • Amazon MQ Amazon MQ for ActiveMQ Migration Guide

    About this guideAmazon MQ simplifies the migration of commercial brokers, such as IBM MQ and TIBCO EnterpriseManagement Service (EMS), to the cloud. Amazon MQ is compatible with popular APIs and protocols,such as Java Message Service (JMS), allowing you to migrate applications with minimal code changes.

    1

  • Amazon MQ Amazon MQ for ActiveMQ Migration GuidePrerequisites

    Getting started

    Topics

    • Prerequisites (p. 2)

    • Key concepts (p. 2)

    • Migration approaches (p. 7)

    • Service interruption scenarios (p. 7)

    PrerequisitesBefore you begin, we recommend reviewing Best Practices for Amazon MQ in the Amazon MQ DeveloperGuide and the Amazon MQ REST API Reference.

    For more information about migration best practices, see An E-Book of Cloud Best Practices for YourEnterprise on the AWS Cloud Enterprise Strategy Blog.

    Key conceptsTopics

    • Messaging protocols (p. 2)

    • Message persistence (p. 3)

    • Network options (p. 3)

    • Availability options (p. 3)

    • Messaging patterns (p. 3)

    • Performance and scalability (p. 4)

    • Latency (p. 5)

    • Destination options (p. 5)

    • Security and authentication (p. 5)

    • Broker quotas (p. 6)

    • Configuration options (p. 6)

    • Cost estimation (p. 6)

    Messaging protocolsYou can connect your broker to Amazon MQ without any code changes if you currently use one of thefollowing industry-standard protocols:

    • AMQP

    2

    https://docs.aws.amazon.com/amazon-mq/latest/developer-guide/amazon-mq-best-practiceshttps://docs.aws.amazon.com/amazon-mq/latest/api-reference/welcome.htmlhttps://aws.amazon.com/blogs/enterprise-strategy/an-e-book-of-cloud-best-practices-for-your-enterprise/https://aws.amazon.com/blogs/enterprise-strategy/an-e-book-of-cloud-best-practices-for-your-enterprise/http://activemq.apache.org/amqp.html

  • Amazon MQ Amazon MQ for ActiveMQ Migration GuideMessage persistence

    • MQTT

    • MQTT over WebSocket

    • OpenWire

    • STOMP

    • STOMP over WebSocket

    For more information about connecting to an Amazon MQ managed broker, see Working Examples ofUsing Java Message Service (JMS) with ActiveMQ in the Amazon MQ Developer Guide.

    Message persistenceTo replicate persistence mode or sync point control options with Amazon MQ, you can deploy your brokersas active/standby brokers. In the active/standby deployment, brokers use shared storage across multipleAvailability Zones, with an optional time to live (TTL).

    For more information about how Amazon MQ ensures message durability, see the section called“Availability options” (p. 3).

    Network optionsDepending on the interlopability of your applications and the type of access that they need, you canpermit public access, VPN access, or VPC access using Amazon Virtual Private Cloud (Amazon VPC).

    In a hybrid architecture where on-premises systems need access to resources in the cloud, we recommendsetting up your Amazon MQ managed brokers with public network access. You can also achieve a hybridsolution by using AWS VPN or AWS Direct Connect.

    TipIf your resources are primarily deployed within the AWS Cloud, we recommend configuring yourAmazon MQ brokers with Amazon VPC. For network access across multiple VPCs, you can useVPC peering.

    Availability optionsAmazon MQ supports durability-optimized brokers backed by Amazon Elastic File System (Amazon EFS).You can configure single-instance brokers (one broker in one Availability Zone) or active/standby brokers(two brokers in two different Availability Zones). In either configuration, Amazon MQ can automaticallyprovision infrastructure for high message durability by storing messages redundantly across multipleAvailability Zones.

    NoteIn the event of a broker or Availability Zone failure, active/standby brokers automatically failover to a standby instance in another Availability Zone.

    To achieve high availability and message durability, you can use a network of brokers. A network ofbrokers is a series of simultaneously active single-instance or active/standby brokers that allows you torapidly scale your throughput and connection count. You can configure a network of brokers in a varietyof topologies depending on your application's needs.

    Messaging patternsAmazon MQ offers the following topology options to support a variety of messaging patterns:

    3

    http://activemq.apache.org/mqtt.htmlhttp://activemq.apache.org/websockets.htmlhttp://activemq.apache.org/openwire.htmlhttp://activemq.apache.org/stomp.htmlhttps://docs.aws.amazon.com/amazon-mq/latest/developer-guide/amazon-mq-working-java-examplehttps://docs.aws.amazon.com/amazon-mq/latest/developer-guide/amazon-mq-working-java-examplehttps://docs.aws.amazon.com/amazon-mq/latest/developer-guide/active-standby-broker-deploymenthttps://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPNhttps://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpchttp://aws.amazon.com/vpn/http://aws.amazon.com/directconnect/https://docs.aws.amazon.com/vpc/latest/peering/what-is-vpc-peering.htmlhttp://aws.amazon.com/efs/https://docs.aws.amazon.com/amazon-mq/latest/developer-guide/single-broker-deploymenthttps://docs.aws.amazon.com/amazon-mq/latest/developer-guide/active-standby-broker-deploymenthttps://docs.aws.amazon.com/amazon-mq/latest/developer-guide/network-of-brokers.html

  • Amazon MQ Amazon MQ for ActiveMQ Migration GuidePerformance and scalability

    • Point-to-point

    • Request-response

    • Hub and spoke

    • Mesh

    • Enterprise service bus

    For more information about using Amazon MQ to set up the right broker topology for your cloudarchitecture, see Amazon MQ Broker Architecture in the Amazon MQ Developer Guide.

    ImportantRevising a broker configuration or an ActiveMQ user does not immediately apply those changes.For your changes to take effect, you must wait for the next maintenance window or reboot thebroker. For more information, see Amazon MQ Broker Configuration Lifecycle in the Amazon MQDeveloper Guide.

    Performance and scalabilityWith Amazon MQ you can scale your messaging middleware horizontally, vertically, or in a hybrid model.

    Horizontal scaling enables you to increase your throughput and connection count without interruptions,because your resources remain active and online. To scale horizontally, you can deploy a network ofbrokers in an active/standby configuration across multiple Availability Zones.

    To scale your resources vertically, you can increase the compute capacity of your broker instances frommq.t2.micro (1 vCPU and 1 GiB) up to mq.m5.4xlarge (16 vCPU and 64 GiB). For more informationabout Amazon MQ instance types, see Instance Types in the Amazon MQ Developer Guide.

    NoteChoosing larger broker instance types might not improve overall system throughput. Overalllatency is due to many factors, such as message size, the type of protocol, the number of activeproducers and consumers, consumption speed, and message persistence.

    Amazon MQ also supports creating throughput-optimized message brokers backed by Amazon ElasticBlock Store (Amazon EBS). These brokers are ideal for applications such as high-volume order processing,stock trading, and text processing.

    To instruct Amazon MQ to optimize for queues with slow consumers, set theconcurrentStorageAndDispatchQueues attribute to false.

    The following table shows the throughput of an mq.m5.2xlarge broker configured with these options:

    • Broker instance – mq.m5.2xlarge

    • Persistent – TRUE

    • Client – m5.xlarge

    • CSAD – TRUE

    • Protocol – OpenWire

    Producers/Consumers

    Message size Metrics 25 50 100 200

    1 KB TPS 2,250 4,300 8,467 16,334

    4

    https://docs.aws.amazon.com/amazon-mq/latest/developer-guide/amazon-mq-broker-architecturehttps://docs.aws.amazon.com/amazon-mq/latest/developer-guide/amazon-mq-broker-configuration-lifecyclehttps://docs.aws.amazon.com/amazon-mq/latest/developer-guide/network-of-brokers.htmlhttps://docs.aws.amazon.com/amazon-mq/latest/developer-guide/network-of-brokers.htmlhttps://docs.aws.amazon.com/amazon-mq/latest/developer-guide/broker#broker-instance-typeshttp://aws.amazon.com/ebs/http://aws.amazon.com/ebs/

  • Amazon MQ Amazon MQ for ActiveMQ Migration GuideLatency

    Producers/Consumers

    Message size Metrics 25 50 100 200

    CPU% 8% 15% 27% 58%

    TPS 2,067 3,834 7,150 14,5165 KB

    CPU% 10% 17% 30% 63%

    TPS 1,900 3,467 7,083 11,33410 KB

    CPU% 15% 24% 48% 80%

    TPS 1,592 2,917 4,500 4,91750 KB

    CPU% 30% 52% 83% 92%

    TPS 1,250 2,184 2,513 2,770100 KB

    CPU% 42% 72% 85% 92%

    NotePerformance numbers can vary depending on multiple configuration parameters. For moreinformation on Amazon MQ throughput measurements, see Throughput Benchmarks (p. 33).

    You can measure the throughput of your Amazon MQ brokers using JMS Benchmark.

    LatencyYou can set up your Amazon MQ brokers for low-latency messaging, with latency often as low as single-digit milliseconds. Use an always-on connection to help reduce the amount of time that it takes todeliver messages to a consumer.

    Using in-memory storage can further reduce overall latency across your messaging architecture. For moreinformation on how different storage types can affect latency, see Differences Between Storage Types inthe Amazon MQ Developer Guide.

    Destination optionsYou can set up Amazon MQ managed brokers as queues or topics. Amazon MQ queues are, by default,first in, first out (FIFO) queues, also known as ordered queues. You can scale FIFO queues using MessageGroups. You can configure your broker destinations with at-least-once delivery, at-most-once delivery, orexactly-once delivery options.

    Topics in Amazon MQ use the publisher/subscriber pattern and can be durable or non-durable. AmazonMQ topics also support Virtual Destinations, where publishers broadcast messages to a pool ofsubscribers through queues. We recommend using this method instead of durable topics.

    TipYou can optimize and fine-tune the performance of your topics. For more information, seePerformance Tuning on the Apache ActiveMQ website.

    Security and authenticationWith Amazon MQ you control who is allowed to create or modify brokers, and which applications areallowed to send and receive messages. For more information about authentication options, and how

    5

    http://aws.amazon.com/blogs/compute/measuring-the-throughput-for-amazon-mq-using-the-jms-benchmark/https://docs.aws.amazon.com/amazon-mq/latest/developer-guide/broker-storage#differences-between-storage-typeshttps://activemq.apache.org/message-groupshttps://activemq.apache.org/message-groupshttps://activemq.apache.org/virtual-destinations.htmlhttps://activemq.apache.org/performance-tuning.html

  • Amazon MQ Amazon MQ for ActiveMQ Migration GuideBroker quotas

    to integrate the Lightweight Directory Access Protocol (LDAP) with your Amazon MQ brokers, seeMessaging Authentication and Authorization for ActiveMQ in the Amazon MQ Developer Guide.

    Connections to Amazon MQ brokers use Transport Layer Security (TLS). To isolate your brokers in aprivate virtual network, you can restrict access to a private endpoint within a VPC. To control networkaccess to your brokers, you can configure security groups in the VPC. For more information, see SecurityBest Practices for Amazon MQ in the Amazon MQ Developer Guide.

    Amazon MQ encrypts messages at rest and in transit using encryption keys that it manages and storessecurely in AWS Key Management Service (AWS KMS). AWS KMS helps reduce the operational burdenand complexity involved in protecting sensitive data. With encryption at rest, you can build security-sensitive applications that meet encryption compliance and regulatory requirements.

    TipFor additional security, we highly recommend designing your application to use client-sideencryption.

    For more information about Amazon MQ security and how messaging data is encrypted, see DataProtection in Amazon MQ in the Amazon MQ Developer Guide.

    Broker quotasBy default, each Amazon MQ broker can support 1,000 connections (or 100 connections formq.t2.micro brokers). To allow multiple consumers to share connections to your Amazon MQ brokersand to improve overall performance, we recommend using pooled connections. For more information, seeAlways Use Connection Pooling in the Amazon MQ Developer Guide.

    You can request an increase for many broker usage quotas for your AWS account. For more information,see AWS service quotas in the AWS General Reference.

    Configuration optionsAmazon MQ supports standard JMS features including point-to-point (message queues), publish-subscribe (topics), request/reply, persistent and non-persistent modes, JMS transactions, and distributed(XA) transactions.

    Amazon MQ brokers can also support more complex messaging patterns such as composite destinations,which enable producers to send the same message to multiple destinations, and virtual destinations,which enable publishers to broadcast messages via a topic to a pool of receivers subscribing throughqueues.

    For more information, see Amazon MQ Broker Configuration Parameters in the Amazon MQ DeveloperGuide.

    Cost estimationWith Amazon MQ, you pay only for the provisioned capacity that you use. Factors such as broker instancetype, the amount of data stored on each broker instance, and the AWS Region in which you deploy yourbrokers can affect your total cost of ownership. To estimate your broker costs for Amazon MQ, you can usthe AWS Pricing Calculator.

    NoteFor data transferred in and out of Amazon MQ, you pay standard AWS data transfer charges.

    To get started, Amazon MQ offers a Free Tier, which includes up to 750 hours of a single-instancemq.t2.micro or mq.t3.micro broker per month, and up to 5 GB of durability-optimized storage permonth for one year. For more information on the Free Tier, pricing, and associated costs, see Amazon MQPricing.

    6

    https://ldap.com/https://docs.aws.amazon.com/amazon-mq/latest/developer-guide/security-authentication-authorizationhttps://docs.aws.amazon.com/amazon-mq/latest/developer-guide/using-amazon-mq-securelyhttps://docs.aws.amazon.com/amazon-mq/latest/developer-guide/using-amazon-mq-securelyhttp://aws.amazon.com/kms/https://docs.aws.amazon.com/encryption-sdk/latest/developer-guide/introductionhttps://docs.aws.amazon.com/encryption-sdk/latest/developer-guide/introductionhttps://docs.aws.amazon.com/amazon-mq/latest/developer-guide/data-protectionhttps://docs.aws.amazon.com/amazon-mq/latest/developer-guide/data-protectionhttps://docs.aws.amazon.com/amazon-mq/latest/developer-guide/connecting-to-amazon-mq.html#always-use-connection-poolinghttps://docs.aws.amazon.com/amazon-mq/latest/developer-guide/amazon-mq-limits.html#broker-limitshttps://docs.aws.amazon.com/general/latest/gr/aws_service_limits.htmlhttps://docs.aws.amazon.com/amazon-mq/latest/developer-guide/amazon-mq-broker-configuration-parametershttps://calculator.aws/#/http://aws.amazon.com/amazon-mq/pricing/http://aws.amazon.com/amazon-mq/pricing/

  • Amazon MQ Amazon MQ for ActiveMQ Migration GuideMigration approaches

    Migration approachesThe first step in migrating your commercial message broker to Amazon MQ is determining the rightmigration approach for your existing application architecture. The following are the most commonapproaches to migration:

    Topics• Rehost (p. 7)• Replatform (p. 7)• Refactor (re-architect) (p. 7)• Phased migration (p. 7)

    RehostThe rehost ("lift and shift") approach is ideal for moving on-premises workloads to the cloud when timeis critical and ambiguity is high. Rehosting is the process of moving your existing applications from oneinfrastructure to another. The most significant benefit of this approach is that it enables you to migratewithout changing large portions of application code. Fewer changes can also reduce the amount of re-training needed for engineers.

    ReplatformThe replatform strategy involves moving applications almost as-is, but replacing some components totake advantage of a cloud architecture. Here you might make a number of cloud-based optimizationsto achieve some tangible benefit, but you aren't changing the core architecture of your application. Youmay be looking only to reduce the amount of time that you spend managing your broker.

    Refactor (re-architect)Refactoring (also known as "re-architecting") maximizes the benefits of moving to the cloud. Refactoringrequires research, planning, experimentation, implementation, and deployment. These efforts generallyprovide the greatest rate of return in the form of reduced hardware and storage costs, less operationalmaintenance, and the most flexibility to meet future business needs. In many cases, it involves breakingup the application into independent services and transitioning to a microservices architecture.

    Phased migrationIf you are interested in a phased, incremental migration approach, we recommend using a JMS proxyimplementation such as Camel. For example, you can use the JMS Bridge Sample project, which allowsyou to bridge from your existing on-premises messaging broker to Amazon MQ.

    You can also use enterprise integration patternssample to learn how to use Apache Camel and AmazonMQ to implement common patterns for routing, message transformation, and integration with otherAWS services. In the sample, you will use Amazon EKS to scale Apache Camel. You can apply the sameapproach to migrate from IBM MQ or TIBCO EMS to Amazon MQ.

    Service interruption scenariosUse the following topics to learn more about potential service interruptions before migrating your on-premises message broker to Amazon MQ.

    Topics

    7

    https://camel.apache.org/https://github.com/aws-samples/amazon-mq-migration-from-ibm-mqhttps://aws.amazon.com/amazon-mq/https://github.com/aws-samples/amazon-mq-enterprise-integration-patterns/https://camel.apache.org/manual/latest/getting-started.html

  • Amazon MQ Amazon MQ for ActiveMQ Migration GuideWithout service interruption

    • Migrating to Amazon MQ without service interruption (p. 8)• Migrating to Amazon MQ with service interruption (p. 9)

    Migrating to Amazon MQ without serviceinterruptionThe following diagrams illustrate the scenario of migrating from an on-premises message broker to anAmazon MQ broker in the AWS Cloud without service interruption.

    ImportantThis scenario might cause messages to be delivered out of order. If you're concernedabout message ordering, follow the steps in Migrating to Amazon MQ with serviceinterruption (p. 9).

    On-Premises Message Broker Migration to Amazon MQ withStandard (Unordered) Queues

    To migrate to Amazon MQ without service interruptionCreate and configure an Amazon MQ broker and note your broker's endpoint, for example:

    8

    https://docs.aws.amazon.com/amazon-mq/latest/developer-guide/amazon-mq-creating-configuring-broker

  • Amazon MQ Amazon MQ for ActiveMQ Migration GuideWith service interruption

    ssl://b-1234a5b6-78cd-901e-2fgh-3i45j6k178l9-1.mq.us-east-2.amazonaws.com:61617

    For either of the following cases, use the Failover Transport to allow your consumers to randomlyconnect to your on-premises broker's endpoint or your Amazon MQ broker's endpoint. For example:

    failover:(ssl://on-premises-broker.example.com:61617,ssl://b-1234a5b6-78cd-901e-2fgh-3i45j6k178l9-1.mq.us-east-2.amazonaws.com:61617)?randomize=true

    Do one of the following:

    • One by one, point each existing consumer to your Amazon MQ broker's endpoint.

    • Create new consumers and point them to your Amazon MQ broker's endpoint.

    NoteIf you scale up your consumer fleet during the migration process, it is a best practice to scale itdown afterward.

    One by one, stop each existing producer, point the producer to your Amazon MQ broker's endpoint,and then restart the producer.

    Wait for your consumers to drain the destinations on your on-premises broker.

    Change your consumers' Failover transport to include only your Amazon MQ broker's endpoint. Forexample:

    failover:(ssl://b-1234a5b6-78cd-901e-2fgh-3i45j6k178l9-1.mq.us-east-2.amazonaws.com:61617)

    Stop your on-premises broker.

    Migrating to Amazon MQ with service interruptionThe following diagrams illustrate the scenario of migrating from an on-premises message broker to anAmazon MQ broker in the AWS Cloud with service interruption.

    ImportantThis scenario requires you to point your producer to your Amazon MQ broker's endpointbefore you do the same for your consumers. This sequence ensures that any messages in aFIFO (first-in-first-out) queue maintain their order during the migration process. If you're notconcerned about message ordering, follow the steps in Migrating to Amazon MQ without serviceinterruption (p. 8).

    9

    http://activemq.apache.org/failover-transport-reference.html

  • Amazon MQ Amazon MQ for ActiveMQ Migration GuideWith service interruption

    On-Premises Message Broker Migration to Amazon MQwith FIFO (Ordered) Queues

    To migrate to Amazon MQ with service interruption Create and configure an Amazon MQ broker and note your broker's endpoint, for example:

    ssl://b-1234a5b6-78cd-901e-2fgh-3i45j6k178l9-1.mq.us-east-2.amazonaws.com:61617

    Stop your existing producer, point the producer to your Amazon MQ broker's endpoint, and thenrestart the producer.

    ImportantThis step requires an interruption of your application's functionality because no consumers areyet consuming messages from the Amazon MQ broker.

    Wait for your consumers to drain the destinations on your on-premises broker.

    Do one of the following:

    • One by one, point each existing consumer to your Amazon MQ broker's endpoint.• Create new consumers and point them to your Amazon MQ broker's endpoint.

    10

    https://docs.aws.amazon.com/amazon-mq/latest/developer-guide/amazon-mq-creating-configuring-broker

  • Amazon MQ Amazon MQ for ActiveMQ Migration GuideWith service interruption

    NoteIf you scale up your consumer fleet during the migration process, it is a best practice to scale itdown afterward.

    Stop your on-premises broker.

    11

  • Amazon MQ Amazon MQ for ActiveMQ Migration GuideTerminologies

    IBM MQ queue managerTopics

    • Terminologies (p. 12)• IBM MQ typical architecture (p. 15)• Replicating IBM MQ with Amazon MQ (p. 17)• Steps to re-platform (p. 19)• Testing and validation (p. 22)

    TerminologiesThe following table is a list of common IBM MQ concepts, and how they relate to Amazon MQ.

    IBM MQ Amazon MQ

    Component Description Component Description

    Standard QueueManager

    Standard QueueManager is similar to abroker but one servercan have multiple IBMMQ Queue Managers

    Broker Broker in Amazon MQis equivalent to IBM MQQueue Manager.

    Gateway QueueManager

    A gateway QueueManager is used tobalance the workload.by routing traffic acrossmultiple IBM MQ QueueManagers.

    Network of Brokers Amazon MQ providesNetwork of Brokers toroute traffic to multiplebrokers.

    Local Queues A local queue is adefinition of both aqueue and the set ofmessages that areassociated with aqueue. The hosting IBMMQ Queue Managerreceives messagesin its local queues.Local queues supportseveral IBM MQ specificproperties like put,get, inhibits, etc.

    Queues This is equivalent toqueues in Amazon MQ.

    Remote Queues Remote queues areused to refer to a queuewhich physically existson a different IBMMQ Queue Manager,but connectivity isestablished usingchannels (Sender

    Network of Brokers This is achievedusing a Network ofBrokers. Networksof Brokers connectto one another on aNetwork Connector.With a Netowork ofBrokers, you can create

    12

    https://docs.aws.amazon.com/amazon-mq/latest/developer-guide/network-of-brokershttps://docs.aws.amazon.com/amazon-mq/latest/developer-guide/network-of-brokershttps://docs.aws.amazon.com/amazon-mq/latest/developer-guide/network-of-brokers

  • Amazon MQ Amazon MQ for ActiveMQ Migration GuideTerminologies

    IBM MQ Amazon MQ

    Channel and ReceiverChannel)

    connections acrossdifferent Regions andAvailability Zones.

    Alias Queues Alias queues are usedto give a different nameto a different physicalqueue. It allows settingdifferent securitysettings to the samephysical queue.

    Composite and VirtualDestinations

    Composite Destinationsand Virtual destinationsprovide the samefunctionality in theAmazon MQ world.You can achieve thisby making a minorchange in a brokerconfiguration file.

    Model Queues Acts as a template for aqueue definition.

    Destination Policy This can be achievedusing DestinationPolicies in the brokerconfiguration file

    Transmission Queues Used for remote queueconnectivity

    Network of Brokers A network of Brokersprovides equivalentconfiguration usingNetwork Connector

    Topics Pub-Sub destination Topics Topics in Amazon MQ

    Server connectionchannel

    Basic constructthrough which directconnectivity from aremote applicationclient to an MQ serveris established. Adminscan create multipleconnection channelsto enforce differentpolicies. A defaultserver connectionchannel is createdfor each IBM MQQueue Manager. Allowsfor monitoring ofconnections fromremote clients.

    Transport Connector Provides the detailsfor the connectionpoint for producers andconsumers to connectto a broker.

    13

  • Amazon MQ Amazon MQ for ActiveMQ Migration GuideTerminologies

    IBM MQ Amazon MQ

    Client ConnectionChannel

    Client connectionchannel in IBM MQallows a connectionmode where a configfile (client connectiondefinition table, orCCDT) is kept on theclient application sidewhich specifies optionsaround connectingto an IBM MQ QueueManager. Usually,legacy applicationsprior to JMS werewritten using thismechanism.

    Transport Connector Transport Connectorprovides the detailsfor the connectionpoint for producers andconsumers to connectto a broker.

    Channel level Firewall Channel level Firewallis used to blacklist/whitelist IP address,protocols

    Security Group With Amazon MQ, usethe Security Groupat the broker leveland use NACL at thesubnet level to create afirewall.

    Error Logs Each IBM MQ QueueManager has aconfiguration aroundtransaction logs. It'ssimilar to databaselogs. It has a size andpolicy (circular/linear).Any time there is ashared JMS transaction,the state is written in alog file for rollback orcommit.

    Amazon CloudWatch CloudWatch logs arefully integrated withAmazon MQ. For moreinformation, see Monitoring Amazon MQBrokers Using AmazonCloudWatch.

    Listener A listener is an IBM MQprocess that listens forconnections to the IBMMQ Queue Manager.

    Broker Instance Amazon MQ is amanaged broker andacts as a listener byitself.

    LDAP Authentication IBM MQ provides outof box connectivityto LDAP and group-based access to QM,queues, topics, etc.It also supports fine-grained access controlat queue and topiclevels.

    IAM and LDAPAuthentication

    Simple authentication isavailable with AmazonMQ. Fine-grained accessis only available at thebroker user level. Fine-Grained Access Controlat queue and topic levelwith access optionsto Get, Put. To learnmore, see MessagingAuthentication andAuthorization.

    14

    https://docs.aws.amazon.com/amazon-mq/latest/developer-guide/security-logging-monitoring-cloudwatchhttps://docs.aws.amazon.com/amazon-mq/latest/developer-guide/security-logging-monitoring-cloudwatchhttps://docs.aws.amazon.com/amazon-mq/latest/developer-guide/security-logging-monitoring-cloudwatchhttps://docs.aws.amazon.com/amazon-mq/latest/developer-guide/security-logging-monitoring-cloudwatchhttps://docs.aws.amazon.com/amazon-mq/latest/developer-guide/security-authentication-authorizationhttps://docs.aws.amazon.com/amazon-mq/latest/developer-guide/security-authentication-authorizationhttps://docs.aws.amazon.com/amazon-mq/latest/developer-guide/security-authentication-authorization

  • Amazon MQ Amazon MQ for ActiveMQ Migration GuideIBM MQ typical architecture

    IBM MQ Amazon MQ

    Message channel agent(MCA)

    MCA is used to enforcean alternate level ofsecurity. The defaultconfiguration is atthe server connectionchannel level.

    Not Applicable Not Applicable

    Channel exit programs Channel exit programsare programs thatare called at definedplaces in the processingsequence of a Messagechannel agent (MCA).Users and vendors canwrite their own channelexit programs. Someare supplied by IBM.

    Plugins Limited pluginssupported. To learnmore, see Supportedplugins (p. 31)

    Queue Manager Group Queue Manager Groupis used to support acluster of IBM MQQueue Managers. It isbased on providing ahigh availability butproviding a set of IBMMQ Queue Manager forconnectivity.

    Network of Brokers Using Network ofBrokers and each brokerwith Active-Standbyconfiguration

    Sender / ReceiverChannels

    A message channel,a unidirectionalcommunications linkbetween two IBMMQ Queue Managers.WebSphere MQ usesmessage channels totransfer messagesbetween the IBM MQQueue Managers. Tosend messages in bothdirections, you mustdefine a channel foreach direction.

    Network Connector A duplexcommunication channelbetween 2 brokers.

    IBM MQ typical architectureTopics

    • Option one: IBM MQ high availability topology running on AWS (p. 16)

    • Option Two: IBM MQ HA/DR topology running on-premises (p. 17)

    15

  • Amazon MQ Amazon MQ for ActiveMQ Migration GuideOption one: IBM MQ high availability

    topology running on AWS

    Option one: IBM MQ high availability topologyrunning on AWSThe below diagram shows a typical architecture of IBM MQ connections between two IBM MQ queuemanagers in a High Availability cluster as seen in many enterprise applications. IBM MQ queue managerQM_ORANGE is deployed in the us-east-1 region and QM_APPLE is deployed in the us-east-2 region.

    For application App 1 to communicate with App 2:

    1. App 1 uses a communications channel to send messages to QM_ORANGE on Remote Q1.

    2. Messages from several such queues, though not shown in the diagram, are pooled into transmissionQueue Q QM_APPLE.

    3. Sender channels read messages from the transmission queue, and communicate with a receiverchannel to place messages on Local Q1 on queue manager QM_APPLE ,which are then consumedby App 2.

    16

  • Amazon MQ Amazon MQ for ActiveMQ Migration GuideOption Two: IBM MQ HA/DR topology running on-premises

    Option Two: IBM MQ HA/DR topology running on-premises

    In the above diagram, the MQ Cluster is comprised of two separate queue managers and all messagesare routed via cluster channels and queueing. If one queue manager fails, messages are then re-routed toanother queue manager.

    The Server Cluster is made up of just a single queue manager with three distinct IP addresses. In thisconfiguration, all applications are connected to the Server Cluster IP addresses. If failure is detected, theSAN begins pointing to the secondary server. In case, of a failure event, channel connections do not haveto be changed, and connectivity remains uninterrupted for users.

    The Multi-Instance queue manager is comprised of a single queue manager with identical queues onboth servers, and two distinct IP addresses. If failure is detected, a queue manager must be manuallyactivated on the seconrd server and channel connections must be changed, resulting in possible serviceinterruptions.

    To ensure disaster recovery, data is replicated in real-time to a separate server in a different location.In case of a disaster, manual effort is required to process the data stored on the Disaster Recovery (DR)server, and change channel connections, resulting in possible service interruptions.

    Replicating IBM MQ with Amazon MQAmazon MQ provides a variety of broker configurations, various instance sizes for different workloads,and broker options such as single instance, single instance mesh, active/standby instance or active/standby mesh for high availabilty and message durability. To learn more about supported broker options,see Amazon MQ Broker Architecture.

    17

    https://docs.aws.amazon.com/amazon-mq/latest/developer-guide/amazon-mq-broker-architecture

  • Amazon MQ Amazon MQ for ActiveMQ Migration GuideReplicating IBM MQ with Amazon MQ

    In this section, we replicate the IBM MQ system shown in the previous section with Amazon MQ, whilekeeping the same configuration.

    Amazon MQ manages the work involved in setting up an ActiveMQ message broker, from provisioningthe infrastructure capacity (server instances and storage) to installing the broker software. Once yourbroker is up and running, Amazon MQ automates common administrative tasks such as patching theActiveMQ software that power your brokers.

    NoteIf you wish to use a single region, you can simply deploy your Amazon MQ brokers in one regionwith the active/standby configuration. You can also optimize the performance of your AmazonMQ brokers by taking advantage of the Apache ActiveMQ optimization settings.

    The following diagram illustrates Amazon MQ configured across two regions with a linear connectionbetween two active/standby brokers:

    For App 1 to communicate with App 2:

    1. Client applications can use a transport connector and put messages onto a Queue or publish to aTopic.

    2. Brokers connect to each other over a network connector either in one direction or both directions incases where request-reply messaging is required.

    3. Queues and users can be created and managed in the AWS Console. To learn more, see Amazon MQBasic Elements.

    Note

    • A transmit queue in IBM MQ is a local queue, except it is used to forward messages to aremote IBM MQ queue manager through a sender-receiver channel pair. In Amazon MQ, atransmit queue is not required. Once 2 brokers are connected using a network connector, theybegin to share all queues/topics, and their data.

    • A remote queue in IBM MQ is a local impression of a remote queue available at a remote IBMMQ queue manager. For external applications, there is no difference between local or remotequeues. In Amazon MQ, there is no remote queue mechanism and it is not required.

    • Sender or receiver channels in IBM MQ are used as network paths to connect 2 IBM MQ queuemanagers. In Amazon MQ, this functionality is implemented using netowork connectors.

    18

    https://activemq.apache.org/performance-tuninghttps://docs.aws.amazon.com/amazon-mq/latest/developer-guide/amazon-mq-basic-elementshttps://docs.aws.amazon.com/amazon-mq/latest/developer-guide/amazon-mq-basic-elementshttps://docs.aws.amazon.com/amazon-mq/latest/developer-guide/child-element-details.html#networkConnectorhttps://docs.aws.amazon.com/amazon-mq/latest/developer-guide/child-element-details.html#networkConnector

  • Amazon MQ Amazon MQ for ActiveMQ Migration GuideSteps to re-platform

    • Currently, Amazon MQ only supports JMS 1.1. Applications written for JMS 2.0 can bemigrated to Amazon MQ using the Qpid JMS library, which uses AMQP instead of the default,higher-performing Openwire protocol. For more details, refer to the Amazon MQ workshop.

    Steps to re-platformThe following procedure shows how you can migrate an IBM MQ (p. 15) to an equivalent Amazon MQwithout impacting App 1 or App 2:

    1. Create an active/standby broker in us-east-1 and another in us-east-2 named as AMQ_ORANGE andAMQ_APPLE.

    2. Create a Network Bridge between 2 brokers by adding a duplex network connector definition to oneof the queues:

    After the reboot of AMQ_ORANGE, there should be a NetworkBridge created between both brokers as illustrated below:

    19

    https://qpid.apache.org/https://github.com/aws-samples/amazon-mq-workshop/tree/master/amqp-clienthttps://docs.aws.amazon.com/amazon-mq/latest/developer-guide/active-standby-broker-deployment

  • Amazon MQ Amazon MQ for ActiveMQ Migration GuideSteps to re-platform

    NoteSteps 1 and 2 can be replicated using a AWS CloudFormation template. For moreinformation about using AWS CloudFormation to set up Amazon MQ brokers, see theAmazon MQ AWS CloudFormation Template Reference.

    3. Log in to IBM MQ Queue Manager Host and list the queues/topics definitions. In QM_ORANGE, youcan list the queues and topics from IBM MQ using the following command:

    $ sudo dmpmqcfg -m QM_ORANGE -t queue -o 1line | grep -v "SYSTEM" | grep -v "AUTHREC" | grep -v "*" | gawk -F: '{ print $1 }‘

    The output:

    DEFINE QREMOTE('Q1') RQMNAME('QM_APPLE') RNAME('Q1') XMITQ('QM_APPLE') REPLACE DEFINE QLOCAL('Q2') DISTL(NO) MAXDEPTH(5000) REPLACE DEFINE QLOCAL('QM_APPLE') GET(DISABLED) MAXDEPTH(5000) USAGE(XMITQ) REPLACE

    In the example above, Q1 is the link to the remote queue, QM_APPLE is the transit queue, and Q2 isthe local queue. We only need local queue Q2 for the Amazon MQ setup, which can be defined in thebroker configuration as

    Q1 is a local queue on QM_APPLE and Q2 is a local queue in QM_ORANGE. You can these resourcesaccordingly in AMQ_APPLE and AMQ_ORANGE by using the following configuration

    Similairly, get the list of queues and topics from QM_APPLE.

    4. Manually create a dead letter queue strategy in the AMQ configuration file.

    The defaultdead letter queue in ActiveMQ is called ActiveMQ.DLQ. All un-deliverablemessages will get routed to this queue. To streamline this process, you can set up anindividualDeadLetterStrategy in the destination policy map of the activemq.xmlconfiguration file, allowing you to specify a specific dead letter queue prefix for a given queue ortopic. You can apply this strategy using a wild-card so that all queues can be set up with their owndead-letter queues, as is shown in the example below:

    20

    https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_AmazonMQ

  • Amazon MQ Amazon MQ for ActiveMQ Migration GuideSteps to re-platform

    NoteDead-Letter queue expiration - By default, ActiveMQ will never expire messagessent to a Dead-Letter Queue (DLQ). However, beginning with ActiveMQ 5.12, thedeadLetterStrategy supports an expiration attribute whose value is given inmilliseconds as shown below:

    5. Create local queue Q1 on AMQ_ORANGE and Q2 on AMQ_APPLE as shown in the following:

    21

  • Amazon MQ Amazon MQ for ActiveMQ Migration GuideTesting and validation

    Testing and validation

    1. Subscribe to Q1 on AMQ_APPLE and Q2 on AMQ_ORANGE. Using a Network Bridge, create a queuereplica on both sides.

    NoteThe process for external subscribers is the same as subscribing to local queues.

    The following example shows the AMQ_ORANGE broker withconsumers in us-east-1 and AMQ_APPLE with consumers in us-east-2 :

    2. Both queues are now available to both brokers, producers can send messages to any broker, andsubscribers can receive messages from any broker. For JMS 1.1 compliant applications, change theendpoint URL to an ActiveMQ failover URL.

    NoteTo learn more about a phased migration approach from IBM MQ to Amazon MQ, refer to thispost.

    22

    http://aws.amazon.com/blogs/compute/migrating-from-ibm-mq-to-amazon-mq-using-a-phased-approach/

  • Amazon MQ Amazon MQ for ActiveMQ Migration GuideTerminologies

    TIBCO EMS serverTopics

    • Terminologies (p. 23)• TIBCO EMS typical architecture (p. 25)• Replicating TIBCO EMS with Amazon MQ (p. 27)• Steps to re-platform (p. 28)• Testing and validation (p. 29)

    TerminologiesThe following is a list of common TIBCO EMS concepts and how they relate to Amazon MQ.

    TIBCO EMS Amazon MQ

    Component Description Component Description

    EMS Server TIBCO EMS Server is amessage broker thatsupports standards-based Java MessageService (JMS) 1.1 and2.0. It also supportsTIBCO proprietarymessaging formats,FTL, Rendezvous, andSmartSockets.

    Broker Broker in AmazonMQ is equivalent toTIBCO EMS Server. Itprovides support forindustry-standard APIssuch as JMS and NMS,and protocols such asAMQP, STOMP, MQTT,and WebSocket.

    Static Destination Configurationinformation for a staticdestination is stored inconfiguration files forthe EMS server.

    Startup Destination Amazon MQ allows youto create destinationswhen the broker isstarted by configuringStartup Destinations.

    Dynamic Destination Dynamic Destination iscreated as required bythe client applicationand exists as long asthere are messages orconsumers associatedwith a destination.

    Destination In Amazon MQ, adestination is, bydefault, createdautomatically whenit is used. You can usethe Delete InactiveDestinations feature inorder to replicate thebehavior of DynamicDestinations in TIBCOEMS.

    Temporary Destination A TemporaryDestination is usedfor reply messagesin request/replyinteractions.

    Temporary Destination A TemporaryDestination is usedfor reply messagesin request/replyinteractions.

    23

  • Amazon MQ Amazon MQ for ActiveMQ Migration GuideTerminologies

    TIBCO EMS Amazon MQ

    Queue A queue is a mode toprovide point to pointmessaging channelfrom producers toconsumers

    Queue Similar to that of TIBCOEMS, Amazon MQ’sQueue is a mode toprovide point-to-pointmessaging channelsfrom producers toconsumers

    Route TIBCO EMS servershave to enable andconfigure routing toroute messages to oneor more servers. A routeforwards messagesbetween correspondingglobal destinations.

    Network Connector Networks of Brokerscan connectto eachother on a NetworkConnector and allowsconnections acrossAvailability Zones andregion.

    Routed Queue A Routed Queue hasto be configured onanother EMS serverfor messages to beforwarded to or froma Queue. Queuemessages can travelonly one hop to thehome queue, and onehop from the homequeue.

    Network of Brokers This is achieved usinga network of brokers.Amazon MQ providesa richer feature-set towork with destinationbehavior in Networks ofBrokers.

    Topic Topics implementpublish and subscribemessaging, and areequivalent to topics inAmazon MQ.

    Topics Topics in Amazon MQare equivalent to topicsin TIBCO EMS.

    Global Topic A Global Topic hasto be configured onanother EMS serverfor messages to beforwarded to or froma Topic. In a multi-hopzone, Topic messagesare forwarded to allservers connected byrouters within the zone.In a one-hop zone, topicmessages travel onlyone hop.

    Network of Brokers This is achieved usinga network of brokers.Amazon MQ providesa richer feature-set towork with destinationbehavior in Networks ofBrokers.

    24

    https://docs.aws.amazon.com/amazon-mq/latest/developer-guide/network-of-brokershttps://docs.aws.amazon.com/amazon-mq/latest/developer-guide/network-of-brokershttps://docs.aws.amazon.com/amazon-mq/latest/developer-guide/network-of-brokershttps://docs.aws.amazon.com/amazon-mq/latest/developer-guide/network-of-brokershttps://docs.aws.amazon.com/amazon-mq/latest/developer-guide/network-of-brokers

  • Amazon MQ Amazon MQ for ActiveMQ Migration GuideTIBCO EMS typical architecture

    TIBCO EMS Amazon MQ

    Destination Bridges This allows all messagesdelivered to onedestination to also bedelivered to the bridgeddestination. It is mostcommonly used tocreate durability ofmessages published ona topic using the topicto queue bridge.

    Virtual Topics andComposite Destinations

    Topic to queue bridge-like functionality can beachieved using VirtualTopics in Amazon MQ.Other bridges canbe migrated usingComposite Destinationsin Amazon MQ.

    Message Store EMS server writespersistent messages todisk and provides file-based and databasestores. For file-based stores, youhave to truncate thefiles periodically torelinquish disk space.

    N/A Amazon MQ alsosupports messagepersistence. AmazonMQ is a managedservice and theoverall storage is fullymanaged by AWS.

    TIBCO EMS typical architectureTopics

    • TIBCO EMS cross-regional architecture in AWS (p. 25)

    • TIBCO EMS high availability architecture (p. 26)

    TIBCO EMS cross-regional architecture in AWSThe below diagram shows the typical architecture of TIBCO EMS routing between two TIBCOEMS Servers in different regions, common in many enterprise systems. TIBCO EMS ServerEMS_ORANGE is deployed in the us-east-1 region and EMS_APPLE is deployed in the us-east-2 region:

    25

  • Amazon MQ Amazon MQ for ActiveMQ Migration GuideTIBCO EMS high availability architecture

    For application App 1 to communicate with App 2:

    1. App 1 uses a topic destination, Topic1 on server EMS_ORANGE to publish messages.

    2. Published messages are transmitted to topic Topic1 on server EMS_APPLE using the configuredroute.

    3. Published messages are transmitted to Topic1 on server EMS_APPLE using the configured route.

    4. On EMS_APPLE, a bridge is configured to move messages from topic, Topic1 to queue, Queue1.Messages are then consumed by App 2.

    TIBCO EMS high availability architectureIn this configuration, High availability is provided by configuring a pair of servers, Primary andSecondary. In a typical enterprise architecture, two high availability configurations, shared andunshared. The shared state setup is the most widely used setup in enterprise settings. Thefollowing diagram demonstrates the Shared State configuration for a pair of messaging servers:

    26

  • Amazon MQ Amazon MQ for ActiveMQ Migration GuideReplicating TIBCO EMS with Amazon MQ

    In the above diagram, a pair of messaging servers share a state by sharing file-based storage. Theprimary server attains the lock on the shared storage capacity, becomes active, and accepts clientconnections, while the secondary server remains in passive mode. Meanwhile, the primary and secondaryservers will be made aware of one another's status via periodic, heartbeat pings.

    In te case of a failover, the secondary server will assume the state of the primary server, and acquire thelock on the shared state.

    NoteThe above configuration is unable to support more than two servers, and data replication acrossthe servers for durability.

    Replicating TIBCO EMS with Amazon MQAmazon MQ provides a variety of broker configurations, various instance sizes for different workloads,and broker options such as single instance, single instance mesh, active/standby instance or active/standby mesh for high availabilty and message durability. To learn more about supported broker options,see Amazon MQ Broker Architecture.

    In this section, we replicate the architecture of the TIBCO EMS system shown in the previous section withAmazon MQ while keeping the same configuration.

    NoteIf you wish to use a single region, you can simply deploy your Amazon MQ brokers in one regionwith the active/standby configuration. You can also optimize the performance of your AmazonMQ brokers by taking advantage of the Apache ActiveMQ optimization settings.

    The following diagram illustrates Amazon MQ configured across two regions with a linear connectionbetween two active/standby brokers:

    For App 1 to communicate with App 2:

    1. Client applications can use a transport connector and put messages onto a Queue or publish to aTopic.

    2. Brokers connect to each other over a network connector either in one direction or both directions incases where request-reply messaging is required.

    3. Queues and users can be created and managed in the AWS Console. To learn more, see Amazon MQBasic Elements.

    27

    https://docs.aws.amazon.com/amazon-mq/latest/developer-guide/amazon-mq-broker-architecturehttps://activemq.apache.org/performance-tuninghttps://docs.aws.amazon.com/amazon-mq/latest/developer-guide/amazon-mq-basic-elementshttps://docs.aws.amazon.com/amazon-mq/latest/developer-guide/amazon-mq-basic-elements

  • Amazon MQ Amazon MQ for ActiveMQ Migration GuideSteps to re-platform

    Note

    • A Global Topic with the same name has to be created on other EMS Servers for forwardingmessages to the Topic on those EMS Servers. In Amazon MQ, a global topic is not required.Once 2 brokers are connected using a network connector, they begin to share all queues/topics, and their data.

    • In Amazon MQ, a routed queue as implemented by a TIBCO EMS server is not required.

    • A network bridge from a topic to a queue can be used in TIBCO EMS architecture to avoid thenaming issue with routed queues and to provide multi-hop capability between EMS serversusing a Topic. In Amazon MQ, queue names are consistent and all topic/queue messages areshared among a Networks of Brokers.

    • Currently, Amazon MQ only supports JMS 1.1. Applications written for JMS 2.0 can bemigrated to Amazon MQ using the Qpid JMS library, which uses AMQP instead of the default,higher-performing Openwire protocol. For more details, refer to the Amazon MQ workshop.

    Steps to re-platformYou can use the following procedure to migrate the TIBCO EMS architecture shown here (p. 25) to anequivalent Amazon MQ architecture without impacting App 1 or App 2:

    1. Create an active/standby broker in us-east-1 and another in us-east-2 named as AMQ_ORANGE andAMQ_APPLE.

    2. Create a Network Bridge between 2 brokers by adding a duplex network connector definition to oneof the queues:

    After the reboot of AMQ_ORANGE, there should be a NetworkBridge created between both brokers as illustrated below:

    NoteSteps 1 and 2 can be replicated using a AWS CloudFormation template. For moreinformation about using AWS CloudFormation to set up Amazon MQ brokers, see theAmazon MQ AWS CloudFormation Template Reference.

    3. Retrieve the list of static TIBCO EMS server destinations from the config files, queues.conf andtopics.conf or by using the following tibemsadmin commands:

    show queues * staticshow topics * static

    28

    https://docs.aws.amazon.com/amazon-mq/latest/developer-guide/child-element-details.html#networkConnectorhttps://docs.aws.amazon.com/amazon-mq/latest/developer-guide/network-of-brokershttps://qpid.apache.org/https://github.com/aws-samples/amazon-mq-workshop/tree/master/amqp-clienthttps://docs.aws.amazon.com/amazon-mq/latest/developer-guide/active-standby-broker-deploymenthttps://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_AmazonMQ

  • Amazon MQ Amazon MQ for ActiveMQ Migration GuideTesting and validation

    When finished, update the Amazon MQ broker AMQ_ORANGE configuration file to add startupdestinations as shown here:

    4. Destination properties for TIBCO EMS can be found in queues.conf and topics.conf files. PerDestination level Policy can be set in Amazon MQ using the destinationPolicy section in theconfiguration file.

    5. Retrieve the list of TIBCO EMS Bridges from bridges.conf. For example, the Bridge from sourcetopic NOTIFY.FOOBAR to target queues FOO and BAR is shown as:

    [topic:NOTIFY.FOOBAR]queue=FOOqueue=BAR

    When finished, up the Amazon MQ broker AMQ_ORANGE configuration file to add CompositeDestinations that match TIBCO EMS bridges.

    NoteSimple Topic to Queue bridges are needed in TIBCO EMS to support m-hop routing. InAmazon MQ this is not needed and queues can be used directly with a Network of Brokers.

    Testing and validationIn the the section called “TIBCO EMS typical architecture” (p. 25) section, a Topic to Queue bridge wasused to forward messages to other EMS servers. In Amazon MQ, App 1 would send messages directly toQ1 because messages on a queue are forwarded in a Network of Brokers.

    In the TIBCO EMS example, messages from App 2 are sent to Q2 and then forwarded to Q2@EMS_APPLE.In Amazon MQ, the queue name, Q2, would be the same on both message brokers, simplifying theconfiguration of App 1.

    The following example shows the AMQ_ORANGE broker withconsumers in us-east-1 and AMQ_APPLE with consumers in us-east-2

    29

    https://docs.aws.amazon.com/amazon-mq/latest/developer-guide/network-of-brokershttps://docs.aws.amazon.com/amazon-mq/latest/developer-guide/network-of-brokers

  • Amazon MQ Amazon MQ for ActiveMQ Migration GuideTesting and validation

    30

  • Amazon MQ Amazon MQ for ActiveMQ Migration Guide

    Supported pluginsA plugin in Amazon MQ is a software module that adds a specific feature to a broker. Amazon MQmanaged brokers support the following plugins:

    • authorizationPlugin: Allows you to control access at the granularity level of destinations or ofindividual messages.

    • discardingDLQBrokerPlugin: Provides fine-grained options to discard your dead-letter queue.• redeliveryPlugin: Enables you to replace the regular DLQ handling with re-delivery to the original

    destination following a delay period.• forcePersistencyModeBrokerPlugin: Allows you to force every incoming message to be persistent or

    non-persistent. This is useful if you've set up a broker usage policy to process only persistent or non-persistent messages.

    • statisticsBrokerPlugin: Enables you to retrieve statistics from the broker or its destinations.• timeStampingBrokerPlugin: Allows you to update a JMS Client's timestamp on a message with a broker

    timestamp. You can trust the timestamp set on your Amazon MQ brokers when client-side machineclocks are known to be incorrect.

    31

    https://activemq.apache.org/security.htmlhttps://docs.aws.amazon.com/amazon-mq/latest/developer-guide/permitted-attributes.html#discardingDLQBrokerPlugin.attributeshttps://docs.aws.amazon.com/amazon-mq/latest/developer-guide/permitted-attributes.html#redeliveryPlugin.attributeshttps://docs.aws.amazon.com/amazon-mq/latest/developer-guide/permitted-attributes.html#forcePersistencyModeBrokerPlugin.attributeshttps://activemq.apache.org/statisticspluginhttps://docs.aws.amazon.com/amazon-mq/latest/developer-guide/permitted-attributes.html#timeStampingBrokerPlugin.attributes

  • Amazon MQ Amazon MQ for ActiveMQ Migration Guide

    Logging and monitoringAmazon MQ and Amazon CloudWatch are integrated so you can use CloudWatch to view and analyzemetrics for your ActiveMQ brokers and destinations (queues and topics). You can view and analyze yourAmazon MQ metrics from the CloudWatch console, the AWS CLI, or the CloudWatch CLI. Metrics forAmazon MQ are automatically polled from each broker and pushed to CloudWatch every minute.

    For information about accessing Amazon MQ CloudWatch metrics, see Accessing CloudWatch Metrics forAmazon MQ.

    You can configure CloudWatch alarms to receive notifications for broker reboots or troubleshootbroker configuration errors. For more information about Amazon CloudWatch Logs, see the AmazonCloudWatch Logs User Guide.

    32

    https://docs.aws.amazon.com/amazon-mq/latest/developer-guide/amazon-mq-accessing-metricshttps://docs.aws.amazon.com/amazon-mq/latest/developer-guide/amazon-mq-accessing-metricshttps://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmailhttps://docs.aws.amazon.com/amazon-mq/latest/api-reference/brokers-broker-id-reboothttps://docs.aws.amazon.com/amazon-mq/latest/developer-guide/amazon-mq-broker-configuration-parametershttps://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/

  • Amazon MQ Amazon MQ for ActiveMQ Migration Guidemq.m5.large

    Throughput benchmarksThe following tables provide performance and throughput benchmarks for Amazon MQ supportedinstance types to help you choose the correct instance sizes for your messaging workload.

    Topics• mq.m5.large (p. 33)• mq.m5.xlarge (p. 34)• mq.m5.2xlarge (p. 35)• mq.m5.4xlarge (p. 36)

    mq.m5.largeConfiguration options:

    • Broker Instance - mq.m5.large• Persistent - TRUE• Client - m5.xlarge• CSAD - TRUE• Protocol - Openwire

    Producers/Consumers

    Message size Metrics 25 50 100 200

    TPS 1,750 3,417 5,767 6,9161KB

    CPU% 25% 45% 75% 92%

    TPS 1,633 3,083 4,467 5,3335KB

    CPU% 28% 49% 75% 92%

    TPS 1,700 2,467 3,367 3,33410KB

    CPU% 47% 68% 90% 99%

    TPS 1,050 1,250 1,316 1,30050KB

    CPU% 82% 95% 99% 100%

    TPS 700 716 741 738100KB

    CPU% 95% 98% 100% 100%

    Configuration options:

    • Broker Instance - mq.m5.large• Persistent - TRUE• Client - m5.xlarge• CSAD - FALSE

    33

  • Amazon MQ Amazon MQ for ActiveMQ Migration Guidemq.m5.xlarge

    • Protocol - Openwire

    Producers/Consumers

    Message size Metrics 25 50 100 200

    TPS 907 1,463 2,217 2,4001KB

    CPU% 26% 27% 43% 50%

    TPS 770 1,170 1,328 1,2635KB

    CPU% 18% 33% 32% 32%

    TPS 675 793 790 70510KB

    CPU% 23% 33% 33% 29%

    TPS 190 190 173 14850KB

    CPU% 19% 23% 21% 16%

    TPS 97 98 93 82100KB

    CPU% 18% 22% 22% 20%

    mq.m5.xlargeConfiguration options:

    • Broker Instance - mq.m5.xlarge• Persistent - TRUE• Client - m5.xlarge• CSAD - TRUE• Protocol - Openwire

    Producers/Consumers

    Message size Metrics 25 50 100 200

    TPS 1,916 3,834 7,332 11,6671KB

    CPU% 16% 27% 48% 78%

    TPS 1,967 3,584 6,234 9,2505KB

    CPU% 18% 30% 50% 80%

    TPS 1,867 3,534 5,700 6,50010KB

    CPU% 27% 49% 77% 93%

    TPS 1,500 2,300 2,550 2,60050KB

    CPU% 58% 85% 95% 98%

    100KB TPS 1,134 1,367 1,442 1,243

    34

  • Amazon MQ Amazon MQ for ActiveMQ Migration Guidemq.m5.2xlarge

    Producers/Consumers

    Message size Metrics 25 50 100 200

    CPU% 74% 93% 98% 98%

    Configuration options:

    • Broker Instance - mq.m5.xlarge• Persistent - TRUE• Client - m5.xlarge• CSAD - FALSE• Protocol - Openwire

    Producers/Consumers

    Message size Metrics 25 50 100 200

    TPS 887 1,562 2,467 2,4701KB

    CPU% 14% 18% 19% 20%

    TPS 805 1,275 1,300 1,1575KB

    CPU% 13% 13% 13% 12%

    TPS 692 807 776 72210KB

    CPU% 13% 20% 13% 13%

    TPS 183 190 178 13450KB

    CPU% 10% 10% 13% 13%

    TPS 99 97 92 76100KB

    CPU% 9% 9% 12% 9%

    mq.m5.2xlargeConfiguration options:

    • Broker Instance - mq.m5.2xlarge• Persistent - TRUE• Client - m5.xlarge• CSAD - TRUE• Protocol - Openwire

    Producers/Consumers

    Message size Metrics 25 50 100 200

    1KB TPS 2,250 4,300 8,467 16,334

    35

  • Amazon MQ Amazon MQ for ActiveMQ Migration Guidemq.m5.4xlarge

    Producers/Consumers

    Message size Metrics 25 50 100 200

    CPU% 8% 15% 27% 58%

    TPS 2,067 3,834 7,150 14,5165KB

    CPU% 10% 17% 30% 63%

    TPS 1,900 3,467 7,083 11,33410KB

    CPU% 15% 24% 48% 80%

    TPS 1,592 2,917 4,500 4,91750KB

    CPU% 30% 52% 83% 92%

    TPS 1,250 2,184 2,513 2,770100KB

    CPU% 42% 72% 85% 92%

    Configuration options:

    • Broker Instance - mq.m5.2xlarge• Persistent - TRUE• Client - m5.xlarge• CSAD - FALSE• Protocol - Openwire

    Producers/Consumers

    Message size Metrics 25 50 100 200

    TPS 952 1,683 2,800 2,7341KB

    CPU% 7% 9% 15% 16%

    TPS 768 1,230 1,288 1,1505KB

    CPU% 6% 9% 9% 9%

    TPS 685 787 753 68010KB

    CPU% 7% 8% 8% 7%

    TPS 190 192 164 12050KB

    CPU% 5% 5% 5% 4%

    TPS 98 96 90 80100KB

    CPU% 4% 4% 4% 4%

    mq.m5.4xlargeConfiguration options:

    36

  • Amazon MQ Amazon MQ for ActiveMQ Migration Guidemq.m5.4xlarge

    • Broker Instance - mq.m5.4xlarge

    • Persistent - TRUE

    • Client - m5.xlarge

    • CSAD - TRUE

    • Protocol - Openwire

    Producers/Consumers

    Message size Metrics 25 50 100 200

    TPS 2,234 4,167 8,167 16,1671KB

    CPU% 4% 7% 15% 30%

    TPS 1,934 3,834 7,334 16,6675KB

    CPU% 4% 17% 16% 38%

    TPS 1,900 3,700 7,534 15,83310KB

    CPU% 7% 14% 26% 57%

    TPS 1,750 3,267 5,667 7,83450KB

    CPU% 16% 29% 55% 70%

    TPS 1,517 2,417 4,250 4,334100KB

    CPU% 23% 30% 68% 69%

    Configuration options:

    • Broker Instance - mq.m5.4xlarge

    • Persistent - TRUE

    • Client - m5.xlarge

    • CSAD - FALSE

    • Protocol - Openwire

    Producers/Consumers

    Message size Metrics 25 50 100 200

    TPS 922 1,617 2,400 2,5841KB

    CPU% 3% 5% 7% 8%

    TPS 797 1,258 1,257 1,2955KB

    CPU% 3% 4% 4% 4%

    TPS 658 795 778 70310KB

    CPU% 3% 4% 4% 4%

    50KB TPS 193 193 170 131

    37

  • Amazon MQ Amazon MQ for ActiveMQ Migration Guidemq.m5.4xlarge

    Producers/Consumers

    Message size Metrics 25 50 100 200

    CPU% 3% 2% 3% 3%

    TPS 100 98 91 87100KB

    CPU% 2% 3% 2% 2%

    38

  • Amazon MQ Amazon MQ for ActiveMQ Migration Guide

    Related resourcesFor additional information, see these resources:

    • Video Intro to Amazon MQ• Getting Started with Amazon MQ• Create a Connected Message Broker• Benefits of Amazon MQ• Frequently Asked Questions• Amazon MQ Customer Testimonials

    Documentation

    • Amazon MQ Features• Configuring an Amazon MQ Broker• Amazon MQ Network of Brokers• Amazon MQ Broker Architecture

    Other Helpful Links

    • Amazon MQ Blogs• Amazon MQ Video Sessions• Amazon MQ Tutorials• Amazon MQ Forums• ActiveMQ Documentation

    39

    https://www.youtube.com/watch?time_continue=1&v=iDT1zFpy1kEhttps://docs.aws.amazon.com/amazon-mq/latest/developer-guide/amazon-mq-getting-started.htmlhttps://aws.amazon.com/getting-started/projects/create-a-connected-message-broker/https://docs.aws.amazon.com/amazon-mq/latest/developer-guide/welcome.html#main-benefitshttps://aws.amazon.com/amazon-mq/faqs/https://aws.amazon.com/amazon-mq/resources/#Customer_Testimonialshttps://aws.amazon.com/amazon-mq/features/https://docs.aws.amazon.com/amazon-mq/latest/developer-guide/amazon-mq-creating-configuring-broker.htmlhttps://docs.aws.amazon.com/amazon-mq/latest/developer-guide/network-of-brokers.htmlhttps://docs.aws.amazon.com/amazon-mq/latest/developer-guide/amazon-mq-broker-architecture.htmlhttps://aws.amazon.com/amazon-mq/resources/#Blog_posts_.26_articleshttps://aws.amazon.com/amazon-mq/resources/#Videoshttps://docs.aws.amazon.com/amazon-mq/latest/developer-guide/amazon-mq-tutorials.htmlhttps://forums.aws.amazon.com/forum.jspa?forumID=279https://activemq.apache.org/components/classic/documentation

  • Amazon MQ Amazon MQ for ActiveMQ Migration GuideDocument History

    Amazon MQ for ActiveMQ MigrationGuide release notes

    Amazon MQ Amazon MQ for ActiveMQ MigrationGuide Document History

    The following table lists changes to the Amazon MQ Amazon MQ for ActiveMQ Migration Guide. ForAmazon MQ feature releases and improvements, see Amazon MQ Release Notes.

    Date Documentation Update

    October 5, 2020 Amazon MQ is now offering a comprehensive guide for migrating on-premisescommercial message-brokers, such as IBM MQ and TIBCO EMS, to the cloud.

    40

    https://docs.aws.amazon.com/amazon-mq/latest/developer-guide/amazon-mq-release-notes.html

  • Amazon MQ Amazon MQ for ActiveMQ Migration Guide

    AWS glossaryFor the latest AWS terminology, see the AWS glossary in the AWS General Reference.

    41

    https://docs.aws.amazon.com/general/latest/gr/glos-chap.html

    Amazon MQTable of ContentsAbout this guideGetting startedPrerequisitesKey conceptsMessaging protocolsMessage persistenceNetwork optionsAvailability optionsMessaging patternsPerformance and scalabilityLatencyDestination optionsSecurity and authenticationBroker quotasConfiguration optionsCost estimation

    Migration approachesRehostReplatformRefactor (re-architect)Phased migration

    Service interruption scenariosMigrating to Amazon MQ without service interruptionTo migrate to Amazon MQ without service interruption

    Migrating to Amazon MQ with service interruptionTo migrate to Amazon MQ with service interruption

    IBM MQ queue managerTerminologiesIBM MQ typical architectureOption one: IBM MQ high availability topology running on AWSOption Two: IBM MQ HA/DR topology running on-premises

    Replicating IBM MQ with Amazon MQSteps to re-platformTesting and validation

    TIBCO EMS serverTerminologiesTIBCO EMS typical architectureTIBCO EMS cross-regional architecture in AWSTIBCO EMS high availability architecture

    Replicating TIBCO EMS with Amazon MQSteps to re-platformTesting and validation

    Supported pluginsLogging and monitoringThroughput benchmarksmq.m5.largemq.m5.xlargemq.m5.2xlargemq.m5.4xlarge

    Related resourcesAmazon MQ for ActiveMQ Migration Guide release notesAmazon MQ Amazon MQ for ActiveMQ Migration Guide Document History

    AWS glossary


Recommended