ecs-airflow

datarootsio/ecs-airflow/aws

Terraform Module HCL AWS

A terraform module that creates an airflow instance in AWS ECS.

Install
module "ecs-airflow" {
source = "datarootsio/ecs-airflow/aws"
version = "0.0.15"
}
⭐ Source on GitHub 📦 Registry page
README

![Maintained by dataroots](https://dataroots.io) ![Airflow version](https://airflow.apache.org/) ![Terraform 0.15](https://www.terraform.io) ![Terraform Registry](https://registry.terraform.io/modules/datarootsio/ecs-airflow/aws) ![Tests](https://github.com/datarootsio/terraform-aws-ecs-airflow/actions) ![Go Report Card](https://goreportcard.com/report/github.com/datarootsio/terraform-aws-ecs-airflow) ![](https://scontent.fbru1-1.fna.fbcdn.net/v/t1.0-9/94305647_112517570431823_3318660558911176704_o.png?_nc_cat=111&_nc_sid=e3f864&_nc_ohc=-spbrtnzSpQAX_qi7iI&_nc_ht=scontent.fbru1-1.fna&oh=483d147a29972c72dfb588b91d57ac3c&oe=5F99368A "Logo") DEPRECATED: We are no longer actively maintaining this module, instead we recommend that you look into AWS MWAA as a replacement. Terraform module Airflo

Inputs (41)
NameTypeDescriptionDefault
resource_prefixstringA prefix for the create resources, example your company name (be aware of the re required
public_subnet_idslist(string)A list of subnet ids of where the ALB will reside, if the "private_subnet_ids" v required
vpc_idstringThe id of the vpc where you will run ECS/RDS required
resource_suffixstringA suffix for the created resources, example the environment for airflow to run i required
airflow_container_homestringWorking dir for airflow (only change if you are using a different image)"/opt/airflow"
rbac_admin_emailstringRBAC Email (only when airflow_authentication = 'rbac')"admin@admin.com"
rbac_admin_firstnamestringRBAC Firstname (only when airflow_authentication = 'rbac')"admin"
ecs_cpunumberThe allocated cpu for your airflow instance1024
extra_tagsmap(string)Extra tags that you would like to add to all created resources{}
airflow_py_requirements_pathstringThe relative path to a python requirements.txt file to install extra packages in""
airflow_image_tagstringThe tag of the airflow image"2.0.1"
rbac_admin_lastnamestringRBAC Lastname (only when airflow_authentication = 'rbac')"airflow"
dns_namestringThe DNS name that will be used to expose Airflow. Optional if not serving over H""
certificate_arnstringThe ARN of the certificate that will be used""
postgres_uristringThe postgres uri of your postgres db, if none provided a postgres db in rds is m""
regionstringThe region to deploy your solution to"eu-west-1"
rds_instance_classstringThe class of instance you want to give to your rds db"db.t2.micro"
airflow_executorstringThe executor mode that airflow will use. Only allowed values are ["Local", "Sequ"Local"
rbac_admin_passwordstringRBAC Password (only when airflow_authentication = 'rbac')"admin"
ecs_memorynumberThe allocated memory for your airflow instance2048
rds_passwordstringPassword of rds""
airflow_example_dagboolAdd an example dag on startup (mostly for sanity check)true
ip_allow_listlist(string)A list of ip ranges that are allowed to access the airflow webserver, default: f[ "0.0.0.0/0" ]
route53_zone_namestringThe name of a Route53 zone that will be used for the certificate validation.""
… and 1 more inputs
Outputs (4)
airflow_task_iam_role — The IAM role of the airflow task, use this to give Airflow more permissions
airflow_connection_sg — The security group with which you can connect other instance to Airflow, for example EMR Livy
airflow_alb_dns — The DNS name of the ALB, with this you can access the Airflow webserver
airflow_dns_record — The created DNS record (only if "use_https" = true)
Resources (19)
aws_acm_certificateaws_acm_certificate_validationaws_cloudwatch_log_groupaws_db_instanceaws_db_subnet_groupaws_ecs_clusteraws_ecs_serviceaws_ecs_task_definitionaws_iam_roleaws_iam_role_policyaws_lbaws_lb_listeneraws_lb_target_groupaws_route53_recordaws_s3_bucketaws_s3_bucket_objectaws_s3_bucket_public_access_blockaws_security_groupaws_security_group_rule
Details
FrameworkTerraform Module
LanguageHCL
Version0.0.15
Cloud AWS
★ Stars60
Forks43
Total downloads11.2k
Inputs41
Outputs4
Resources19
Examples3
LicenseMIT
Namespacedatarootsio
Updated