This is a list of our most frequently asked questions. For more information about CloudAMQP, or if you need any support, please visit our support page.
Please note that if you use our service via a marketplace, the answers to some of these s might not be applicable.
CloudAMQP offer managed RabbitMQ servers in the cloud. RabbitMQ is an open source, high throughput message queuing server. CloudAMQP supplies fully managed RabbitMQ servers and clusters, ranging from virtual hosts on a shared cluster to dedicated high performance HA clusters.
CloudAMQP has several monitoring tools that help clients address performance issues automatically and promptly. Alarms can also notify clients when resource consumption crosses critical thresholds.
RabbitMQ is a high performance messaging broker. It gives your applications a common platform to send and receive messages.
Messages can be sent across languages, platforms, and OS, which decouples your processes from each other and creates a highly scalable system. RabbitMQ implements the AMQP protocol. All AMQP client libraries work with CloudAMQP and there are AMQP client libraries for almost every platform on the market, including Ruby, Node.js, Java, Python, Clojure, and Erlang.
A beginner’s guide to RabbitMQ can be found in our blog: RabbitMQ for beginners - What is RabbitMQ?
A message is the data transported between the publisher and the consumer; essentially a message is a byte array with some headers on top.
Message queues provide an asynchronous communication protocol. They are used to transmit data between components in an architecture. The concept is that messages are put into a queue and then removed from the queue in a predefined order. Messages placed in the queue are stored until the recipient retrieves them. This way of handling messages decouples the sender from the receiver. The sender and the receiver of the message do not need to interact with the message queue at the same time.
A beginner’s guide about message queuing can be found in our blog: What is message queuing?
A message broker’s purpose is to handle incoming messages from applications and perform some action on them. These actions could, for example, be routed to one or many destinations, provide message routing depending on routing keys, to transform messages to an alternative representation or to respond to events or errors.
AMQP is a protocol for message-oriented middleware. The defining features of AMQP are message orientation, queuing, routing (including point-to-point and publish-and-subscribe), reliability and security. RabbitMQ implements the AMQP protocol. All AMQP client libraries work with CloudAMQP and there are AMQP client libraries for almost every platform out there, including Ruby, Node.js, Java, Python, Clojure, and Erlang.
A connection is a TCP connection between your application and the RabbitMQ broker.
A channel is a virtual connection inside a (TCP) connection. A channel is used to send AMQP commands to the broker. Publishing or consuming messages or subscribing to a queue are all done over a channel.
Imagine that you have a web service that receives many requests every second, where no request should get lost and all request processing is time-consuming. Further, imagine that your web service always has to be highly available and ready to receive a new request instead of being locked by the processing of previously received requests.
In this case, placing a queue between the web service and the processing service is the best way to achieve a successful outcome. The two processes will be decoupled and do not need to wait for each other. If you have a lot of requests coming in a short amount of time, the processing system will be able to process them all. The queue will persist requests if their number becomes really huge.
You can then imagine that your business and your workload is growing and you need to scale up your system. All that is needed to be done now is to add more workers to work off the queues faster.
In addition to providing a buffer between a web service and another processing service, message queues can be used for more advanced scenarios. RabbitMQ can be configured to route and distribute messages according to different rules and different processes. Messages can be added to different queues depending on how the messages should be handled. The processing systems can then process them at their leisure.
A message queue will keep the processes in your application separated and independent of each other. The first process will never need to invoke another process, post notifications to another process, or follow the process flow of the other processes. It can just put the message in the queue and then continue processing. The other processes can also handle their work independently. They can take the messages from the queue when they are able to process them.
This way of handling messages creates a system that is easy to maintain and easy to scale.
Instead of building a massive application, decoupling different concerns in your application and sending messages between them asynchronously is more streamlined. That way different parts of your application can evolve independently, be written in different languages and/or be maintained by separated developer teams.
Messages can be stored-and-forwarded or redelivered until the message is processed.
Instead of polling your data store, a message is published when new data is inserted. Interested parties will be notified immediately and your data store will be ready to answer qualified queries instead.
Message queueing is the key to making your application scale. As the workload goes up you only have to add more workers to work off the queues faster.
Message queues decouple your processes. If a process that is processing messages from the queue fails, other messages can still be added to the queue and be processed when the system has recovered.
Message queues enable asynchronous processing, meaning that it allows you to put a message in a queue without processing it immediately.
CloudAMQP is an excellent backend for real-time applications. Notifications and message streaming is handled very effectively by RabbitMQ, which is able to push thousands of messages per second.
Cloud-based messaging increases the speed of getting the application to the market. Developers can focus on the core part of their applications instead of managing and maintaining servers and queueing infrastructure, like updating and mirroring of clusters.
Developers who want to focus on the core part of their applications, instead of managing and maintaining servers and queueing infrastructure, are using CloudAMQP.
We have customers in a range from large enterprise businesses and startups to individual hobby developers.
You can change a plan in the console under Edit, but you can't move to or from shared plans (Little Lemur or Tough Tiger) to a dedicated plan in this way. When moving from a shared to a dedicated plan, we recommend that you use the queue federation as described in our guide for Cluster migration with RabbitMQ Queue Federation.
It depends. If you have a 2+ nodes cluster, there will be no downtime during the migration.
If you have a 1-node server, there will be downtime. How long it will take depends on the length of the queues you have, but it is usually a short downtime. Please note that messages, exchanges, and queues that are not durable and persistent will be lost during the migration.
Yes, but messages have to be published as "persistent" to durable queues for them to survive the upgrade (or any kind of restart). There will, however, be a minute or two of downtime while the instance is being upgraded.
You can delete an instance from the instances list page in the user interface. If you remove an instance, your queues, exchanges, bindings and all data associated with it will be deleted and we will not be able to restore them.
Please navigate to the UI at https://customer.cloudamqp.com/instance. Click Edit next to the instance and select Delete. After the instance is removed, you have the option to pay any outstanding invoice. Once your balance is current, you have the option to delete your Team (account) at https://customer.cloudamqp.com/team/settings.
Please let us know if you have any questions along the way.Queue alarms can be triggered to send notification emails to you and your co-workers when the number of messages in a queue reaches a certain threshold for a set amount of time.
Consumers Alarms can be triggered to send notification emails to you and your co-workers when a number of consumers for a queue is less than or equal to a set number of consumers, for a set amount of time.
(Only for dedicated instances) When the CPU alarm is enabled will you receive a notification email when you are using more than 80% of the available CPU for more than 15 minutes. You can change the level at which the alarm will trigger. It is recommended to enable CPU alarms, which is done through the Control Panel.
(Only for dedicated instances) When the Memory alarm is enabled you will receive a notification email when you are using more than 90% of the available memory for more than 15 minutes. The level can be changed. It is recommended to enable Memory alarms, which is done through the Control Panel. Note: This alarm is calculated from how much memory the underlying virtual machine is using, not what RabbitMQ is using.
Virtual Hosts (vhosts) make it possible to separate applications on one broker. You can isolate users, exchanges, queues, etc. to one specific vhost. You can separate environments, e.g. production to one vhost and staging to another vhost, within the same broker instead of setting up multiple brokers.
vhosts can be added to all dedicated instances. The downside of using a single instance is that there's no resource isolation between virtual hosts.
No, there are no queue or message limits on our dedicated plans. Our dedicated plans (Big Bunny and larger) are not artificially limited in any way, the maximum performance is determined by the underlying instance type.
Yes, if possible! Quorum queues aim to resolve both the performance and the synchronization failings of mirrored queues. Read more: The reasons you should switch to Quorum Queues.
See CloudAMQP Service Level Agreement (SLA).
You will need to take action to migrate to a larger plan or find the reasons for the high memory/CPU usage. "How to handle and avoid high CPU or Memory usage" is our blog post that describes how to handle and avoid high CPU or memory usage. Alarms can be activated to send notifications when you have high CPU or memory usage, information about that can be found in our monitoring pages. The alarms can be activated from the control panel of your instance.
Recommended reading: RabbtitMQ Best Practices.
See our Getting Started Guide. Our popular blog post RabbitMQ for Beginners is also a good place to start. Once you have created your account you can start queuing and processing by using any of the guides available here in the docs, depending on platform and language. These tutorials cover the basics of creating messaging applications using CloudAMQP.
Yes, custom RabbitMQ plugins can be enabled and disabled from the CloudAMQP Control Panel for dedicated plans, which is Big Bunny and larger. We do support custom plugin installation, send us an email or enter the chat and we will assist you.
All our plans have protocol support for AMQP, AMQPS, HTTPS, STOMP, and MQTT. Dedicated plans do also have support for WEB-STOMP.
No, you cannot access the nodes via SSH. Let us know if you need to perform any actions on the server and we will help you.
Yes by using port 443 and --SSL. Download the same rabbitmqadmin version as the RabbitMQ version in your cluster. (Can be downloaded from here: https://your_host.rmq.cloudamqp.com/cli/)
The example below shows how to list exchanges:
rabbitmqadmin --host=HOST --port=443 --ssl --vhost=VHOST --username=USERNAME --password=PASSWORD list exchangesNo, rabbitmqctl is only possible to run on the local machine. Use rabbitmqadmin instead, which is better and enabled remotely.
All multi-node clusters in AWS and Google Cloud have nodes in multiple availability zones and have automatic fail-over.
CloudAMQP does not support nodes in different regions. However, your nodes will be placed in different Availability Zones in AWS, but not in different regions. Let us know if that is a requirement. We can always help you set up a federation between two different nodes, but it's not always recommended.
There are no limitations in the number of channels per connection on our dedicated plans. We limit all shared plans to 200 channels per connection.
When an instance is marked as impaired by AWS it means that something is wrong with the instance, e.g., the underlying physical hardware was faulty or a piece of faulty network equipment cut off the network.
We automatically restart instances onto new hardware when this happens. All data is safe as long as you have persistent messages and durable queues.
This is not something we or you can prevent, it's all in the hands of AWS. It does happen but it's rare. However, a 2-node setup will keep your other node up and running when the first node needs to be replaced.
More information can be found in AWS's documentation: "Status checks for your instances"
See our blog post: Amazon VPC Peering with CloudAMQP.
Dedicated VPC is available as an extra option for our dedicated plans for $99. Create your cluster in a dedicated VPC, which asks you to select the VPC subnet. Make sure that it does not overlap with any VPC subnets you want to peer with.
As soon as you have created your instance you can go to your AWS console and create a VPC peering request. Necessary details about your CloudAMQP VPC can be found on the VPC tab in the CloudAMQP console.
When you have created the request it can be accepted from the VPC tab in the CloudAMQP console.
If you want to enable VPC features for a current cluster, you can do so by clicking Edit -> Enable VPC features in your cluster list. Note that we are unable to disable this feature once enabled.
To enable AWS PrivateLink, go to the CloudAMQP Console and the list of instances. Click Edit next to an instance and then PrivateLink. Enable PrivateLink and click Save. Go to the newly created menu item called PrivateLink and follow the configuration instructions.
If VPC is already enabled, there is no additional charge for PrivateLink. To add PrivateLink without previously having a VPC, the charge is $99 per month. If PrivateLink is disabled for any reason, there will only be a charge for the time it has been active.
For more details, see CloudAMQP adding support for AWS PrivateLink
RabbitMQ provides two types of federation: exchange and queue federation. A federated exchange can route messages published to an upstream server to a local queue. A federated queue allows a local consumer to receive messages from an upstream queue. A blog article about the RabbitMQ federation plugin, and how to set up federated exchanges can be found here: "The RabbitMQ federation plugin".
CloudAMQP is fully integrated with the following platforms:
CloudAMQP is available in following clouds and regions:
AF South 1 (Cape Town), AP East 1 (Hong Kong) *, AP NorthEast 1 (Tokyo) *, AP NorthEast 2 (Seoul) *, AP NorthEast 3 (Osaka), AP South 1 (Mumbai) *, AP South 2 (Hyderabad), AP SouthEast 1 (Singapore) *, AP SouthEast 2 (Sydney) *, AP SouthEast 3 (Jakarta), AP SouthEast 4 (Melbourne), AP SouthEast 5 (Malaysia), CA Central 1 (Canada) *, CA West 1 (Calgary), EU Central 1 (Frankfurt) *, EU Central 2 (Zurich), EU North 1 (Stockholm) *, EU South 1 (Milan), EU South 2 (Spain), EU West 1 (Ireland) *, EU West 2 (London) *, EU West 3 (Paris) *, IL Central 1 (Tel Aviv), ME Central 1 (UAE), ME South 1 (Bahrain) *, SA East 1 (São Paulo) *, US East 1 (Northern Virginia) *, US East 2 (Ohio) *, US West 1 (Northern California) *, US West 2 (Oregon) *
Amsterdam 3, Bangalore 1, Frankfurt 1, London 1, New York 3, San Francisco 3, Singapore 1, Sydney 1, Toronto 1
Asia East 1 (Taiwan) *, Asia East 2 (Hong Kong), Asia Northeast 1 (Tokyo), Asia Northeast 2 (Osaka), Asia Northeast 3 (Seoul), Asia South 1 (Mumbai), Asia South 2 (Delhi), Asia Southeast 1 (Singapore), Asia Southeast 2 (Jakarta), Australia Southeast 1 (Sydney), Australia Southeast 2 (Melbourne), Europe Central 2 (Warsaw), Europe North 1 (Finland), Europe Southwest 1 (Madrid), Europe West 1 (Belgium) *, Europe West 10 (Berlin), Europe West 12 (Turin), Europe West 2 (London), Europe West 3 (Frankfurt), Europe West 4 (Netherlands), Europe West 6 (Zürich), Europe West 8 (Milan), Europe West 9 (Paris), Me Central 1 (Doha), Me Central 2 (Dammam), Me West 1 (Tel Aviv), North America Northeast 1 (Montréal, Canada), North America Northeast 2 (Toronto, Canada), South America East 1 (São Paulo), South America West 1 (Santiago), US Central 1 (Iowa) *, US East 1 (South Carolina) *, US East 4 (North Virginia), US East 5 (Columbus), US South 1 (Dallas, Texas), US West 1 (Oregon), US West 2 (Los Angeles), US West 3 (Salt Lake City), US West 4 (Las Vegas)
Australia Central, Australia East, Australia Southeast, Brazil South, Canada Central, Canada East, Central India, Central US, East Asia, East US *, East US 2 *, France Central, Germany West Central, Israel Central, Italy North, Japan East, Japan West, Korea Central, Korea South, Mexico Central, North Central US, North Europe, Norway East, Poland Central, Qatar Central, South Africa North, South Central US, South India, Southeast Asia, Spain Central, Sweden Central *, Switzerland North, UAE North, UK South, UK West, West Central US, West Europe *, West US *, West US 2, West US 3
* Available regions for shared instances are marked with an asterisk
Your CloudAMQP instance is created in the same cloud and region as your Heroku account. If your application is located in AWS us-east-1, then your CloudAMQP instance is created in the same one.
Full information about web-stomp can be found at our web-stomp page or at RabbitMQ. Web-Stomp is a plugin to RabbitMQ which exposes a WebSockets server (with fallback) so that web browsers can communicate with your RabbitMQ server/cluster directly.
The Web-Stomp plugin can be enabled on all dedicated plans (launched after June 2014).
The Web-Stomp plugin can be enabled on all dedicated plans (launched since June 2014).
The length on the log in CloudAMQP is size-based, meaning that it can vary in size, but we can ensure that the log will be stored at least six weeks back in time.
Logs can also be sent to external log aggregators (like loggly and papertrail) where it can be stored for a specified amount of time.
Lemur instances that are abandoned/not used during the latest two months will be deleted. This will only happen if you haven’t published or subscribed one single message during that time.
You will receive a warning email before the instance is deleted, from where you have the option wake up the instance.
We do support TLS (SSL). In most clients it is easy to use TLS, just replace amqp:// with amqps:// in the URL. To force TLS for all clients, use the firewall to close the AMQP port (keep AMQPS).
All servers are configured with server certificates signed by a CA found in your default trust store.
All servers come with TLS version 1.2 and 1.3 enabled. Older versions can be enabled by request.
More details are found here: www.rabbitmq.com/ssl.html
Note: TLS will only secure messages during the transport. What we recommend for highly sensitive information (HIPAA, PCI etc) is that you encrypt your message bodies on your side and that you have a shared key between your publishers and your consumers.
We normally recommend using TLS with a server-side cert for encryption and then username/password authentication. It is possible to use client certificates, but it's not that easy to maintain a CA in terms of proper certificate generation, etc. We normally advise against it as the security benefits are questionable.
If you want to use client certificates we can help you install the public part of the CA on the server and enable peer verification, but you have to manage the certificate generation yourself.
All servers are using certificates issued by Let's Encrypt. Most operating systems and browsers comes with the Let's Encrypt root certificates built-in, read more at letsencrypt.org/certificates.
The root certificate CloudAMQP servers are using is ISRG Root X1. If you need, you can download it directly from https://letsencrypt.org/certs/isrgrootx1.pem or crt.sh.
Your server certificate is renewed seamlessly approximately every two months.
AMQP's messages are just byte arrays, you can send anything, encrypted or not.
Yes, for dedicated instances in AWS, Azure and Google Cloud.
A firewall lets you restrict access to your cluster so that only your servers will have access. You can also set up different ports for different ranges, so, for example, your servers can access port 5762 (AMQP), but the management interface is still open to all.
Configure a firewall for your cluster directly from our UI. You can specify an IP range and decide which ports that should be opened for that range. All other ports to your instance will be closed.
One message is counted as consumed when a message is published from your service to RabbitMQ or when one message is consumed from RabbitMQ.
If it feels like you are publishing/consuming fewer messages then specified in your CloudAMQP console and if you are using Celery - please check if you have disabled celery events. Celery recommended settings can be found in our "Getting started with Celery" guide. Have a look at CELERY_SEND_EVENTS, --without-gossip, -without-mingle and --without-heartbeat.
If you are not using Celery, send us an email and we will have a look at your instance.
The reset is performed the first day every month.
You will get warnings via email when you have used 70 and 100 percent of your allowed usage. With max connections you will be unable to establish new connections, existing connections are not affected.
It is only possible to manage users, virtual hosts and permissions on dedicated plans. A dedicated plan is Big Bunny or any plan larger than Big Bunny.
You are allowed a maxiumum of 49 free instances. If you need more instances, please upgrade to one of our paid plans. Customers with at least one paid instance are allowed a maximum of 650 free instances.
Yes, everything is included in the price. There is no extra cost or payment required for data traffic or to other platforms.
Billing occurs at the end of each month, and you are only charged for the time an instance has been available to you. As soon as you delete the instance you won't be charged for it anymore, i.e. if you had a Big Bunny (for $99/month) running for 15 days, then you will only be charged $49.50.
You also have the option to prepay an amount that suits your needs. If you'd like to avoid lots of small transactions, then prepayment is for you. A prepayment can be made for one to several months in advance*.
A customer subscribing to our plan Big Bunny equalling $99/month can choose to make a prepayment of $99*12 (and then skip being charged on a monthly basis for one whole year). The prepayment covers all plans the customer has on his/her account. So let's say that the customer in the example would add another Big Bunny plan to his/her account on month five, then the prepayment will cover both plans for three more months. After that, the customer's prepayment will have been fully spent.
You can pay with VISA, Mastercard, American Express, Maestro, JCB, Diners Club or Invoice/transfer. Contact us at billing@cloudamqp.com if you require invoicing. Payment options can be found under Billing information in the Control Panel. Please note that we don’t accept checks.
No discounts are available at this time.
No. There is no shipping cost since the service is shipped electronically.
No. The service is non-returnable.
You can choose to pay through credit card (due on charge date) or via wire transfers (NET15). If you would like us to enable manual invoicing via wire transfer - send us an email once you have added all information and we will enable it for you. Please note that we don’t accept checks.
Email sales@cloudamqp.com to receive an official quote. Include what plan you want, if the quote should include VPC or not, and the subscription period.
The service will be provided off-premise in a data center and region chosen on behalf of the customer. The data centers and regions currently provided can be found at CloudAMQP Plans & Pricing page.
Our billing is pro-rated, which means that our customers only pay for the time the service has been available to them and that the payment is done the month after delivery. Thus, you won’t receive your first invoice when the account has been created, you will receive it at the beginning of the upcoming month.
No. Our customers often change their plan while they are using our service, therefore it’s not convenient to pay for a year upfront. However, we do allow prepayments with credit. If you are a paying customer contact our customer support to activate prepayment. For more information, see Prepayments on CloudAMQP.
No. We don’t need any documents with signatures from you.
No. To safeguard customer data, active subscriptions aren’t deleted. For example, resellers that provide us with a PO for two months’ of the Happy Hippo plan are responsible for deleting the plan after the subscription expires. Otherwise, you will be charged for the extra time your data remains on the system.
It’s best to extend the current PO. If you need to have two separate PO’s for the subscriptions, you need to open a new account in order to make the subscriptions be billed separately.
Go to https://customer.cloudamqp.com/login and enter your email address. Fill out all the information in the billing section, such as billing address, email, etc. Please note that it’s important that we have your billing information registered and not the end-user information since you are our direct customer and not the end-user.
The PO number can be specified in the billing section under “billing notes”. Or send it to us, and we will add it for you.
You are free to create and delete instances once the billing information is set up. It’s up to you and the end-customer to decide who of you that will create the subscription specified in the PO.
Invite the end-customer to the account via https://customer.cloudamqp.com/team so that he/she can start using the service.
Change the role of the person that created your account to “Billing Manager”. By doing so, you can access all invoices of the account and update the billing information. But you will not be able to edit the customer's subscription. For more information, see: Manage instance access with Access Control List (ACL).
You don't have to worry about this error. We don't recommend client certs at the moment, it's hard to set up and doesn't necessarily increase the security. We use the username/password as authentication and authorization, just like any HTTPS-protected the website, the traffic is still fully encrypted and protected from MITM-attacks etc.
You don't have to worry about this error. We don't recommend client certs at the moment, it's hard to set up and doesn't necessarily increase the security. We use the username/password as authentication and authorization, just like any HTTPS-protected the website, the traffic is still fully encrypted and protected from MITM-attacks etc.
First of all, make sure that your tasks do not take a longer time to perform on the client-side than the timeout setting. The error could also indicate a network glitch or that the server or clients are overloaded and don't get to send heartbeats in time.
All CloudAMQP servers implement sensible TCP keepalive so AMQP Heartbeats are not necessary. Therefore, we recommend turning heartbeats off and rely on the underlying TCP keepalive. It's about the same thing but on the TCP/kernel level instead of on the protocol level.
If you are getting a ReferenceError in the RabbitMQ Management UI, usually after upgrading RabbitMQ, go ahead and clear the cache of your web browser and the error should be gone.
Yes. See CloudAMQP and General Data Protection Regulation (GDPR).
No separate agreement is required. Our Data Processing Agreement (DPA) for GDPR is an exhibit to our Terms of Service. Thus, our business relationship is automatically covered by a DPA when signing up for an account.
You have the right to see what personal information 84codes AB holds about you. You are entitled to be given a description of the information, what we use it for, who we might pass it onto, and any information we might have about the source of the information.
A subject access requests should be made via email to compliance@84codes.com
As the data controller, you decide where you want to host your data by choosing the data center and region. The data will not leave that region unless you choose to move it. In CloudAMQP ’s role as data controller, we may collect and store contact information, such as email address, and physical address, when customers sign up for our services or seek support help.
Your personal customer data (email and billing information) is stored in the US.
We are proud to be compliant with SOC 2 by AICPA. We have been audited against the Security (common criteria) and Availability Trust Services Criteria.
Our SOC 2 Type 2 report can be obtained under an NDA per request. Please send an email to compliance@cloudamqp.com.