Cluster migration can be done in different ways depending on requirements and plans.
Go to the CloudAMQP control panel and press Edit and change plan seamlessly.
If you want to scale your cluster, go to the CloudAMQP control panel and press Edit. You can add or remove nodes and change plan all together.
There is no automatic upgrade/downgrade between shared and dedicated plans.
If seamless migration is not required just create a new instance and move your clients:
The RabbitMQ Federation plugin can be used when migrating to another cluster without stopping all producers and consumers while doing so.
Queue federation connects an upstream queue and transfers messages to the downstream queue when there's consumers that has capacity on the downstream queue. Consumers and publishers can be moved in any order. Messages are transfered to the new cluster when your consumers are there. The federated queue will only retrieve messages when it has run out of messages locally, when it has consumers that need messages and when the upstream queue has "spare" messages that are not being consumed. Upstream servers are the servers towards messages are originally published. Downstream servers are where the messages get forwarded to.
Create a policy that matches the queues that you would like to federate
A policy is a pattern that queue names are matched against. The "pattern" argument is a regular expression used to match queue (or exchange) names. Example: We can tell the policy to federate all queues whose names begin with "metric.".
Navigate to 'Admin' -> 'Policies' and press 'Add / update a policy'
to create the policy.
A policy can apply to an upstream set or a single upstream of exchanges and/or queues. In this example we apply to all upstreams, federation-upstream-set is set to all.
NOTE: Policies are matched every time an exchange or queue is created.
Open the management interface for the downstream server and go to the 'Admin'->'Federation Upstreams' screen and press 'Add a new upstream'. Fill in all information needed, the URI should be the URI of the upstream server.
Leave expiry time and TTL blank. Leaving this blank means that it will stay "forever".
The queues can be created as you always create your queues (i.e manually from the management interface or from the application code). The queues should be marked as federated if the policy is applied, like in the image below. If the queues are not marked as federated, control that the regexp is working.
Read more about cluster migration in our blog post about Queue Federation in RabbitMQ.