This is a repackaged open source software product wherein additional charges apply for hardening, security configuration, and setup support.
NATS is a cloud-native messaging system for connecting services, devices and edge systems, shipped here as a single statically linked Go binary with JetStream persistence built in. This Lynxroute build is hardened and ready out of the box: TLS required on the client port, per-instance account passwords generated at first boot and stored as bcrypt hashes, anonymous connections refused, the unauthenticated monitoring endpoint bound to loopback only, JetStream persisted to disk with limits sized to the instance, UFW firewall pre-configured, and a CIS Level 1 hardened Ubuntu 24.04 LTS base.
Apache-2.0 license - fully auditable, no vendor lock-in.
This is a repackaged open source software product wherein additional charges apply for hardening, security configuration, and setup support.
WHAT IS NATS
NATS(R) is a cloud-native messaging system for connecting services, devices and edge systems, hosted by the Cloud Native Computing Foundation. It is a single statically linked Go binary with no database, no broker cluster and no separate runtime to install alongside it. The core server provides publish/subscribe over hierarchical subjects, request/reply with automatic load balancing across queue groups, and queue-group work distribution at very low latency. JetStream, built into the same binary, adds persistence: streams that retain messages on disk, durable pull and push consumers with explicit acknowledgement and replay, plus a key-value store and an object store layered on top. Client libraries exist for more than forty languages, so services written in Go, Java, Python, C#, Rust, Node.js and others share one bus. Messages, streams and consumer positions persist to the instance filesystem - there is no external database to run. Apache-2.0 license, no vendor lock-in.
WHAT THIS AMI ADDS
Security hardening:
TLS required on the client port - 4222 accepts TLS only; there is no cleartext path in or out and no second unencrypted port
Per-instance account passwords generated on first launch and stored as bcrypt hashes, so no two instances of this AMI share a credential
Anonymous connections refused - there is no unauthenticated-user mapping, so a client without valid credentials is rejected at connect
Two isolated accounts - a messaging account that owns JetStream and a separate system account for server administration; neither can reach the other's namespace
Monitoring endpoint bound to 127.0.0.1 only - these endpoints are unauthenticated by design, so they are reachable over an SSH tunnel rather than published
JetStream persisted to the instance volume with storage limits sized from the instance's own disk and memory, so a runaway stream cannot fill the root volume
Per-instance TLS certificate generated on first launch, carrying the instance addresses, and reissued automatically if the public address changes
UFW firewall pre-configured - only TCP 4222 and SSH on 22 are open; cluster, gateway and leafnode ports are not configured
fail2ban and AppArmor pre-configured
CVE scan - every image is scanned for vulnerabilities before release
OS hardening (CIS Level 1):
CIS Ubuntu 24.04 LTS Level 1 benchmark applied via ansible-lockdown
CIS Conformance Report at /etc/lynxroute/cis-report.html
CIS Tailored Profile at /usr/share/doc/lynxroute/CIS_TAILORED_PROFILE.md
This image is built and maintained by Lynxroute and is not affiliated with, endorsed by or sponsored by the Linux Foundation, the Cloud Native Computing Foundation or Synadia.
Highlights
NATS security baked in: TLS required on the client port with no cleartext path, per-instance account passwords generated at first launch and stored as bcrypt hashes, anonymous connections refused, and the unauthenticated monitoring endpoint bound to loopback only.
CIS Level 1 hardened Ubuntu 24.04 LTS: auditd, fail2ban, AppArmor, SSH key-only, IMDSv2 enforced. CVE-scanned before every release. SBOM (CycloneDX) and CIS Conformance Report included.
Messaging plus persistence in one binary: pub/sub, request/reply and queue groups, with JetStream streams, durable consumers, key-value and object stores persisted to disk. Apache-2.0 license - fully auditable, no vendor lock-in.
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.
Try this product free for 5 days according to the free trial terms set by the vendor. Usage-based pricing is in effect for usage beyond the free trial terms. Your free trial gets automatically converted to a paid subscription when the trial ends, but may be canceled any time before that.
NATS - Hardened Message Broker with JetStream Persistence
You pay by the hour based on the EC2 instance size you choose to run this hardened message broker image. Five options map to different instance types. The t3 options (t3.small, t3.medium, t3.large) are burstable general-purpose sizes that scale up in capacity. The m6i options (m6i.large, m6i.xlarge) are fixed general-purpose sizes with more compute. Larger instances carry a higher hourly rate. You are billed only for the hours each instance runs. You also pay separate AWS infrastructure charges.
Top-of-mind questions for buyers
What does one billing unit, an instance-hour, actually cover for this message broker image?
One instance-hour means one hour of a single running EC2 instance with the hardened broker image deployed. The image bundles the message broker, operating system hardening, and compliance artifacts. Each running instance meters its own hours separately. Running several instances adds their hours together on one invoice.
Am I charged when the instance is stopped or powered off?
Software charges meter running hours only, so a fully stopped instance accrues no hourly software fee. You still pay separate AWS infrastructure charges, such as storage for the attached volume, while the instance exists in a stopped state. Billing resumes when you start the instance again.
What is not included in the hourly price, and who handles billing and refunds?
The hourly price covers the software image only. You pay separate AWS infrastructure charges for compute, storage, and network. All fees are set, collected, and refunded by the marketplace, not the vendor. Support covers deployment and configuration, but not custom development or your wider cloud environment.
lynxroute.com
Helpful?
Vendor refund policy
We do not offer refunds for this product. AWS infrastructure charges (EC2, EBS, data transfer) are billed separately by AWS and are not refundable by us.
How can we make this page better?
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
NATS 2.15.1
NATS Server updated 2.15.0 -> 2.15.1, a bugfix release. Apache-2.0 unchanged
Security: closes a window where subscription deny permissions were not enforced, enforces queue deny rules on mapped subjects and validates JWT subject mappings
Built with Go 1.27.2
Rebuilt on the latest CIS Level 1 hardened Ubuntu 24.04 LTS base, picking up every operating-system security update published since the previous build
Additional details
Usage instructions
Launch instance (t3.medium recommended)
Open Security Group - add TCP 22 from your own admin IP (for example 203.0.113.4/32). The recommended rules cover private RFC1918 ranges only; a default VPC is 172.31.0.0/16 and matches neither, so without this step you cannot reach step 5.
Open Security Group - allow TCP 4222 from the networks that need to publish and subscribe
TLS is mandatory on port 4222 - a plain nats:// client is refused at the handshake, and there is no second cleartext port. Anonymous connections are refused.
The TLS certificate is self-signed and generated on your instance at first launch. Point clients at it with --tlsca, or replace it with your own PKI.
The monitoring endpoint is bound to 127.0.0.1 and is unauthenticated by design. Reach it over an SSH tunnel: ssh -L 8222:127.0.0.1:8222 ubuntu@<PUBLIC_IP>
Credentials are saved to /root/nats-credentials.txt at first launch. Move them into your secret manager and delete the file before production use.
JetStream data persists under /var/lib/nats/jetstream and survives a reboot. Back it up - it holds every persisted message and consumer position.
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.