Amazon Linux on AWS
In this section we walk you through the steps to manually get a basic messaging configuration of the Solace PubSub+ software message broker Docker container up-and-running on an Amazon Linux AMI instance in AWS Elastic Compute Cloud (EC2).
It's assumed you have:
- An Amazon EC2 account.
- A stable version of Docker Engine installed.
The number of CPUs and system memory required by your message broker depends on the number of client connections you need to support. By default, fresh installations of the message broker allow up to 100 client connections by default.
The following table lists the minimum number of CPUs and the minimum value of the total memory that must be provisioned for each connection scaling tier.
Minimum System Resources Required For Connection Scaling Tiers
|Client Connections||CPUs||A = System Memory (GiB)||B = Provisioned Swap Space or Additional System Memory (GiB)||
Total Memory Required (GiB)
(A + B)
|up to 100*||2||1||1||2|
|up to 1,000||2||4||2||6|
|up to 10,000||minimum of 4||12||2||14|
|up to 100,000||minimum of 8||28||2||30|
|up to 200,000||minimum of 12||56||2||58|
*The monitoring node in a high-availability (HA ) group needs only 1 CPU. For production deployments, a minimum of 2 CPUs and 4 GiB of system memory must be provisioned for all messaging nodes.
The example shown on this page is suitable for use for up to the 1,000 connection scaling tier, and is appropriately configured for testing and PoC activities. If you plan to use your message broker in a production environment, or scale above the 1,000 client connections tier, you should note that there are a number of adjustments that will be need to be made to the example and you should consult the following topics:
- General information applicable to Solace PubSub+ software message broker Docker container configuration can be found at: Topics Unique to Docker Images.
- Information about setting the client scaling tier can be found at: Scaling Message Broker Docker Containers
- Information about configuring storage volumes can be found at: Externalizing the Message Spool & Diagnostics
Use the EC2 Dashboard’s Launch Instance wizard to create an Amazon Machine Image that you can use to run a message broker.
- On the main page of the EC2 Dashboard, select the Launch Instance button.
Follow the setup wizard, and accept the recommended default settings except as noted in the following steps.
- In the Choose AMI step, choose an Amazon Machine Image (AMI) from the AWS Marketplace for the host:
For an Amazon Linux host, Amazon Linux AMI 2016.09.1 (HVM), SDD Volume Type is recommended.
- In the Choose an Instance Type step, select an Instance Type based on the connection scaling tier information presented in the System Requirements section.
- In the Configure Instance Details step, set Subnet to your availability zone.
- In the Add Storage step, set the instance’s storage size and volume type.
The amount of storage to attach to the instance depends on your application. Both SSD volume types, General Purpose and Provisioned IOPS, are supported.
For test deployments, a minimum of 30 GB and General Purpose SSD are recommended.
- In the Tags step, assign a name to your instance.
You can add as many tags as required by your application.
- At a minimum, it is recommended that the security group include the following inbound rules.
Type Protocol Port Range Source Custom TCP Rule TCP 8080 0.0.0.0/0 Custom TCP Rule TCP 55555 0.0.0.0/0 SSH TCP 22 0.0.0.0/0
These port numbers are used for the following services: 22-Host SSH; 8080-SEMP / PubSub+ Manager / SolAdmin; 55555-SMF/non-compressed message data connections. Other ports can be opened as required. For a list of ports associated with message broker services, see Configuration Defaults.
- Once you have completed the launch wizard steps, and have logged into your host, go ahead with installing and configuring Docker. Instructions can be found on the AWS Docker Basics Web page.
You should note that if you are using a t2.medium instance type, a swap file must be created once the host is up-and-running. Follow these instructions:
>sudo mkdir /var/lib/solace
>sudo dd if=/dev/zero of=/var/lib/solace/swap count=2048 bs=1MiB
>sudo mkswap -f /var/lib/solace/swap
>sudo chmod 0600 /var/lib/solace/swap
>sudo swapon -f /var/lib/solace/swap
>sudo grep -q 'solace\/swap' /etc/fstab || sudo sh -c 'echo "/var/lib/solace/swap none swap sw 0 0" >> /etc/fstab'
For an upstart based Amazon Linux AMI system, add a line to
/etc/sysconfig/docker for setting the
devicemapper Docker daemon options.
For test deployments, it is recommended to set
false and the
devicemapper. Docker should be stopped before making this change.
You will need to get a Solace PubSub+ software message broker Docker package, which is a compressed tar archive containing a message broker Docker repository consisting of a single message broker Docker image.
- Solace PubSub+ Standard : Go to the Downloads page of dev.solace.com. Then select the docker link from Solace PubSub+ Standard. You will be able to download a compressed archive file called
- Solace PubSub+ Enterprise Evaluation Edition: Go to the Downloads page of dev.solace.com. Then select the docker link from Solace PubSub+ Enterprise Evaluation Edition. You will be able to download a compressed archive file called
- Solace PubSub+ Enterprise: If you have purchased Solace PubSub+ Enterprise, Solace will give you information for how to download a compressed tar archive package from a secure Solace server. Contact Solace Support at email@example.com if you require assistance.
Once you have your Docker package, you can upload it to a directory on your host and load the image using these steps:
- Start Docker:
>sudo service docker start
You can use the
statuscommand to check the status of Docker.
>sudo service docker status
- Load the image:
>sudo docker load -i /tmp/solace-pubsub-standard-<version>-docker.tar.gz
In this example, it has been assumed that the compressed tar archive of Solace PubSub+ Standard has been uploaded to
When loading is finished, you can check the image with the
>sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
solace-pubsub-standard 8.x.x.x 529588fc82ce 4 days ago 856.6 MB
There are many options that you can set with the
docker create command that is used to build the message broker container. In this example we will show one that sets up a simple configuration suitable for a test deployment that can be used to help you become familiar with Solace PubSub+.
- Create a
>sudo tee /root/docker-create <<-EOF
sudo docker create \
--ulimit core=-1 \
--ulimit memlock=-1 \
--ulimit nofile=2448:42192 \
--env 'username_admin_globalaccesslevel=admin' \
--env 'username_admin_password=admin' \
For production deployments, there are use-case dependent factors that will impact the option and configuration key settings in the
docker createcommand. For example, the POSIX shared memory size,
nofilevalues must be set based on the connection scaling tier. For more information, see Docker Create Options Configuration, Topics Unique to Docker Images, and Connection Scaling Tiers.
In this example, the
adminSolace CLI user and an associated password are defined at container creation through the
username_admin_passwordconfiguration keys. By default, in a message broker container, no Solace CLI users are defined, so setting these configuration keys allows the container to be administered through the Solace SolAdmin management tool without first entering the Solace CLI to create an
In the above
docker createcommand, the repository name is
solace-pubsub-<edition>. The values of
<version>are dependent on the message broker Docker package you previously obtained. For example, if you downloaded version 220.127.116.112 of Solace PubSub+ Standard, the value of
- Make the
>sudo chmod +x /root/docker-create
Create and run the message broker container on your host.
- Create the container:
Once it’s done running, a long identifier will be displayed that looks something like this:
This is the ID for the message broker container you have just created.
- Start the message broker:
>sudo docker start solace
You can use the
docker pscommand to check on the status of the message broker once it’s running.
>sudo docker ps
STATUScolumn associated with the message broker will display if the container is running and for how long.
You now have a message broker container with a basic configuration that is ready for messaging tasks. To get yourself going, you can access either of the Solace management tools PubSub+ Manager or Solace CLI to start issuing configuration or monitoring commands.
To access the Solace PubSub+ Manager:
- Open a browser and enter http://<your-message broker's-ip-address>:8080.
- Log in as user
To access the Solace CLI:
Enter the following
>sudo docker exec -it solace /usr/sw/loads/currentload/bin/cli -A
Type the following commands to enter configuration mode:
- For a list of Solace CLI commands currently supported on the message broker, refer to Software Message Broker CLI Commands.
There are additional configuration tasks you can make use of in the following topics:
- Connection Scaling Tiers—Learn about connection scaling tiers available for message brokers.
- Topics Unique to Docker Images—Learn to prepare the message broker for a variety of messaging functions.
Also, in order to fully utilize Solace's message broker features, you should familiarize yourself with the configuration operations common to both Solace PubSub+ software message brokers and appliances. For information, see the topics in the Configuration section.