Overview
This is a repackaged software product wherein additional charges apply for hardening, security configuration, and support.
WHAT IS APACHE AIRFLOW
Apache Airflow is the leading open-source platform to programmatically author, schedule, and monitor workflows, the de facto standard for orchestrating data pipelines. Workflows are defined as Directed Acyclic Graphs (DAGs) in plain Python, giving you dynamic pipeline generation, flexible scheduling, backfills, retries, branching, and a rich web UI for monitoring task runs and logs. Airflow ships hundreds of provider packages that integrate with databases, cloud services (AWS, GCP, Azure), Kubernetes, Spark, dbt, and HTTP/SQL endpoints, plus a full REST API. This image runs Airflow 3.2 on Python 3.12 with the LocalExecutor (single-node, no external Celery or Redis broker required), persisting all DAG metadata, connections, variables, and run history in a local PostgreSQL database. Apache-2.0 license, no vendor lock-in.
WHAT THIS AMI ADDS
Security hardening:
- api-server (web UI + REST API) bound to 127.0.0.1:8080 (loopback only); nginx terminates TLS on port 443 and reverse-proxies to it - port 8080 is never exposed
- Local PostgreSQL metadata database bound to 127.0.0.1 only
- Fernet key (connection/variable encryption), API secret key, PostgreSQL password, and admin login all generated uniquely at first boot, written to /root/airflow-credentials.txt (mode 600) - no secrets baked into the image
- scheduler, api-server, dag-processor, and triggerer run as a non-root airflow system user with UMask 0027
- Anonymous usage analytics disabled
- certbot pre-installed - one command swaps the self-signed cert for a CA-signed one
- UFW firewall pre-configured (only ports 22 and 443 open)
- 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
Built on Apache Airflow(R), a trademark of The Apache Software Foundation. This is an independently hardened build, not affiliated with or endorsed by the ASF.
Highlights
- Apache Airflow security baked in: the api-server is bound to loopback behind an nginx TLS perimeter on 443, the PostgreSQL metadata database is bound to 127.0.0.1, and the Fernet key, API secret key, database password, and admin login are all generated uniquely at first boot. The scheduler, api-server, and dag-processor run as a non-root service with no secrets baked into the image.
- 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.
- Airflow 3.2 on Python 3.12 with the LocalExecutor and a local PostgreSQL metadata database: author, schedule, and monitor data pipelines as Python DAGs, with hundreds of provider integrations and a full REST API. Apache-2.0 license - fully auditable, 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 Airflow 3.2.2 - Initial release (June 2026)
- Apache Airflow 3.2.2 on Ubuntu 24.04 LTS (Python 3.12, LocalExecutor)
- CIS Level 1 hardening applied (ansible-lockdown/UBUNTU24-CIS)
- CVE-scanned before every release
- api-server (web UI + REST API) bound to 127.0.0.1:8080; nginx terminates TLS on port 443
- Local PostgreSQL metadata database bound to 127.0.0.1
- Fernet key, API secret key, database password, and admin login generated uniquely at first boot (no secrets baked into the image)
- scheduler, api-server, dag-processor, triggerer run as non-root airflow user (UMask 0027)
- Anonymous usage analytics disabled
- certbot pre-installed for CA-signed TLS certificates
- UFW firewall pre-configured (ports 22, 443 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 from your IP
- SSH: ssh -i key.pem ubuntu@<PUBLIC_IP>
- Read the admin credentials: sudo cat /root/airflow-credentials.txt
- Open https://<PUBLIC_IP>/ in your browser - accept the self-signed certificate warning, then log in with the admin username and password from step 4.
- The DAGs view lists bundled example DAGs (paused by default). Unpause one and trigger it to watch the scheduler and LocalExecutor run tasks; drop your own DAG files into /opt/airflow/dags.
Airflow runs the api-server (web UI + REST API) on 127.0.0.1:8080; nginx terminates TLS on port 443 and reverse-proxies to it. The scheduler, dag-processor, and triggerer run as separate services, and the metadata database is a local PostgreSQL bound to 127.0.0.1. The admin password, Fernet key, API secret key, and database password are generated uniquely per instance at first boot and saved to /root/airflow-credentials.txt.
Restrict Security Group port 443 to your own IP until you have logged in and changed the admin password.
Replace the self-signed TLS certificate with a CA-signed certificate for production use: sudo certbot --nginx -d yourdomain.com
Resources
Vendor resources
Support
Vendor support
Visit us online: https://lynxroute.com/#contact
For Apache Airflow 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
