Open-source messaging and streaming server 2.15.2 (Apache-2.0) on Ubuntu 24.04: publish/subscribe, request/reply and persistent streams, with a login required on every connection and WebSocket access over HTTPS.
This AMI runs a lightweight open-source messaging and streaming server on Ubuntu 24.04 LTS: publish/subscribe, request/reply and queue groups for connecting services, plus persistent streams and key-value stores for messages that must survive restarts. It is the unmodified open-source release 2.15.2, pinned and baked into the AMI, so first start does not depend on a registry and nothing is downloaded when it starts. Persistent data is kept on disk on the instance.
What Perimattic adds
Closed by default: out of the box this kind of server accepts every client without a login. Here a user name and a random 24-character password are generated on your server at first login, and every connection must present them, on the native client port and on the WebSocket listener alike. The password is stored in the configuration only as a bcrypt hash. Setup checks that the login connects, publishes, subscribes and uses persistent streams, and that clients with no credentials, a wrong password, a token and common default logins (admin/admin, guest/guest and others) are refused, before the site is published.
No open ports to the internet: the native client port and the monitoring port are published on the server's loopback interface only. Remote clients connect over WebSocket through Apache on HTTPS (port 443, with a free Let's Encrypt certificate requested for your domain with certbot) with the same login, or through an SSH tunnel to the client port; the exact commands are printed at the end of setup. The tests open real WebSocket connections through Apache, refuse anonymous and wrong-password ones, and publish, subscribe and use persistent streams over them. Only ports 22, 80 and 443 are open.
Durable and sized: persistent streams are stored on disk, capped at 4 GB on disk and 256 MB in memory; the tests create a stream, reboot the server and read the message back. Messages are limited to 1 MB and connections to 512. The server runs as an unprivileged user. Users can be added by editing the configuration and reloading, which the tests also exercise. Pinned and patched: the version is fixed, not 'latest', and Ubuntu 24.04 LTS is built through an automated EC2 Image Builder pipeline with security updates applied at build time.
Limits you should know
There is one login with full access; per-user permissions need configuration edits. The native client port is not opened to the network and has no TLS: use the WebSocket address or the SSH tunnel. Monitoring has no login and stays on the server only. This is a single server: clustering, leaf nodes, MQTT and the system account are not enabled. In our tests the server used about 10 to 25 MB of memory (about 550 MB for the whole host), so a t3.small is a comfortable size.
Licence and attribution
Built on the open-source NATS (Apache-2.0 licence), unmodified. Not affiliated with, endorsed by, or sponsored by The Linux Foundation; NATS is a trademark of its owner.
Getting Started
Launch the AMI and open ports 22, 80 and 443 in the security group
SSH in and answer the setup prompts (domain and admin email)
Note the user name and password printed at the end of setup
Connect a client over WebSocket to your domain on port 443, or through the SSH tunnel, and publish your first message
A domain name with an A record pointing at the instance is required, because the WebSocket address is served over HTTPS.
Support
Managed and supported by Perimattic, a cloud infrastructure company with 13+ years of experience serving global clients. We offer free setup assistance, custom integrations, infrastructure consulting, and 24/7 support.
Highlights
Open-source messaging and streaming server 2.15.2 (Apache-2.0) pinned and pre-installed: publish/subscribe, request/reply, persistent streams, WebSocket clients.
Secure first login: every connection needs a generated 24-character password (stored as a bcrypt hash), the native and monitoring ports stay on loopback, remote clients use WebSocket over HTTPS or an SSH tunnel. Let's Encrypt through Apache.
Built on patched Ubuntu 24.04 LTS and supported by Perimattic: free setup assistance at aws-support@perimattic.com.
AWS Marketplace now accepts line of credit payments through the PNC Vendor Finance program. This program is available to select AWS customers in the US, excluding NV, NC, ND, TN, & VT.
Pricing is based on actual usage, with charges varying according to how much you consume. Subscriptions have no end date and may be canceled any time.
Additional AWS infrastructure costs may apply. Use the AWS Pricing Calculator to estimate your infrastructure costs.
If you are an AWS Free Tier customer with a free plan, you are eligible to subscribe to this offer. You can use free credits to cover the cost of eligible AWS infrastructure. See AWS Free Tier for more details. If you created an AWS account before July 15th, 2025, and qualify for the Legacy AWS Free Tier, Amazon EC2 charges for Micro instances are free for up to 750 hours per month. See Legacy AWS Free Tier for more details.
You pay by the hour based on the EC2 instance type you run this managed messaging and streaming server on. Each dimension names a specific instance size, grouped into families such as compute-optimized (c-series), memory-optimized (r- and x-series), storage-optimized (d- and i-series), general-purpose (m- and t-series), and accelerated compute (g-, p-, inf-, and trn-series). Larger sizes within a family carry more vCPU and memory, so your hourly rate scales with the capacity you choose. Billing is usage-based, so you pay only for the hours each instance runs. No upfront commitment applies.
Top-of-mind questions for buyers
What does one hourly unit cover, and am I charged when an instance is stopped?
Each unit is one running EC2 instance of the named type, billed per hour it runs. The rate reflects that instance's vCPU and memory. Fully stopped instances do not accrue software charges, since billing meters running time only. Underlying AWS storage fees may still apply while stopped.
Is this pay-as-you-go, or do I commit to a term upfront?
This is usage-based with no upfront commitment. You subscribe, launch an instance, and pay only for the hours it runs. You can change instance types or shut instances down at any time, and charges stop when the instance stops.
What does the managed service include at the software-hour rate?
The service handles provisioning, security patching, version upgrades, daily backups, and monitoring for the messaging and streaming server. Instances run on dedicated infrastructure in your chosen region. A full data export is available on request, so you can move to self-hosting without negotiation.
Tell us how we can improve this page, or report an issue with this product.
Give us feedbackReport a problem with this product or seller
Legal
Vendor terms and conditions
Upon subscribing to this product, you must acknowledge and agree to the terms and conditions outlined in the vendor's End User License Agreement (EULA).
Content disclaimer
Vendors are responsible for their product descriptions and other product content. AWS does not warrant that vendors' product descriptions or other product content are accurate, complete, reliable, current, or error-free.
An AMI is a virtual image that provides the information required to launch an instance. Amazon EC2 (Elastic Compute Cloud) instances are virtual servers on which you can run your applications and workloads, offering varying combinations of CPU, memory, storage, and networking resources. You can launch as many instances from as many different AMIs as you need.
Version release notes
Initial release.
Application: Messaging and Streaming Server 2.15.2 (container image pinned, baked into the AMI).
Base: Ubuntu 24.04 LTS, fully patched at build time, built by an automated EC2 Image Builder pipeline.
TLS: Apache reverse proxy with a Let's Encrypt certificate requested by certbot at first login.
Credentials are generated on the instance at first login; none are present in the image.
A user name and a random 24-character password are generated at first login and stored only as a bcrypt hash; every connection must present them, and setup verifies that unauthenticated, wrong-password, token and default logins are refused before the site is published.
Open-source release 2.15.2 (Apache-2.0, unmodified official image) runs as an unprivileged user; the native client and monitoring ports are on the loopback interface only; WebSocket clients connect through Apache over HTTPS.
Persistent streams are limited to 4 GB on disk and 256 MB in memory; clustering, leaf nodes, MQTT and the system account are not enabled.
Additional details
Usage instructions
Launch an Instance
From AWS Marketplace, click Continue to Subscribe and then Continue to Configuration to launch the AMI.
Choose the Recommended Instance Type
t3.small (2 GB of memory) is the recommended size: the server used about 10 to 25 MB in our tests and the whole host about 550 MB. Choose t3.medium or larger for many connections or large persistent streams.
Configure Security Group
Allow inbound traffic on the following ports:
22 (SSH) - terminal access for setup
80 (HTTP) - needed to validate your domain for the TLS certificate
443 (HTTPS) - access to Messaging and Streaming Server
Point a domain at the instance
Create a DNS A record (for example messaging.example.com) pointing to the instance's public IP before you log in.
Connect to the Instance
ssh -i <your-key.pem> ubuntu@<public-ip>
First-Login Setup
The first SSH login runs a guided setup:
Prompts for your domain and admin email and checks the DNS A record
Generates a random 24-character password on your server and writes only its bcrypt hash to the configuration
Starts the server, then checks that clients with no credentials, a wrong password, a token and default logins are refused, that the generated login connects, publishes, subscribes and uses persistent streams, and that the client and monitoring ports answer on the loopback interface only
Configures Apache as an HTTPS reverse proxy for the WebSocket listener and requests a Let's Encrypt certificate
Prints the user name and password and the connection commands; they are also stored in /opt/app/access.txt (root only)
If a step fails, fix the problem shown and log in again: the setup resumes where it stopped.
Access Messaging and Streaming Server
Note the user name admin and the password printed at the end of setup (view them again with:
sudo cat /opt/app/access.txt). The same file shows the WebSocket address (wss://<your-domain>) and the SSH
tunnel command for the native client port, and how to add users.
Credentials
Generated on your server, never shared between customers. View them again with:
sudo cat /opt/app/access.txt
Manage the Services
cd /opt/app
sudo docker compose ps
sudo docker compose restart
Persistent data is in /opt/app/data (persistent streams: up to 4 GB on disk); back it up or take EBS snapshots before upgrades. The native client port and the monitoring port are on the server's loopback interface only: use the WebSocket address on port 443 or an SSH tunnel.
Thank you for subscribing.
Need Support or Customization?
Perimattic's team can help with setup issues, custom features and integrations:
What We Help With:
Initial setup and configuration assistance (free)
Troubleshooting connectivity, performance, and backup issues
Custom development and integrations
Infrastructure consulting and architecture review
Migration planning from other solutions
Automation solutions and scaling guidance
Instance Sizing Guidance:
t2.medium or t3.medium: Development environments, small applications
m5.large: Production workloads with moderate traffic
m5.xlarge: High-traffic production deployments and larger datasets
For workload-specific sizing recommendations, contact our team for a free consultation.
Refunds and Issues:
If you experience any issues or need to request a refund, contact us at aws-support@perimattic.com and we will respond promptly.
AWS infrastructure support
AWS Support is a one-on-one, fast-response support channel that is staffed 24x7x365 with experienced and technical support engineers. The service helps customers of all sizes and technical abilities to successfully utilize the products and features provided by Amazon Web Services.
Production-ready Jenkins with full root access, automated backups, and security hardening - a self-hosted CI/CD server for build, test, and deployment automation on AWS.
Production-ready Jenkins with full root access, automated backups, and security hardening - a self-hosted CI/CD server for build, test, and deployment automation on AWS.
Self-hosted live streaming server 0.3.0 (MIT) with RTMP ingest, HLS playback and live chat on Ubuntu 24.04, behind HTTPS with a generated administrator password and a generated stream key. Allow TCP 1935 for your encoder.
Be the first to review this product. We've partnered with PeerSpot to gather customer feedback. You can share your experience by writing or recording a review, or scheduling a call with a PeerSpot analyst.