Unless otherwise specified, new clusters on Astro are created with a set of default AWS resources that should be suitable for most use cases.
Read the following document for a reference of our default resources as well as supported cluster configurations.
Default cluster values
|Resource||Description||Quantity/ Default Size||Configurable|
|EKS Cluster||An EKS cluster is required to run the Astro data plane, which hosts the resources and data required to execute Airflow tasks.||1x|
|Worker node pool||A node pool of EC2 instances that hosts all workers with the ||1x pool of m5.xlarge nodes||✔️|
|Airflow node pool||A node pool of EC2 instances that runs all core Airflow components, including the scheduler and webserver, for all Deployments in the cluster. This node pool is fully managed by Astronomer.||1x pool of m5.xlarge nodes|
|Astro system node pool||A node pool of EC2 instances that runs all other system components required in Astro. The availability zone determines how many nodes are created. This node pool is fully managed by Astronomer.||1x pool of m5.xlarge nodes|
|RDS for PostgreSQL Instance||The RDS instance is the primary database of the Astro data plane. It hosts a metadata database for each Deployment in the cluster.||1x db.r5.large||✔️|
|Elastic IPs||Required for connectivity with the Astro control plane and other public services.||2x|
|Subnets||Subnets are provisioned in 2 different Availability Zones (AZs) for redundancy, with 1 public and 1 private subnet per AZ. Public subnets are required for the NAT and Internet gateways, while private subnets are required for EC2 nodes.||2x /26 (public) and 1x /20 + 1x /21 (private)||✔️|
|Internet Gateway||Required for connectivity with the control plane and other public services.||1x|
|NAT Gateways||NAT Gateways translate outbound traffic from private subnets to public subnets.||2x|
|Routes||Routes are necessary to direct network traffic from the subnets and gateways.||2x|
|Route Tables||Home for the routes.||2x|
|VPC||Virtual network for launching and hosting AWS resources.||1x /19||✔️|
|Amazon S3||Stores Airflow task logs.||1x|
|Maximum Node Count||The maximum number of EC2 worker nodes that a particular worker node pool can scale to. This value applies to each worker node pool and does not apply to other node pools. When this limit is reached, your cluster can't auto-scale and worker Pods may fail to schedule.||20||✔️|
Supported cluster configurations
You might need to modify configurations of a new or existing cluster on Astro. This section provides a reference for cluster configuration options.
To create a new cluster on Astro with a specified configuration, see Create a cluster. To request a change to an existing Cluster, see Modify a cluster. Astronomer is currently responsible for completing all cluster configuration changes.
Depending on how you installed Astro, you can host Astro clusters in the following AWS regions:
|Code||Name||Astro - Bring Your Own Cloud||Astro - Hosted|
|Africa (Cape Town)||✔️|
|Asia Pacific (Hong Kong)||✔️|
|Asia Pacific (Tokyo)||✔️|
|Asia Pacific (Seoul)||✔️|
|Asia Pacific (Osaka)||✔️|
|Asia Pacific (Singapore)||✔️|
|Asia Pacific (Sydney)||✔️|
|Asia Pacific (Mumbai)||✔️||✔️|
|Middle East (Bahrain)||✔️|
|South America (São Paulo)||✔️|
|US East (N. Virginia)||✔️||✔️|
|US East (Ohio)||✔️|
|US West (N. California)||✔️|
|US West (Oregon)||✔️||✔️|
Modifying the region of an existing cluster on Astro is not supported. If you're interested in an AWS region that isn't listed, contact Astronomer support.
RDS instance type
Every Astro cluster on AWS is created with and requires an RDS instance. RDS serves as a primary relational database for the data plane and powers the metadata database of all Astro Deployments within a single cluster. During the cluster creation process, you are asked to specify an RDS instance type according to your use case and expected workload, but it can be modified at any time.
Astro supports a variety of AWS RDS instance types. Each instance type has varying amounts of CPU, memory, storage, and networking capacity. For detailed information on each instance type, reference AWS documentation. If you're interested in an RDS instance type that is not on this list, reach out to Astronomer support.
- db.r5.large (default)
Worker node pools
A node pool is a group of nodes within a cluster that all have the same configuration. On Astro, worker nodes are responsible for running the Pods that execute Airflow tasks. Each worker node pool can be configured with a node instance type and a maximum node count. All Astro clusters have one worker node pool by default, but you can configure additional node pools to optimize resource use.
If your cluster has multiple worker node pools with different worker node instance types, users in your organization can configure tasks to run on those worker types using worker queues. To enable a new worker type for your cluster, contact Astronomer support with a request to create a new node pool or modify an existing node pool.
Astronomer monitors your usage and the number of nodes deployed in your cluster. As your usage of Airflow increases, Astronomer support might contact you and provide recommendations for updating your node pools to optimize your infrastructure spend or increase the efficiency of your tasks.
For information about each available instance type, see the following resource reference and Amazon EC2 Instance Types.
Worker node resource reference
Each worker in a worker node pool runs a single worker Pod. A worker Pod's actual available size is equivalent to the total capacity of the instance type minus Astro’s system overhead.
The following table lists all available instance types for worker node pools, as well as the Pod size that is supported for each instance type. As the system requirements of Astro change, these values can increase or decrease.
|Worker Node Type||CPU||Memory|
|m5.xlarge||3 CPUs||13 GiB MEM|
|m5.2xlarge||7 CPUs||29 GiB MEM|
|m5.4xlarge||15 CPUs||61 GiB MEM|
|m5.8xlarge||31 CPUs||125 GiB MEM|
|m5.12xlarge||47 CPUs||189 GiB MEM|
|m5.16xlarge||63 CPUs||253 GiB MEM|
|m5.24xlarge||95 CPUs||381 GiB MEM|
|m5.metal||95 CPUs||381 GiB MEM|
|m5d.xlarge||3 CPUs||13 GiB MEM|
|m5d.2xlarge||7 CPUs||29 GiB MEM|
|m5d.4xlarge||15 CPUs||61 GiB MEM|
|m5d.8xlarge||31 CPUs||125 GiB MEM|
|m5d.12xlarge||47 CPUs||189 GiB MEM|
|m5d.16xlarge||63 CPUs||253 GiB MEM|
|m5d.24xlarge||95 CPUs||381 GiB MEM|
|m5d.metal||95 CPUs||381 GiB MEM|
|m6i.xlarge||3 CPUs||13 GiB MEM|
|m6i.2xlarge||7 CPUs||29 GiB MEM|
|m6i.4xlarge||15 CPUs||61 GiB MEM|
|m6i.8xlarge||31 CPUs||125 GiB MEM|
|m6i.12xlarge||47 CPUs||189 GiB MEM|
|m6i.16xlarge||63 CPUs||253 GiB MEM|
|m6i.24xlarge||95 CPUs||381 GiB MEM|
|m6i.metal||95 CPUs||381 GiB MEM|
|m6id.xlarge||3 CPUs||13 GiB MEM|
|m6id.2xlarge||7 CPUs||29 GiB MEM|
|m6id.4xlarge||15 CPU||61 GiB MEM|
|m6id.8xlarge||31 CPU||125 GiB MEM|
|m6id.12xlarge||47 CPU||189 GiB MEM|
|m6id.16xlarge||63 CPU||253 GiB MEM|
|m6id.24xlarge||95 CPU||381 GiB MEM|
|m6id.metal||127 CPU||509 GiB MEM|
|r6i.xlarge||3 CPUs||29 GiB MEM|
|r61.2xlarge||7 CPUs||61 GiB MEM|
|r6i.4xlarge||15 CPUs||125 GiB MEM|
|r6i.8xlarge||31 CPUs||253 GiB MEM|
|r6i.12xlarge||47 CPUs||381 GiB MEM|
|r6i.16xlarge||63 CPUs||509 GiB MEM|
|r6i.24xlarge||95 CPUs||765 GiB MEM|
|r6i.metal||95 CPUs||1021 GiB MEM|
|c6i.xlarge||3 CPUs||5 GiB MEM|
|c61.2xlarge||7 CPUs||13 GiB MEM|
|c6i.4xlarge||15 CPUs||29 GiB MEM|
|c6i.8xlarge||31 CPUs||61 GiB MEM|
|c6i.12xlarge||47 CPUs||93 GiB MEM|
|c6i.16xlarge||63 CPUs||125 GiB MEM|
|c6i.24xlarge||95 CPUs||189 GiB MEM|
|c6i.metal||95 CPUs||189 GiB MEM|
|t2.xlarge||3 CPUs||13 GiB MEM|
|t3.xlarge||3 CPUs||13 GiB MEM|
|t3.2xlarge||7 CPUs||29 GiB MEM|
If your Organization is interested in using an instance type that supports a larger worker size, contact Astronomer support. For more information about configuring worker size on Astro, see Configure a Deployment.
Astronomer doesn’t recommend using
t series instance types in standard mode for production workloads, because CPU utilization for
t instance types in standard mode can be throttled.
With the exception of
m6id nodes, all supported node types have a maximum of 20GB of storage per node for system use only. If you need locally attached storage for task execution, Astronomer recommends modifying your cluster to run
m6id nodes, which Astronomer provisions with NVMe SSD volumes. To utilize the ephemeral storage on these node types, have your task write data to
/ephemeral. If your task uses the KubernetesPodOperator, mount an emptyDir volume in your operator container spec instead. See Amazon EC2 M6i Instances and Amazon EC2 M5 Instances for the amount of available storage in each node type.
The ability to provision ephemeral storage for all node instance types is coming soon.
If you need to pass significant data between Airflow tasks, Astronomer recommends using an XCom backend such as AWS S3 or Google Cloud Storage (GCS). For more information and best practices, see the Airflow Guide on Passing Data Between Airflow Tasks.
Maximum node count
Each Astro cluster has a limit on how many nodes it can run at once. This maximum includes worker nodes as well as system nodes managed by Astronomer.
The default maximum node count for all nodes across your cluster is 20. A cluster's node count is most affected by the number of worker Pods that are executing Airflow tasks. See Worker autoscaling logic.
If the node count for your cluster reaches the maximum node count, new tasks might not run or get scheduled. Astronomer monitors maximum node count and is responsible for contacting your organization if it is reached. To check your cluster's current node count, contact Astronomer Support.