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.8.1 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

  1. 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, follow the instructions in Migrating the Storage-Group to External Storage to move them. As an example, this procedure assumes that the event broker has its storage-elements assigned to a single external storage volume.
  2. 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.

  3. 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.
  4. #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.

  5. 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.

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

  1. Log into the event broker as sysadmin.
  2. Switch to root user:
  3. [sysadmin@solace ~]$ sudo su –

  4. Stop the solace service:
  5. [root@solace ~]$ solacectl service stop

  6. Stop the Instance in the AWS Management Console.
  7. Create a Snapshot of the Volume specified in the Prerequisites and give it a suitable description.
  8. Choose AMI

  9. Launch a new Instance using the new AMI named solace-pubsub-enterprise-<version>.
    1. Choose an Instance Type that is the same or larger.
    2. On the Configure Instance Details screen, set the same Network, Subnet, and IAM role as before.
    3. Under the Network interfaces section, select the elastic network interface specified in Prerequisites.
    4. Choose AMI

    5. Under the Advanced Details section, enter the user data specified in Prerequisites into the User data block.
    6. Choose AMI

      The device name for each storage-element must start with an “s”.

    7. 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.
    8. Choose AMI

    9. Review and Launch the new Instance. When the event broker restarts, it will be running the configuration and message-spool from the previous version.
  10. Log into the event broker as admin and confirm that it's running the new version:
  11. solace> show version

  12. Terminate the stopped Instance from step 4 in the AWS Management Console.

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.8.1 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

  1. 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, follow the instructions in Migrating the Storage-Group to External Storage to move them. As an example, this procedure assumes that each event broker has its storage-elements assigned to its own, single external storage volume.
  2. 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.

  3. 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.
  4. #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.

  5. 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.

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.

  1. Log into each node as an admin user.
  2. Ensure the Redundancy Configuration Status is Enabled, and the Redundancy Status is Up on each node. On solace-primary the Message Spool Status should be AD-Active, and on solace-backup the Message Spool Status should be AD-Standby:
  3. 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
    
  4. Log out and log back into solace-monitor as sysadmin.
  5. Switch to root user:
  6. [sysadmin@solace ~]$ sudo su –

  7. Stop the solace service:
  8. [root@solace ~]$ solacectl service stop

  9. Stop the solace-monitor Instance in the AWS Management Console.
  10. Create a Snapshot of the Volume specified in Prerequisites for solace-monitor and give it a suitable description.
  11. Choose AMI

  12. Launch a new Instance for solace-monitor using the new AMI named solace-pubsub-enterprise-<version>.
    1. Choose an Instance Type that is the same or larger.
    2. On the Configure Instance Details screen, set the same Network, Subnet, and IAM role as before.
    3. Under the Network interfaces section, select the elastic network interface specified in Prerequisites for solace-monitor.
    4. Choose AMI

    5. Under the Advanced Details section, enter the user data specified in Prerequisites into the User data block for solace-monitor.
    6. Choose AMI

      The device name for each storage-element must start with an “s”.

    7. 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.
    8. Choose AMI

    9. Review and Launch the new Instance. When solace-monitor restarts, it will be running the configuration and message-spool from the previous version.
  13. Log into solace-monitor and confirm that it's running the new version:
  14. solace-monitor> show version

  15. Ensure Redundancy Status is Up on solace-monitor:
  16. solace-monitor> show redundancy 
    Configuration Status     : Enabled
    Redundancy Status        : Up	
  17. Log into solace-backup as an admin user.
  18. Ensure Redundancy Configuration Status is Enabled and Redundancy Status is Up on solace-backup:
  19. solace-backup> show redundancy 
    Configuration Status     : Enabled
    Redundancy Status        : Up	
  20. Optional: If using Config-Sync, ensure that it's in sync:
  21. solace-backup> show config-sync
    Admin Status            : Enabled
    Oper Status             : Up
    
  22. Terminate the stopped Instance from step 6 in the AWS Management Console.
  23. Log out and log back into the solace-backup as sysadmin
  24. Switch to root user:
  25. [sysadmin@solace ~]$ sudo su –

  26. 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.
  27. Stop the solace service:
  28. [root@solace ~]$ solacectl service stop

  29. Stop the solace-backup Instance in the AWS Management Console.
  30. Create a Snapshot of the Volume specified in Prerequisites for solace-backup and give it a suitable description.
  31. Choose AMI

  32. Launch a new Instance for solace-backup using the new AMI named solace-pubsub-enterprise-<version>.
    1. Choose an Instance Type that is the same or larger.
    2. On the Configure Instance Details screen, set the same Network, Subnet, and IAM role as before.
    3. Under the Network interfaces section, select the elastic network interface specified in Prerequisites for solace-backup.
    4. Choose AMI

    5. Under the Advanced Details section, enter the user data specified in Prerequisites into the User data block for solace-backup.
    6. Choose AMI

      The device name for each storage-element must start with an “s”.

    7. 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.
    8. Choose AMI

    9. Review and Launch the new Instance. When solace-backup restarts, it will be running the configuration and message-spool from the previous version.
  33. Log into solace-backup and confirm that it's running the new version:
  34. solace-backup> show version

  35. Ensure Redundancy Status is Up on solace-backup:
  36. solace-backup> show redundancy 
    Configuration Status     : Enabled
    Redundancy Status        : Up
  37. Optional: If using Config-Sync, ensure solace-backup is in sync:
  38. solace-backup> show redundancy 
    Message Spool Status             AD-Standby
  39. If solace-backup provides AD service, ensure the Message Spool Status is AD-Standby:
  40. solace-backup> show redundancy 
    Message Spool Status             AD-Standby	
  41. Terminate the stopped Instance from step 19 in the AWS Management Console.
  42. Log into solace-primary as an admin user.
  43. Release activity from solace-primary to solace-backup:
  44. solace-primary> enable
    solace-primary> configure
    solace-primary> redundancy release-activity

  45. On solace-primary, ensure Redundancy Configuration Status is Enabled-Released and Redundancy Status is Down:
  46. solace-primary> show redundancy 
    Configuration Status     : Enabled-Released
    Redundancy Status        : Down	
  47. On solace-backup, ensure Redundancy Configuration Status is Enabled, Redundancy Status is Down, and the Activity Status on the Backup Virtual Router is Local Active.
  48. solace-backup> show redundancy 
    Configuration Status     : Enabled
    Redundancy Status        : Down
    				Primary Virtual    Backup Virtual
    				Router             Router
    				---------------    ---------------
    Activity Status                Shutdown           Local Active
    
  49. Log out and log back into solace-primary as sysadmin.
  50. Switch to root user:
  51. [sysadmin@solace ~]$ sudo su –

  52. 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.
  53. Stop the solace service:
  54. [root@solace ~]$ solacectl service stop

  55. Stop the solace-primary Instance in the AWS Management Console.
  56. Create a Snapshot of the Volume specified in Prerequisites for solace-primary and give it a suitable description.
  57. Choose AMI

  58. Launch a new Instance for solace-primary using the new AMI named solace-pubsub-enterprise-<version>.
    1. Choose an Instance Type that is the same or larger.
    2. On the Configure Instance Details screen, set the same Network, Subnet, and IAM role as before.
    3. Under the Network interfaces section, select the elastic network interface specified in Prerequisites for solace-primary.
    4. Choose AMI

    5. Under the Advanced Details section, enter the user data specified in Prerequisites into the User data block for solace-primary.
    6. Choose AMI

      The device name for each storage-element must start with an “s”.

    7. 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.
    8. Choose AMI

    9. Review and Launch the new Instance. When solace-primary restarts, it will be running the configuration and message-spool from the previous version.
  59. Log into solace-primary and confirm that it's running the new version:
  60. solace-primary> show version

  61. No release activity from solace-primary:
  62. solace-primary> enable
    solace-primary> configure
    solace-primary> no redundancy release-activity

  63. Ensure Redundancy Status is Up on solace-primary:
  64. solace-primary> show redundancy 
    Configuration Status     : Enabled
    Redundancy Status        : Up
    
  65. Optional: If using Config-Sync, ensure that it's in sync:
  66. solace-primary> show config-sync
    Admin Status            : Enabled
    Oper Status             : Up	
  67. If the node provides AD service, ensure the Message Spool Status is AD-Standby:
  68. solace-primary> show redundancy 
    Message Spool Status             AD-Standby		
  69. Terminate the stopped Instance from step 35 in the AWS Management Console.

You have completed this procedure.

The backup is now active and the primary is standby.