AtScale System Requirements
System requirements
System requirements are subjective and depend on several factors, including your data warehouse size, the number of clients you have, and the number of models you have deployed. As such, the recommendations below may need to be altered to support your specific use case.
The following table provides an overview of the system requirements for running AtScale in different types of environments.
Property | Bare Minimum - POC | Minimum - Testing/Development | Recommended - Production |
---|---|---|---|
Node count | 1 | 1-2 | 3 |
CPU | 16 cores | 32 cores | 48 cores |
RAM | 64 GB | 128 GB | 192 GB |
Storage | Local | Local and regional | Regional |
It is important for your machines to be running AMD64 - x86_64 architecture.
The following sections describe each type of environment and their requirements.
Bare minimum system requirements for a POC deployment
For a basic proof of concept, or to try out the interface and create basic models, you can run an AtScale deployment on a system with 16 CPU cores and 64 GB of RAM. This will support a workload from a small database up to 100 GB. Note, however, that you will be limited in what and how much you can do with AtScale with these resources.
Minimum system requirements for a stable development environment
To run AtScale and maintain a stable environment, even under some load, you should double the bare minimum requirements: 32 CPU cores and 128 GB of RAM. This will allow you to run workloads with a team of 100-250 people and databases up to 1 TB.
Recommended requirements for a production workload
To run AtScale in production, your cluster needs to be set up with more resiliency. This requires more than just a single machine.
The minimum option for production is a three-node cluster, each with 16 CPU cores and 64 GB of RAM. This should support 500 people, depending on your workload and data warehouses.
Kubernetes requirements
Running AtScale on Kubernetes has additional requirements. The following sections provide example cluster setups on different platforms, given the system requirements described above.
AWS - EKS
Bare Minimum - POC | Minimum - Testing/Development | Recommended - Production | |
---|---|---|---|
Instance Types | m6a.4xlarge, c8g.4xlarge | m6a.4xlarge, m6a.8xlarge, c8g.4xlarge, c8g.8xlarge | m6a.4xlarge, m6a.8xlarge, m6a.12xlarge |
Storage | EBS | EBS and EFS | EFS - Elastic |
Azure - AKS
Bare Minimum - POC | Minimum - Testing/Development | Recommended - Production | |
---|---|---|---|
Instance Types | Standard_D16s_v5 | Standard_D16s_v5, Standard_D32_v5, Standard_F16as_v6 | Standard_D32_v5, Standard_F16as_v6 |
Storage | LRS - Premium SSD and Premium SSD v2 | LRS and ZRS | ZRS |
Google Cloud - GKE
Bare Minimum - POC | Minimum - Testing/Development | Recommended - Production | |
---|---|---|---|
Instance Types | c4a-standard-16 | c4a-standard-16, c2d-standard-16 | c4a-standard-16, c2d-standard-16 |
Storage | pd-balanced (Zonal) | pd-balanced, pd-ssd (Zonal and Regional) | pd-ssd, pd-extreme (Regional) |
PostgreSQL requirements
AtScale comes with PostgreSQL to provide high availability. This PostgreSQL deployment requires your disks to be fast enough for replication to work properly on the cluster. A good rule of thumb is to have instances that support disks with 5000 IOPS or better. Additionally, it is recommended to have allowVolumeExpansion: true
enabled in your storage class.
External PostgreSQL requirements
If you are using an external database, make sure you set it up in HA mode so you have failover. It is also recommended that you enable automatic storage expansion.
The following sections provide example configurations for different platforms.
AWS - RDS
-
Database type
- Amazon RDS for PostgreSQL
- Engine version: PostgreSQL (e.g., 16.9)
- Cluster configuration: Multi-AZ DB Cluster (not just Multi-AZ standby)
-
Instance configuration
-
Instance class: db.r6gd.xlarge (4 vCPUs, 32 GiB memory, local NVMe storage) or larger
-
Cluster size: 3 instances:
- 1 writer (primary)
- 2 read replicas (in different Availability Zones (AZs))
-
-
High availability
- Multi-AZ DB Cluster, not legacy Multi-AZ standby.
- Provides automatic failover across AZs.
-
Read replicas
- Synchronous or asynchronous replicas (based on config).
- Placed in separate AZs for disaster tolerance and read scaling.
-
Connection proxy (RDS Proxy)
-
Set up an Amazon RDS Proxy that:
- Acts as a connection pooler.
- Automatically handles connection reuse and failover events.
-
Azure SQL for PostgreSQL
-
Server type
- Azure Database for PostgreSQL - Flexible Server
- SKU: Memory Optimized tier (e.g., Standard_E4ds_v4)
-
High availability
- Enable Zone Redundant High Availability (HA). This provides automatic failover with a standby replica in another zone.
-
Read replicas
- Add read replicas (up to 5).
- These can be used for read-scaling; however, Azure doesn’t automatically split read/write traffic.
-
Zone redundancy (ZRS) for storage
- Azure Flexible Server offers Zone-Redundant High Availability (HA) mode.
- Storage itself is managed as Premium SSD.
Google Cloud: Cloud SQL for PostgreSQL
-
Instance type
- Cloud SQL for PostgreSQL
- Tier: e.g., db-perf-optimized-N-4 (4 vCPU, 32GB RAM) or larger
-
High availability
- Enable Multiple zones (High Availability). This provides a standby instance in a separate zone with automatic failover.
-
SSD storage
- Enable automatic storage increases. This ensures you never run out of storage.
Ingress Ports
The AtScale services require the following ports. These should be reserved for use by AtScale alone.
Port | Service | Path | Handled by | Purpose |
---|---|---|---|---|
443 | Engine | /engine | Engine | Internal |
443 | XMLA | /engine/xmla | Engine | Microsoft Excel, Microsoft Power BI |
443 | API | /api | API | API / Public API |
443 | Web UI | / | WebUI | UI |
443 | Observability Dashboarding | /monitoring | Observability Dashboarding | Monitoring, dashboarding |
443 | Identity Broker | /auth | Identity Broker | Authentication / authorization |
443 | Object Store (optional) | /minio | Object Store | S3 |
443 | Secrets Broker (optional) | /vault | Secrets Broker | Secret Storage |
11111 | Thrift (optional) | Engine | Thrift protocol for BI tools | |
15432 | Pgwire (SQL) Interface | Engine | SQL Protocol for BI Tools |
Egress URIs
AtScale uses the following URIs for outbound data.
URI | Purpose |
---|---|
license-prod-us.atscaleservices.com | License validation checks |
billing-prod-us.atscaleservices.com | Usage data |