Overview
This is a repackaged software product wherein additional charges apply for hardening, security configuration, and support.
WHAT IS APACHE KAFKA
Apache Kafka is the world's most widely deployed distributed event streaming platform, maintained by the Apache Software Foundation. It powers high-throughput, low-latency data pipelines, messaging, event sourcing and stream processing. Kafka 4.x runs entirely in KRaft mode (the Kafka Raft metadata protocol) - ZooKeeper has been removed - so this image ships a single, self-contained combined controller+broker node. This build ships the official Apache binary distribution (verified against the upstream SHA-512 checksum) on OpenJDK 21, as a non-root service. It contains ONLY the Apache-2.0 licensed distribution - no proprietary add-ons - so it is fully auditable with no vendor lock-in.
WHAT THIS AMI ADDS
Management UI:
- Kafbat UI (Apache-2.0) bundled as a systemd service - browse topics, consumer groups, messages and broker config from your browser
- The UI is bound to loopback behind an nginx TLS perimeter on port 443 with login-form authentication; the admin password is generated at first boot
Security hardening:
- Internal broker listener bound to 127.0.0.1:9092 (PLAINTEXT, used only by the bundled UI) - never exposed off-box
- External clients connect over a SASL_SSL listener on port 9093 (SCRAM-SHA-256 authentication + TLS); the client user, password and self-signed broker keystore are generated uniquely at first boot
- All first-boot secrets written to /root/kafka-credentials.txt and /root/kafka-client.properties (mode 600) - nothing sensitive is baked into the image
- Runs as a non-root kafka system user with UMask 0027; JVM heaps set explicitly
- UFW firewall pre-configured (only ports 22, 443 and 9093 open)
- certbot pre-installed - one command swaps the self-signed UI cert for a CA-signed one
- 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
- auditd, fail2ban, AppArmor, SSH key-only, kernel hardening, IMDSv2 enforced
Compliance artifacts:
- SBOM - CycloneDX 1.6 at /etc/lynxroute/sbom.json
- CIS Conformance Report at /etc/lynxroute/cis-report.html
- CIS Tailored Profile at /usr/share/doc/lynxroute/CIS_TAILORED_PROFILE.md
Highlights
- Kafka security baked in: the internal broker listener is loopback-bound, external clients authenticate over a SASL_SSL listener (SCRAM + TLS) with a user generated at first boot, and the bundled Kafbat UI sits behind an nginx TLS perimeter with login-form auth on 443.
- 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.
- Official Apache Kafka 4.x in KRaft mode (no ZooKeeper) on OpenJDK 21, with the Kafbat UI management console. 100% Apache-2.0 - no proprietary components, no vendor lock-in.
Details
Introducing multi-product solutions
You can now purchase comprehensive solutions tailored to use cases and industries.
Features and programs
Financing for AWS Marketplace purchases
Pricing
Free trial
Dimension | Cost/hour |
|---|---|
t3.large Recommended | $0.03 |
t3.medium | $0.02 |
m6i.xlarge | $0.05 |
m6i.large | $0.03 |
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?
Legal
Vendor terms and conditions
Content disclaimer
Delivery details
64-bit (x86) Amazon Machine Image (AMI)
Amazon Machine Image (AMI)
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
Apache Kafka 4.3.0 - Initial release (June 2026)
- Apache Kafka 4.3.0 on Ubuntu 24.04 LTS (KRaft mode, no ZooKeeper, OpenJDK 21)
- Kafbat UI management console (Apache-2.0) bundled as a systemd service
- CIS Level 1 hardening applied (ansible-lockdown/UBUNTU24-CIS)
- CVE-scanned before every release
- Internal broker listener bound to 127.0.0.1:9092; Kafbat UI behind nginx TLS on 443
- External clients over a SASL_SSL listener on 9093 (SCRAM-SHA-256); user + keystore generated at first boot
- Kafbat UI admin password generated at first boot; login-form authentication
- Runs as non-root kafka user (UMask 0027); JVM heaps set explicitly
- certbot pre-installed for CA-signed TLS certificates
- UFW firewall pre-configured (ports 22, 443, 9093 only)
- fail2ban, auditd, AppArmor pre-configured
- SBOM (CycloneDX 1.6) at /etc/lynxroute/sbom.json
- CIS Conformance Report (OpenSCAP) at /etc/lynxroute/cis-report.html
- IMDSv2 enforced
Additional details
Usage instructions
- Launch instance (t3.large recommended; t3.medium minimum)
- Open Security Group - allow TCP 443 (Kafbat UI) and TCP 9093 (Kafka clients) from your IP
- SSH: ssh -i key.pem ubuntu@<PUBLIC_IP>
- Read credentials: sudo cat /root/kafka-credentials.txt
- Open https://<PUBLIC_IP>/ in your browser - accept the self-signed certificate warning, then log in to the Kafbat UI with user admin and the password from the credentials file. Browse topics, create topics, and inspect messages.
- Connect an external Kafka client over the SASL_SSL listener on port 9093 using the generated SCRAM user. The client config is written to /root/kafka-client.properties: sudo /opt/kafka/bin/kafka-console-producer.sh --bootstrap-server <PUBLIC_IP>:9093 --command-config /root/kafka-client.properties --topic demo sudo /opt/kafka/bin/kafka-console-consumer.sh --bootstrap-server <PUBLIC_IP>:9093 --command-config /root/kafka-client.properties --topic demo --from-beginning
- Replace the self-signed UI TLS certificate with a CA-signed one for production: sudo certbot --nginx -d yourdomain.com
The broker runs single-node KRaft (no ZooKeeper). The internal PLAINTEXT listener is bound to 127.0.0.1:9092 and used only by the bundled Kafbat UI. The external SASL_SSL listener on 9093 requires SCRAM authentication. JVM heaps are set explicitly in the systemd units.
Resources
Vendor resources
Support
Vendor support
Visit us online: https://lynxroute.com
For Kafka documentation:
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.
Similar products
