Skip to content
GitHubXDiscordRSS

Broker

Learn how to create, update, and manage AWS AmazonMQ Brokers using Alchemy Cloud Control.

The Broker resource allows you to manage AWS AmazonMQ Brokers for messaging services in the cloud.

Create a basic AmazonMQ Broker with required properties and a couple of common optional settings.

import AWS from "alchemy/aws/control";
const basicBroker = await AWS.AmazonMQ.Broker("myBasicBroker", {
BrokerName: "my-amazonmq-broker",
HostInstanceType: "mq.m5.large",
Users: [
{
Username: "admin",
Password: "SecurePassword123!",
ConsoleAccess: true,
Groups: ["admins"]
}
],
PubliclyAccessible: true,
DeploymentMode: "SINGLE_INSTANCE",
EngineType: "ACTIVEMQ",
EngineVersion: "5.15.14"
});

Configure an AmazonMQ Broker with advanced settings, including logging, maintenance windows, and data replication.

const advancedBroker = await AWS.AmazonMQ.Broker("myAdvancedBroker", {
BrokerName: "my-advanced-broker",
HostInstanceType: "mq.m5.large",
Users: [
{
Username: "user1",
Password: "AnotherSecurePassword456!",
ConsoleAccess: true,
Groups: ["developers"]
}
],
PubliclyAccessible: true,
DeploymentMode: "ACTIVE_STANDBY_MULTI_AZ",
EngineType: "RABBITMQ",
EngineVersion: "3.8.9",
Logs: {
General: true,
Audit: true
},
MaintenanceWindowStartTime: {
DayOfWeek: "SUNDAY",
TimeOfDay: "05:00:00",
TimeZone: "UTC"
},
DataReplicationPrimaryBrokerArn: "arn:aws:mq:us-east-1:123456789012:broker:my-replica-broker"
});

Set up an AmazonMQ Broker with LDAP server metadata and encryption options for enhanced security.

const secureBroker = await AWS.AmazonMQ.Broker("mySecureBroker", {
BrokerName: "my-secure-broker",
HostInstanceType: "mq.t3.medium",
Users: [
{
Username: "secureUser",
Password: "SuperSecurePassword789!",
ConsoleAccess: true,
Groups: ["secureGroup"]
}
],
PubliclyAccessible: false,
DeploymentMode: "SINGLE_INSTANCE",
EngineType: "ACTIVEMQ",
EngineVersion: "5.15.14",
LdapServerMetadata: {
Hosts: ["ldap.example.com"],
Port: 389,
UserDN: "cn=admin,dc=example,dc=com",
Password: "ldapAdminPassword"
},
EncryptionOptions: {
UseAwsOwnedKey: true,
KmsKeyId: "arn:aws:kms:us-east-1:123456789012:key/my-kms-key"
}
});

Create an AmazonMQ Broker with custom configuration and tags for resource organization.

const taggedBroker = await AWS.AmazonMQ.Broker("myTaggedBroker", {
BrokerName: "my-tagged-broker",
HostInstanceType: "mq.m5.large",
Users: [
{
Username: "taggedUser",
Password: "TaggedPassword123!",
ConsoleAccess: true,
Groups: ["taggedGroup"]
}
],
PubliclyAccessible: true,
DeploymentMode: "SINGLE_INSTANCE",
EngineType: "RABBITMQ",
EngineVersion: "3.8.9",
Tags: [
{
Key: "Environment",
Value: "Production"
},
{
Key: "Project",
Value: "MessagingService"
}
]
});