Component: mq-broker
This component is responsible for provisioning an AmazonMQ broker and corresponding security group.
Usage
Stack Level: Regional
Here's an example snippet for how to use this component.
components:
terraform:
mq-broker:
vars:
enabled: true
apply_immediately: true
auto_minor_version_upgrade: true
deployment_mode: "ACTIVE_STANDBY_MULTI_AZ"
engine_type: "ActiveMQ"
engine_version: "5.15.14"
host_instance_type: "mq.t3.micro"
publicly_accessible: false
general_log_enabled: true
audit_log_enabled: true
encryption_enabled: true
use_aws_owned_key: true
Variables
Required Variables
region
(string
) requiredAWS Region
Optional Variables
allowed_cidr_blocks
(list(string)
) optionalList of CIDR blocks that are allowed ingress to the broker's Security Group created in the module
Default value:
[ ]
allowed_security_groups
(list(string)
) optionalList of security groups to be allowed to connect to the broker instance
Default value:
[ ]
apply_immediately
(bool
) optionalSpecifies whether any cluster modifications are applied immediately, or during the next maintenance window
Default value:
false
audit_log_enabled
(bool
) optionalEnables audit logging. User management action made using JMX or the ActiveMQ Web Console is logged
Default value:
true
auto_minor_version_upgrade
(bool
) optionalEnables automatic upgrades to new minor versions for brokers, as Apache releases the versions
Default value:
false
deployment_mode
(string
) optionalThe deployment mode of the broker. Supported: SINGLE_INSTANCE and ACTIVE_STANDBY_MULTI_AZ
Default value:
"ACTIVE_STANDBY_MULTI_AZ"
encryption_enabled
(bool
) optionalFlag to enable/disable Amazon MQ encryption at rest
Default value:
true
engine_type
(string
) optionalType of broker engine,
ActiveMQ
orRabbitMQ
Default value:
"ActiveMQ"
engine_version
(string
) optionalThe version of the broker engine. See https://docs.aws.amazon.com/amazon-mq/latest/developer-guide/broker-engine.html for more details
Default value:
"5.15.14"
existing_security_groups
(list(string)
) optionalList of existing Security Group IDs to place the broker into. Set
use_existing_security_groups
totrue
to enable usingexisting_security_groups
as Security Groups for the brokerDefault value:
[ ]
general_log_enabled
(bool
) optionalEnables general logging via CloudWatch
Default value:
true
host_instance_type
(string
) optionalThe broker's instance type. e.g. mq.t2.micro or mq.m4.large
Default value:
"mq.t3.micro"
kms_mq_key_arn
(string
) optionalARN of the AWS KMS key used for Amazon MQ encryption
Default value:
null
kms_ssm_key_arn
(string
) optionalARN of the AWS KMS key used for SSM encryption
Default value:
"alias/aws/ssm"
maintenance_day_of_week
(string
) optionalThe maintenance day of the week. e.g. MONDAY, TUESDAY, or WEDNESDAY
Default value:
"SUNDAY"
maintenance_time_of_day
(string
) optionalThe maintenance time, in 24-hour format. e.g. 02:00
Default value:
"03:00"
maintenance_time_zone
(string
) optionalThe maintenance time zone, in either the Country/City format, or the UTC offset format. e.g. CET
Default value:
"UTC"
mq_admin_password
(string
) optionalAdmin password
Default value:
null
mq_admin_user
(string
) optionalAdmin username
Default value:
null
mq_application_password
(string
) optionalApplication password
Default value:
null
mq_application_user
(string
) optionalApplication username
Default value:
null
overwrite_ssm_parameter
(bool
) optionalWhether to overwrite an existing SSM parameter
Default value:
true
publicly_accessible
(bool
) optionalWhether to enable connections from applications outside of the VPC that hosts the broker's subnets
Default value:
false
ssm_parameter_name_format
(string
) optionalSSM parameter name format
Default value:
"/%s/%s"
ssm_path
(string
) optionalSSM path
Default value:
"mq"
use_aws_owned_key
(bool
) optionalBoolean to enable an AWS owned Key Management Service (KMS) Customer Master Key (CMK) for Amazon MQ encryption that is not in your account
Default value:
true
use_existing_security_groups
(bool
) optionalFlag to enable/disable creation of Security Group in the module. Set to
true
to disable Security Group creation and provide a list of existing security Group IDs inexisting_security_groups
to place the broker intoDefault value:
false
Context Variables
The following variables are defined in the context.tf
file of this module and part of the terraform-null-label pattern.
context.tf
file of this module and part of the terraform-null-label pattern.additional_tag_map
(map(string)
) optionalAdditional tags for appending to tags_as_list_of_maps. Not added to
tags
.
Required: NoDefault value:
{ }
attributes
(list(string)
) optionalAdditional attributes (e.g.
1
)
Required: NoDefault value:
[ ]
context
(any
) optionalSingle object for setting entire context at once.
See description of individual variables for details.
Leave string and numeric variables asnull
to use default value.
Individual variable settings (non-null) override settings in context object,
except for attributes, tags, and additional_tag_map, which are merged.Required: No
Default value:
{
"additional_tag_map": {},
"attributes": [],
"delimiter": null,
"enabled": true,
"environment": null,
"id_length_limit": null,
"label_key_case": null,
"label_order": [],
"label_value_case": null,
"name": null,
"namespace": null,
"regex_replace_chars": null,
"stage": null,
"tags": {}
}delimiter
(string
) optionalDelimiter to be used between
namespace
,environment
,stage
,name
andattributes
.
Defaults to-
(hyphen). Set to""
to use no delimiter at all.Required: No
Default value:
null
enabled
(bool
) optionalSet to false to prevent the module from creating any resources
Required: NoDefault value:
null
environment
(string
) optionalEnvironment, e.g. 'uw2', 'us-west-2', OR 'prod', 'staging', 'dev', 'UAT'
Required: NoDefault value:
null
id_length_limit
(number
) optionalLimit
id
to this many characters (minimum 6).
Set to0
for unlimited length.
Set tonull
for default, which is0
.
Does not affectid_full
.Required: No
Default value:
null
label_key_case
(string
) optionalThe letter case of label keys (
tag
names) (i.e.name
,namespace
,environment
,stage
,attributes
) to use intags
.
Possible values:lower
,title
,upper
.
Default value:title
.Required: No
Default value:
null
label_order
(list(string)
) optionalThe naming order of the id output and Name tag.
Defaults to ["namespace", "environment", "stage", "name", "attributes"].
You can omit any of the 5 elements, but at least one must be present.Required: No
Default value:
null
label_value_case
(string
) optionalThe letter case of output label values (also used in
tags
andid
).
Possible values:lower
,title
,upper
andnone
(no transformation).
Default value:lower
.Required: No
Default value:
null
name
(string
) optionalSolution name, e.g. 'app' or 'jenkins'
Required: NoDefault value:
null
namespace
(string
) optionalNamespace, which could be your organization name or abbreviation, e.g. 'eg' or 'cp'
Required: NoDefault value:
null
regex_replace_chars
(string
) optionalRegex to replace chars with empty string in
namespace
,environment
,stage
andname
.
If not set,"/[^a-zA-Z0-9-]/"
is used to remove all characters other than hyphens, letters and digits.Required: No
Default value:
null
stage
(string
) optionalStage, e.g. 'prod', 'staging', 'dev', OR 'source', 'build', 'test', 'deploy', 'release'
Required: NoDefault value:
null
tags
(map(string)
) optionalAdditional tags (e.g.
map('BusinessUnit','XYZ')
Required: NoDefault value:
{ }
Outputs
broker_arn
AmazonMQ broker ARN
broker_id
AmazonMQ broker ID
primary_amqp_ssl_endpoint
AmazonMQ primary AMQP+SSL endpoint
primary_console_url
AmazonMQ active web console URL
primary_ip_address
AmazonMQ primary IP address
primary_mqtt_ssl_endpoint
AmazonMQ primary MQTT+SSL endpoint
primary_ssl_endpoint
AmazonMQ primary SSL endpoint
primary_stomp_ssl_endpoint
AmazonMQ primary STOMP+SSL endpoint
primary_wss_endpoint
AmazonMQ primary WSS endpoint
secondary_amqp_ssl_endpoint
AmazonMQ secondary AMQP+SSL endpoint
secondary_console_url
AmazonMQ secondary web console URL
secondary_ip_address
AmazonMQ secondary IP address
secondary_mqtt_ssl_endpoint
AmazonMQ secondary MQTT+SSL endpoint
secondary_ssl_endpoint
AmazonMQ secondary SSL endpoint
secondary_stomp_ssl_endpoint
AmazonMQ secondary STOMP+SSL endpoint
secondary_wss_endpoint
AmazonMQ secondary WSS endpoint
Dependencies
Requirements
terraform
, version:>= 0.13.0
aws
, version:>= 3.0
local
, version:>= 1.3
template
, version:>= 2.2
utils
, version:>= 1.10.0
Modules
Name | Version | Source | Description |
---|---|---|---|
eks | 1.5.0 | cloudposse/stack-config/yaml//modules/remote-state | n/a |
iam_roles | latest | ../account-map/modules/iam-roles | n/a |
mq_broker | 0.14.0 | cloudposse/mq-broker/aws | n/a |
this | 0.24.1 | cloudposse/label/null | n/a |
vpc | 1.5.0 | cloudposse/stack-config/yaml//modules/remote-state | n/a |
References
- cloudposse/terraform-aws-components - Cloud Posse's upstream component