AWS Upgrade
On this page you'll find upgrade procedures for event broker AWS images.
Upgrade a Standalone AWS Cloud Image
The Solace PubSub+ software event broker Amazon Machine Image (AMI) uses the Amazon Linux OS. Solace recommends an instance replacement upgrade if you're using the AWS AMI, which will result in a newly created AWS instance for the upgraded event broker.
Starting Versions & Upgrade Paths
The starting version of your event broker must be release 9.12.0 or later to upgrade.
The procedure shown in this section describes an Enterprise to Enterprise upgrade.
On non-Enterprise event brokers, the following upgrades are also supported:
- from Evaluation to Enterprise
- from Standard to Standard
- from Standard to Enterprise
For upgrades between other editions, launch the upgraded instance using the Solace AMI package for the corresponding event broker edition.
Prerequisites
- In order to preserve configuration and spooled messages, all storage-elements must be on one or more external storage volumes. Each storage-element is described in Managing Software Event Broker Storage. If any of your storage-elements aren't on an external storage volume, move them. As an example, this procedure assumes that the event broker has its storage-elements assigned to a single external storage volume.
- The Cloud-Init user data that was used when the software event broker was initialized in Initializing the Configuration for AWS are required for this procedure. All the Solace storage keys on external storage must be included. In the example below, the Cloud-Init user data is from Initializing the Configuration for AWS, and includes Solace storage keys on the
sdf
device. - You need a static IP or DNS name associated with the instance. This procedure assumes that either the AWS instance is associated with an AWS elastic network interface, or, if you're using private addresses, Route 53 is used to assign a static DNS name to the instance. The network interface should have a name, and its termination behavior should be set to false. To associate an AWS instance with an elastic network interface that's associated with an elastic IP, refer to Elastic IP Addresses. To associate a Route 53 entry to the AWS instance IP, refer to DNS support for your VPC.
To review the list of available block devices and volumes, run the solacectl storage ls
command, then check the block devices and storage volumes columns in the output.
#cloud-config
solace:
configuration_keys:
username_admin_globalaccesslevel: admin
username_admin_password: adminpwd
service_ssh_port: 22
service_semp_port: 8080
storage:
adb:
device: sdf
adbBackup:
device: sdf
diagnostics:
device: sdf
internalSpool:
device: sdf
jail:
device: sdf
var:
device: sdf
The user data, excluding the Solace storage keys, can be retrieved from the instance by using the http://<broker-IP>/latest/user-data
URI. For more information, refer to Instance Metadata and User Data.
User accounts (username/passwords) for support/root container users aren't transferred during the upgrade procedure, and must be manually applied to the new event broker instance.
If applicable, SolGeneos and its dependencies must be manually re-installed on the new event broker instance.
Procedure
- Log into the event broker as sysadmin.
- Switch to root user:
- Stop the solace service:
- Stop the Instance in the AWS Management Console.
- Create a Snapshot of the Volume specified in the Prerequisites and give it a suitable description.
- Launch a new Instance using the new AMI named
solace-pubsub-enterprise-<version>
. - Choose an Instance Type that is the same or larger.
- On the Configure Instance Details screen, set the same Network, Subnet, and IAM role as before.
- Under the Network interfaces section, select the elastic network interface specified in Prerequisites.
- Under the Advanced Details section, enter the user data specified in Prerequisites into the User data block.
- On the Add Storage screen, add an additional Volume, and set the Device specified in the user data in step 2, the Snapshot from step 5, and the Size to the same or larger Size.
- Review and Launch the new Instance. When the event broker restarts, it will be running the configuration and message-spool from the previous version.
- Log into the event broker as admin and confirm that it's running the new version:
- Terminate the stopped Instance from step 4 in the AWS Management Console.
[sysadmin@solace ~]$ sudo su –
[root@solace ~]$ solacectl service stop
The device name for each storage-element must start with an “s”.
solace> show version
You have completed this procedure.
Upgrade a Redundant AWS Cloud Image Group
The Solace PubSub+ software event broker Amazon Machine Image (AMI) uses the Amazon Linux OS. Solace recommends an instance replacement upgrade for all members of a redundant HA group if the group is using the AWS AMI, which will result in newly created AWS instances for each group member.
Starting Versions & Upgrade Paths
The starting version of your event brokers must be release 9.12.0 or later to upgrade.
The procedure shown in this section describes an Enterprise to Enterprise upgrade.
On non-Enterprise event brokers, the following upgrades are also supported:
- from Evaluation to Enterprise
- from Standard to Standard
- from Standard to Enterprise
For upgrades between other editions, launch the upgraded instance using the Solace AMI package for the corresponding event broker edition.
Prerequisites
- In order to preserve configuration and spooled messages, all storage-elements on each event broker in the group must be on one or more external storage volumes. Each storage-element is described in Managing Software Event Broker Storage. If any of your storage-elements aren't on an external storage volume, move them. As an example, this procedure assumes that each event broker has its storage-elements assigned to its own, single external storage volume.
- The Cloud-Init user data that was used when the software event brokers were initialized in Initializing the Configuration for AWS are required for this procedure. All the Solace storage keys on external storage must be included. In the example below, the Cloud-Init user data is from Initializing the Configuration for AWS, and includes Solace storage keys on the
sdf
device. - You need a static IP or DNS name associated with each instance in the group. This procedure assumes that either the AWS instance is associated with an AWS elastic network interface, or, if you're using private addresses, Route 53 is used to assign a static DNS name to the instance. The network interface should have a name, and its termination behavior should be set to false. To associate an AWS instance with an elastic network interface that's associated with an elastic IP, refer to Elastic IP Addresses. To associate a Route 53 entry to the AWS instance IP, refer to DNS support for your VPC.
To review the list of available block devices and volumes, run the solacectl storage ls
command, then check the block devices and storage volumes columns in the output.
#cloud-config
solace:
configuration_keys:
username_admin_globalaccesslevel: admin
username_admin_password: adminpwd
service_ssh_port: 22
service_semp_port: 8080
storage:
adb:
device: sdf
adbBackup:
device: sdf
diagnostics:
device: sdf
internalSpool:
device: sdf
jail:
device: sdf
var:
device: sdf
The user data, excluding the Solace storage keys, can be retrieved from the instance by using the http://<broker-IP>/latest/user-data
URI. For more information, refer to Instance Metadata and User Data.
User accounts (username/passwords) for support/root container users aren't transferred during the upgrade procedure, and must be manually applied to the new event broker instance.
If applicable, SolGeneos and its dependencies must be manually re-installed on the new event broker instance.
Procedure
In the following procedure, we refer to the primary node as solace-primary
, the backup node as solace-backup
, and the monitoring node as solace-monitor
.
It is important to reboot the three software event brokers one at time. If the Monitoring and Backup Nodes are offline at the same time, the Primary Node will automatically reboot.
- Log into each node as an admin user.
- Ensure the Redundancy Configuration Status is
Enabled
, and the Redundancy Status isUp
on each node. Onsolace-primary
the Message Spool Status should beAD-Active
, and onsolace-backup
the Message Spool Status should beAD-Standby
: - Log out and log back into
solace-monitor
as sysadmin. - Switch to root user:
- Stop the solace service:
- Stop the
solace-monitor
Instance in the AWS Management Console. - Create a Snapshot of the Volume specified in Prerequisites for
solace-monitor
and give it a suitable description. - Launch a new Instance for
solace-monitor
using the new AMI namedsolace-pubsub-enterprise-<version>
. - Choose an Instance Type that is the same or larger.
- On the Configure Instance Details screen, set the same Network, Subnet, and IAM role as before.
- Under the Network interfaces section, select the elastic network interface specified in Prerequisites for
solace-monitor
. - Under the Advanced Details section, enter the user data specified in Prerequisites into the User data block for
solace-monitor
. - On the Add Storage screen, add an additional Volume and set the Device specified in the user data in step 2 of the Prerequisites, the Snapshot from step 7, and the Size to the same or larger Size.
- Review and Launch the new Instance. When
solace-monitor
restarts, it will be running the configuration and message-spool from the previous version. - Log into
solace-monitor
and confirm that it's running the new version: - Ensure Redundancy Status is
Up
onsolace-monitor
: - Log into
solace-backup
as an admin user. - Ensure Redundancy Configuration Status is
Enabled
and Redundancy Status isUp
onsolace-backup
: - Optional: If using Config-Sync, ensure that it's in sync:
- Terminate the stopped Instance from step 6 in the AWS Management Console.
- Log out and log back into the
solace-backup
as sysadmin - Switch to root user:
- Optional: If you're using MQTT retained messages in your deployment, verify that your retain cache instances are synchronized. For more information, refer to Verifying Retain Cache Redundancy.
- Stop the solace service:
- Stop the
solace-backup
Instance in the AWS Management Console. - Create a Snapshot of the Volume specified in Prerequisites for
solace-backup
and give it a suitable description. - Launch a new Instance for
solace-backup
using the new AMI namedsolace-pubsub-enterprise-<version>
. - Choose an Instance Type that is the same or larger.
- On the Configure Instance Details screen, set the same Network, Subnet, and IAM role as before.
- Under the Network interfaces section, select the elastic network interface specified in Prerequisites for
solace-backup
. - Under the Advanced Details section, enter the user data specified in Prerequisites into the User data block for
solace-backup
. - On the Add Storage screen, add an additional Volume and set the Device specified in the user data in step 2 of the Prerequisites, the Snapshot from step 20, and the Size to the same or larger Size.
- Review and Launch the new Instance. When
solace-backup
restarts, it will be running the configuration and message-spool from the previous version. - Log into
solace-backup
and confirm that it's running the new version: - Ensure Redundancy Status is
Up
onsolace-backup
: - Optional: If using Config-Sync, ensure
solace-backup
is in sync: - If
solace-backup
provides AD service, ensure the Message Spool Status isAD-Standby
: - Terminate the stopped Instance from step 19 in the AWS Management Console.
- Log into
solace-primary
as an admin user. - Release activity from
solace-primary
tosolace-backup
: - On
solace-primary
, ensure Redundancy Configuration Status isEnabled-Released
and Redundancy Status isDown
: - On
solace-backup
, ensure Redundancy Configuration Status isEnabled
, Redundancy Status isDown
, and the Activity Status on the Backup Virtual Router isLocal Active
. - Log out and log back into
solace-primary
as sysadmin. - Switch to root user:
- Optional: If you're using MQTT retained messages in your deployment, verify that your retain cache instances are synchronized. For more information, refer to Verifying Retain Cache Redundancy.
- Stop the solace service:
- Stop the
solace-primary
Instance in the AWS Management Console. - Create a Snapshot of the Volume specified in Prerequisites for
solace-primary
and give it a suitable description. - Launch a new Instance for
solace-primary
using the new AMI namedsolace-pubsub-enterprise-<version>
. - Choose an Instance Type that is the same or larger.
- On the Configure Instance Details screen, set the same Network, Subnet, and IAM role as before.
- Under the Network interfaces section, select the elastic network interface specified in Prerequisites for
solace-primary
. - Under the Advanced Details section, enter the user data specified in Prerequisites into the User data block for
solace-primary
. - On the Add Storage screen, add an additional Volume and set the Device specified in the user data in step 2 of the Prerequisites, the Snapshot from step 36, and the Size to the same or larger Size.
- Review and Launch the new Instance. When
solace-primary
restarts, it will be running the configuration and message-spool from the previous version. - Log into
solace-primary
and confirm that it's running the new version: - No release activity from
solace-primary
: - Ensure Redundancy Status is
Up
onsolace-primary
: - Optional: If using Config-Sync, ensure that it's in sync:
- If the node provides AD service, ensure the Message Spool Status is
AD-Standby
: - Terminate the stopped Instance from step 35 in the AWS Management Console.
solace-primary> show redundancy Configuration Status : Enabled Redundancy Status : Up Operating Mode : Message Routing Node Switchover Mechanism : Hostlist Auto Revert : No Redundancy Mode : Active/Standby Active-Standby Role : Primary Mate Router Name : solace-backup ADB Link To Mate : Up ADB Hello To Mate : Up Primary Virtual Backup Virtual Router Router --------------- --------------- Activity Status Local Active Shutdown Routing Interface intf0:1 intf0:1 Routing Interface Status Up VRRP Status Initialize VRRP Priority 250 Message Spool Status AD-Active Priority Reported By Mate Standby solace-backup> show redundancy Configuration Status : Enabled Redundancy Status : Up Operating Mode : Message Routing Node Switchover Mechanism : Hostlist Auto Revert : No Redundancy Mode : Active/Standby Active-Standby Role : Backup Mate Router Name : solace-primary ADB Link To Mate : Up ADB Hello To Mate : Up Primary Virtual Backup Virtual Router Router --------------- --------------- Activity Status Shutdown Mate Active Routing Interface intf0:1 intf0:1 Routing Interface Status Up VRRP Status Initialize VRRP Priority 100 Message Spool Status AD-Standby Priority Reported By Mate Active solace-monitor> show redundancy Configuration Status : Enabled Redundancy Status : Up Operating Mode : Monitoring Node Switchover Mechanism : Hostlist Auto Revert : No
[sysadmin@solace ~]$ sudo su –
[root@solace ~]$ solacectl service stop
The device name for each storage-element must start with an “s”.
solace-monitor> show version
solace-monitor> show redundancy Configuration Status : Enabled Redundancy Status : Up
solace-backup> show redundancy Configuration Status : Enabled Redundancy Status : Up
solace-backup> show config-sync Admin Status : Enabled Oper Status : Up
[sysadmin@solace ~]$ sudo su –
[root@solace ~]$ solacectl service stop
The device name for each storage-element must start with an “s”.
solace-backup> show version
solace-backup> show redundancy Configuration Status : Enabled Redundancy Status : Up
solace-backup> show redundancy Message Spool Status AD-Standby
solace-backup> show redundancy Message Spool Status AD-Standby
solace-primary> enable
solace-primary> configure
solace-primary> redundancy release-activity
solace-primary> show redundancy Configuration Status : Enabled-Released Redundancy Status : Down
solace-backup> show redundancy Configuration Status : Enabled Redundancy Status : Down Primary Virtual Backup Virtual Router Router --------------- --------------- Activity Status Shutdown Local Active
[sysadmin@solace ~]$ sudo su –
[root@solace ~]$ solacectl service stop
The device name for each storage-element must start with an “s”.
solace-primary> show version
solace-primary> enable
solace-primary> configure
solace-primary> no redundancy release-activity
solace-primary> show redundancy Configuration Status : Enabled Redundancy Status : Up
solace-primary> show config-sync Admin Status : Enabled Oper Status : Up
solace-primary> show redundancy Message Spool Status AD-Standby
You have completed this procedure.
The backup is now active and the primary is standby.