FerroDruid is a Rust-native, Apache-Druid-compatible real-time OLAP database that runs as a single JVM-free, ZooKeeper-free binary and boots in under a second on under 200 MB of RAM. This listing delivers a hardened, AWS-security-scanned AMI of FerroDruid v1.2.0. Now source-available under BUSL-1.1.
FerroDruid is a Rust-native, Apache-Druid-spec-compatible real-time OLAP database. It speaks the Druid REST API, native query JSON, and Druid SQL, and it reads Apache Druid segment v9 binary files (read compatibility verified against segments written by Druid 31.0.2 and 35.0.1, on local disk) - without a JVM, without ZooKeeper, and without a six-process control plane to operate. A classic Apache Druid cluster needs six or more JVM processes plus ZooKeeper plus an external metadata database, and 16 GB or more of RAM, before it serves a single query. FerroDruid's single-binary mode replaces all of that with one process that starts in under a second, uses under 200 MB of RAM, and ships as a self-contained AMI. What FerroDruid does today (v1.2.0): it serves all eight Druid native query types (timeseries, topN, groupBy, scan, search, segmentMetadata, dataSourceMetadata, timeBoundary); it runs Druid SQL with SELECT, WHERE, GROUP BY, HAVING, ORDER BY, LIMIT, more than 30 functions, EXPLAIN PLAN FOR, and an MSQ task endpoint (core SQL parity approximately 95 percent); it exposes more than 40 Druid-compatible REST endpoints; it reads Apache Druid segment v9 binaries - verified against segments written by Druid 31.0.2 and 35.0.1 - and writes segments in its own native format (the supported single-binary path uses SQLite metadata plus local-filesystem deep storage); it ingests from Kafka and Kinesis supervisors and via native batch; and it enforces Basic authentication (Argon2id) with role-based access control on by default and TLS via rustls. Admin password security: on first boot the AMI generates a NEW RANDOM admin password UNIQUE to that instance (never a default or shared password) and writes it once to the instance system log. The admin account is flagged must-change, so EVERY API endpoint returns HTTP 403 until the operator rotates the password by POSTing a new one to /druid-ext/basic-security/authentication/db/basic/users/admin/credential; the rotated credential is persisted and survives restarts. This enforces a password change on first login. Hardening posture: every crate uses forbid(unsafe_code); clippy is clean at -D warnings workspace-wide; 57k+ test functions in-tree; 21 fuzz targets on a continuous 24h farm; CycloneDX SBOM in CI; cargo-audit 0 advisory. Live wire deep-match is clean against Apache Druid 31.0.2, 32.0.1, 33.0.0, 34.0.0, 35.0.1 and 36.0.0: on each version, 42 of 48 deep-compared queries match byte-for-byte with 0 mismatches (Sections 1 through 4 are 30 of 30 deep on every version), plus 5 of 5 with an Apache Superset connector; Druid 30.0.1 is the one partial version at 24 of 48, where every diff is Druid 30's own upstream empty-result behaviour for SQL window functions, not a FerroDruid defect. New in v1.2.0: SQL UNION ALL with Druid-compatible positional column mapping; a null-generation load path so NULL-typed columns round-trip faithfully; fail-closed Historical segment routing with exact O(1) cache-limit accounting; and a verified read of a real Apache Druid v9 segment round-tripped through real AWS S3 deep storage. 3-host EC2 nemesis matrix (sym-partition, asym-partition, leader-kill, disk-full, OOM, corrupted-segment, clockskew multi-host) all PASS at the safety layer with dup_leader_terms=0 term_regressions=0 recovery_ok=1. Cluster-wire mTLS election-storm root-caused (Wave 2 W2-E) and source-fixed (Wave 2 continuation B1+B2): cluster-wire promotions per second collapsed from 0.93-1.20 to 0.19 on same-shape 3-host c7g.large re-fire, a 4.9x reduction, within 19 percent of the PSK-baseline 0.16 per second. Honest scope: single-binary mode is the supported Marketplace topology, with the multi-node classic 6-role topology in scope in-tree; multi-node deployments fail closed by default. Per-version residuals and honest limitations are disclosed in docs/known-limitations.md. Honest limitations carried forward for v1.x are enumerated in the release notes and in the in-tree docs/known-limitations.md file: CL-A1-R-mTLS-residual-churn (post-fix 0.19 per second cluster-wide steady-state, safety intact), CL-1.0-in-memory-raft (single-binary Raft log is in-memory), CL-A1-R-oomkill-choom-need-workload-rss, CL-5-R-longrun-chaos-2h-window, TG-1-finding-W2A-1-index-drd, CL-1-R1 multi-broker Kafka MSK, CL-B5 mTLS CRL-OCSP, CL-J1-R2 broker-to-coordinator wire, CL-J1-R4 single-port permissive. This listing sells a hardened, scanned, supported distribution built from the Business Source License 1.1 source at a pinned release version (github.com/abyo-software/ferrodruid; each release converts to Apache-2.0 four years after publication). The AMI is metered automatically by AWS per running instance-hour, with no metering code in the product.
Highlights
One binary, not six JVMs: FerroDruid needs no ZooKeeper and no external metadata database in single-binary mode, and it boots in under a second on under 200 MB of RAM.
Druid wire-compatible: speaks the Druid REST API, native query JSON, and Druid SQL, and reads Apache Druid segment v9 (verified against Druid 31.0.2 and 35.0.1, including one round-tripped through real AWS S3). Live wire deep-match is clean against Apache Druid 31.0.2 through 36.0.0 - 42 of 48 queries match byte-for-byte, 0 mismatched on each - and 5 of 5 with an Apache Superset connector (Druid 30.0.1 partial, from Druid 30's own window-function behaviour, not a FerroDruid defect).
Hardened: 3-host EC2 nemesis matrix all PASS at the safety layer (sym-partition, asym-partition, leader-kill, disk-full, OOM, corrupted-segment, multi-host clockskew); cluster-wire mTLS election-storm source-fixed (4.9x reduction on same-shape re-fire); 57k+ tests + 21 continuous fuzz targets + workspace clippy -D warnings + forbid(unsafe_code); CycloneDX SBOM; paid support SLA.
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 14 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.
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. Alternatively, you can pay upfront for a contract, which typically covers your anticipated usage for the contract duration. Any usage beyond contract will incur additional usage-based costs.
Additional AWS infrastructure costs may apply. Use the AWS Pricing Calculator to estimate your infrastructure costs.
You pay an hourly software fee plus the EC2 cost for each running instance. Pricing is metered per instance-hour, so you only pay while an instance runs. The 18 dimensions are all Arm-based Graviton instance types, not feature tiers. They span four families: compute-optimized (c7g, c8g), general-purpose (m7g, m8g), memory-optimized (r7g, r8g), and burstable (t4g). Within each family, sizes range from medium through 4xlarge. Larger sizes carry more vCPU and RAM. You choose the instance type that matches your ingest rate, and cost scales with the size you select.
Top-of-mind questions for buyers
What do I get for one instance-hour, and what does the software fee cover?
You pay an hourly software fee plus the underlying EC2 cost for the chosen Arm-based Graviton instance. The software fee covers a hardened, scanned, supported distribution at a pinned release version, shipped as a self-contained Amazon Linux 2023 AMI. AWS meters each running instance-hour automatically, with no metering code in the product.
Am I charged when an instance is stopped?
The software fee meters running instance-hours only, so a stopped instance stops accruing the hourly software charge. Stopped instances may still incur underlying AWS storage fees for attached volumes. Since metering follows running time, powering off between workloads reduces the software portion of your bill.
How do I size the instance to my workload, and does running multiple nodes affect cost?
You pick an instance type by ingest rate; higher event rates need more vCPU and RAM. The supported setup is single-binary single-node, so you run one instance per deployment. Multi-node configurations fail closed by default. Your cost scales with the single instance size you select.
abyo.net
Helpful?
Vendor refund policy
FerroDruid software charges are metered by AWS Marketplace; stop or terminate the EC2 instances running the AMI to stop all charges (you pay only for instance-hours run). Already-incurred usage is generally non-refundable. If billed in error or a defect prevented normal use, contact aws-support@abyo.net within 30 days and we will review; warranted refunds are processed through AWS Marketplace.
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
FerroDruid v1.5.1 - legacy-Druid migration compatibility, aimed at migrating older Apache Druid deployments. New in 1.5.1: FerroDruid now reads the v1 numeric column serdes (long, double, float) that Apache Druid version 27 and earlier write for the time and metric columns, so ferrodruid-migrate attach and import-druid-metadata work on segments from a genuinely old Druid deployment (reverse-engineered clean-room and verified byte-exact against real Druid 27.0.0 dump-segment); Druid 31 and 35 reading is unchanged. Also in the 1.5.x line: (1) cross-engine hyperUnique read - FerroDruid now decodes Apache Druid's built-in classic-HLL hyperUnique distinct-count metric column (present in every Druid version, the standard before DataSketches), so hyperUnique native queries and SQL APPROX_COUNT_DISTINCT over such a column return estimates that match real Druid; verified against Druid 31.0.2 with the native double estimate bit-exact across single-row, rollup-folded, and multi-segment segmentations and the rounded SQL estimate exact. (2) Opt-in legacy null mode (useDefaultValueForNull, default off) that switches to Apache Druid version 27 and earlier default null semantics - string null equals empty string, numeric null becomes zero - across filters, aggregations, groupBy, COUNT DISTINCT, SQL rendering, and ingestion; verified with a legacy-versus-ANSI difference battery against real Druid 27.0.0 and 31.0.2; with the flag off, behaviour is byte-identical to the ANSI default. (3) Attach and import from S3 deep storage - ferrodruid-migrate attach --deep-storage s3://... and import-druid-metadata for an s3_zip loadSpec now stream segment artifacts directly from a Druid deployment on S3, with no local pull-first step; verified end-to-end against a real AWS S3 tree written by Druid 31.0.2. Carried forward from 1.4.0: attach an existing Druid on-disk segment v9 deployment (local or S3) so it becomes query-visible; import a Druid segment metadata table from PostgreSQL, MySQL, or SQLite; write segments in Druid's on-disk v9 format that Druid reads back (long and single-value string columns); durable Kafka and Kinesis supervisors; native batch index for local and inline JSON/CSV/TSV; and Druid segment reading of SQL-null numerics, longEncoding auto, nullable 64-bit integers above 2^53 exactly, multi-value string dimensions, and thetaSketch columns. Standing capabilities: single-binary mode runs one process - no JVM, no ZooKeeper, no external metadata database required - that boots in under a second on under 200 MB of RAM; 8/8 native query types; 40+ Druid-compatible REST endpoints; approximately 95 percent core Druid SQL parity; reads real Apache Druid segment v9 (verified against segments written by Druid 31.0.2 and 35.0.1); durable Kafka and Kinesis supervisors (PLAINTEXT or SASL_SSL/TLS) plus native batch; deep-storage persistence with fail-loud SHA-256 integrity and bootstrap reload; Basic auth (Argon2id) with RBAC on by default and TLS via rustls. Source available under the Business Source License 1.1 (github.com/abyo-software/ferrodruid; each release converts to Apache-2.0 four years after publication). Known limitations, including the migration scope, legacy-null coverage, and hyperUnique estimator scope, are published in docs/known-limitations.md. Metered automatically by AWS per instance-hour (no metering code in the AMI).
Additional details
Usage instructions
Launch the self-contained FerroDruid AMI on EC2 (Graviton/arm64). The instance boots one process (single-binary mode) directly - no additional template or orchestration is required - with SQLite metadata and local-filesystem deep storage. Run it behind an Application Load Balancer, terminate TLS at the ALB, and do not expose the service port directly to the internet. Basic auth (Argon2id) plus RBAC are on by default, and a one-time admin password is written to the instance system journal on first boot (retrieve it with sudo journalctl -u ferrodruid or from the EC2 system log). Point your Druid clients (REST API, native query JSON, Druid SQL, or an Apache Superset connector) at the load balancer endpoint. The supported topology is single-binary single-node; multi-node configurations fail closed by default. See docs/known-limitations.md.
Support
Vendor support
Support for FerroDruid is provided by abyo software LLC. Email aws-support@abyo.net for support; we respond under the published SLA.
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.
FerroDruid is a Rust-native, Apache-Druid-compatible real-time OLAP database that runs as a single JVM-free, ZooKeeper-free container and boots in under a second on under 200 MB of RAM. This listing delivers a hardened, AWS-security-scanned FerroDruid v1.2.0 container for Kubernetes (EKS) and serverless container compute (ECS/Fargate). Now source-available under BUSL-1.1.
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.