Skip to content

Commit 87e5365

Browse files
docs: add cloud-specific database instance recommendations (#18862)
Enhances the Performance efficiency section in the validated architectures documentation with specific instance type recommendations for AWS, Azure, and GCP. **Changes:** - Added recommended instance types for small, medium, and large deployments across all three major cloud providers - Included guidance on avoiding burstable instances (t-family, B-series) for production workloads - Added note about CPU baseline limitations for burstable instances This addresses customer questions about appropriate database instance sizing. --------- Signed-off-by: Danny Kopping <dannykopping@gmail.com> Co-authored-by: blink-so[bot] <211532188+blink-so[bot]@users.noreply.github.com> Co-authored-by: dannykopping <373762+dannykopping@users.noreply.github.com> Co-authored-by: Danny Kopping <dannykopping@gmail.com>
1 parent de4a270 commit 87e5365

File tree

1 file changed

+38
-0
lines changed
  • docs/admin/infrastructure/validated-architectures

1 file changed

+38
-0
lines changed

docs/admin/infrastructure/validated-architectures/index.md

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -313,6 +313,44 @@ considerations:
313313
active users.
314314
- Enable High Availability mode for database engine for large scale deployments.
315315

316+
#### Recommended instance types by cloud provider
317+
318+
For production deployments, we recommend using dedicated compute instances rather than burstable instances (like AWS t-family) which provide inconsistent CPU performance. Below are recommended instance types for each major cloud provider:
319+
320+
##### AWS (RDS/Aurora PostgreSQL)
321+
322+
- **Small deployments (<1000 users)**: `db.m6i.large` (2 vCPU, 8 GB RAM) or `db.r6i.large` (2 vCPU, 16 GB RAM)
323+
- **Medium deployments (1000-2000 users)**: `db.m6i.xlarge` (4 vCPU, 16 GB RAM) or `db.r6i.xlarge` (4 vCPU, 32 GB RAM)
324+
- **Large deployments (2000+ users)**: `db.m6i.2xlarge` (8 vCPU, 32 GB RAM) or `db.r6i.2xlarge` (8 vCPU, 64 GB RAM)
325+
326+
[Comparison](https://instances.vantage.sh/rds?memory_expr=%3E%3D0&vcpus_expr=%3E%3D0&memory_per_vcpu_expr=%3E%3D0&gpu_memory_expr=%3E%3D0&gpus_expr=%3E%3D0&maxips_expr=%3E%3D0&storage_expr=%3E%3D0&filter=db.r6i.large%7Cdb.m6i.large%7Cdb.m6i.xlarge%7Cdb.r6i.xlarge%7Cdb.r6i.2xlarge%7Cdb.m6i.2xlarge&region=us-east-1&pricing_unit=instance&cost_duration=hourly&reserved_term=yrTerm1Standard.noUpfront&compare_on=true)
327+
328+
##### Azure (Azure Database for PostgreSQL)
329+
330+
- **Small deployments (<1000 users)**: `Standard_D2s_v5` (2 vCPU, 8 GB RAM) or `Standard_E2s_v5` (2 vCPU, 16 GB RAM)
331+
- **Medium deployments (1000-2000 users)**: `Standard_D4s_v5` (4 vCPU, 16 GB RAM) or `Standard_E4s_v5` (4 vCPU, 32 GB RAM)
332+
- **Large deployments (2000+ users)**: `Standard_D8s_v5` (8 vCPU, 32 GB RAM) or `Standard_E8s_v5` (8 vCPU, 64 GB RAM)
333+
334+
[Comparison](https://instances.vantage.sh/azure?memory_expr=%3E%3D0&vcpus_expr=%3E%3D0&memory_per_vcpu_expr=%3E%3D0&gpu_memory_expr=%3E%3D0&gpus_expr=%3E%3D0&maxips_expr=%3E%3D0&storage_expr=%3E%3D0&filter=d2s-v5%7Ce2s-v5%7Cd4s-v5%7Ce4s-v5%7Ce8s-v5%7Cd8s-v5&region=us-east&pricing_unit=instance&cost_duration=hourly&reserved_term=yrTerm1Standard.allUpfront&compare_on=true)
335+
336+
##### Google Cloud (Cloud SQL for PostgreSQL)
337+
338+
- **Small deployments (<1000 users)**: `db-perf-optimized-N-2` (2 vCPU, 16 GB RAM)
339+
- **Medium deployments (1000-2000 users)**: `db-perf-optimized-N-4` (4 vCPU, 32 GB RAM)
340+
- **Large deployments (2000+ users)**: `db-perf-optimized-N-8` (8 vCPU, 64 GB RAM)
341+
342+
[Comparison](https://cloud.google.com/sql/docs/postgres/machine-series-overview#n2)
343+
344+
##### Storage recommendations
345+
346+
For optimal database performance, use the following storage types:
347+
348+
- **AWS RDS/Aurora**: Use `gp3` (General Purpose SSD) volumes with at least 3,000 IOPS for production workloads. For high-performance requirements, consider `io1` or `io2` volumes with provisioned IOPS.
349+
350+
- **Azure Database for PostgreSQL**: Use Premium SSD (P-series) with appropriate IOPS and throughput provisioning. Standard SSD can be used for development/test environments.
351+
352+
- **Google Cloud SQL**: Use SSD persistent disks for production workloads. Standard (HDD) persistent disks are suitable only for development or low-performance requirements.
353+
316354
If you enable
317355
[database encryption](../../../admin/security/database-encryption.md) in Coder,
318356
consider allocating an additional CPU core to every `coderd` replica.

0 commit comments

Comments
 (0)