# Provider Comparison Matrix\n\nThis document provides a comprehensive comparison of supported cloud providers: Hetzner, UpCloud, AWS, and DigitalOcean. Use this matrix to make\ninformed decisions about which provider is best suited for your workloads.\n\n## Feature Comparison\n\n### Compute\n\n| Feature | Hetzner | UpCloud | AWS | DigitalOcean |\n| --------- | --------- | --------- | ----- | -------------- |\n| Product Name | Cloud Servers | Servers | EC2 | Droplets |\n| Instance Sizing | Standard, dedicated cores | 2-32 vCPUs | Extensive (t2, t3, m5, c5, etc) | 1-48 vCPUs |\n| Custom CPU/RAM | ✓ | ✓ | Limited | ✗ |\n| Hourly Billing | ✓ | ✓ | ✓ | ✓ |\n| Monthly Discount | 30% | 25% | ~30% (RI) | ~25% |\n| GPU Instances | ✓ | ✗ | ✓ | ✗ |\n| Auto-scaling | Via API | Via API | Native (ASG) | Via API |\n| Bare Metal | ✓ | ✗ | ✓ (EC2) | ✗ |\n\n### Block Storage\n\n| Feature | Hetzner | UpCloud | AWS | DigitalOcean |\n| --------- | --------- | --------- | ----- | -------------- |\n| Product Name | Volumes | Storage | EBS | Volumes |\n| SSD Volumes | ✓ | ✓ | ✓ (gp3, io1) | ✓ |\n| HDD Volumes | ✗ | ✓ | ✓ (st1, sc1) | ✗ |\n| Max Volume Size | 10 TB | Unlimited | 16 TB | 100 TB |\n| IOPS Provisioning | Limited | ✓ | ✓ | ✗ |\n| Snapshots | ✓ | ✓ | ✓ | ✓ |\n| Encryption | ✓ | ✓ | ✓ | ✓ |\n| Backup Service | ✗ | ✗ | ✓ (AWS Backup) | ✓ |\n\n### Object Storage\n\n| Feature | Hetzner | UpCloud | AWS | DigitalOcean |\n| --------- | --------- | --------- | ----- | -------------- |\n| Product Name | Object Storage | — | S3 | Spaces |\n| API Compatibility | S3-compatible | — | S3 (native) | S3-compatible |\n| Pricing (per GB) | €0.025 | N/A | $0.023 | $0.015 |\n| Regions | 2 | N/A | 30+ | 4 |\n| Versioning | ✓ | N/A | ✓ | ✓ |\n| Lifecycle Rules | ✓ | N/A | ✓ | ✓ |\n| CDN Integration | ✗ | N/A | ✓ (CloudFront) | ✓ (CDN add-on) |\n| Access Control | Bucket policies | N/A | IAM + bucket policies | Token-based |\n\n### Load Balancing\n\n| Feature | Hetzner | UpCloud | AWS | DigitalOcean |\n| --------- | --------- | --------- | ----- | -------------- |\n| Product Name | Load Balancer | Load Balancer | ELB/ALB/NLB | Load Balancer |\n| Type | Layer 4/7 | Layer 4 | Layer 4/7 | Layer 4/7 |\n| Health Checks | ✓ | ✓ | ✓ | ✓ |\n| SSL/TLS Termination | ✓ | Limited | ✓ | ✓ |\n| Path-based Routing | ✓ | ✗ | ✓ (ALB) | ✗ |\n| Host-based Routing | ✓ | ✗ | ✓ (ALB) | ✗ |\n| Sticky Sessions | ✓ | ✓ | ✓ | ✓ |\n| Geographic Distribution | ✗ | ✗ | ✓ (multi-region) | ✗ |\n| DDoS Protection | Basic | ✓ | ✓ (Shield) | ✓ |\n\n### Managed Databases\n\n| Feature | Hetzner | UpCloud | AWS | DigitalOcean |\n| --------- | --------- | --------- | ----- | -------------- |\n| PostgreSQL | ✗ | ✗ | ✓ (RDS) | ✓ |\n| MySQL | ✗ | ✗ | ✓ (RDS) | ✓ |\n| Redis | ✗ | ✗ | ✓ (ElastiCache) | ✓ |\n| MongoDB | ✗ | ✗ | ✓ (DocumentDB) | ✗ |\n| Multi-AZ | N/A | N/A | ✓ | ✓ |\n| Automatic Backups | N/A | N/A | ✓ | ✓ |\n| Read Replicas | N/A | N/A | ✓ | ✓ |\n| Param Groups | N/A | N/A | ✓ | ✗ |\n\n### Kubernetes\n\n| Feature | Hetzner | UpCloud | AWS | DigitalOcean |\n| --------- | --------- | --------- | ----- | -------------- |\n| Service | Manual K8s | Manual K8s | EKS | DOKS |\n| Managed Service | ✗ | ✗ | ✓ | ✓ |\n| Control Plane Managed | ✗ | ✗ | ✓ | ✓ |\n| Node Management | ✗ | ✗ | ✓ (node groups) | ✓ (node pools) |\n| Multi-AZ | ✗ | ✗ | ✓ | ✓ |\n| Ingress Support | Via add-on | Via add-on | ✓ (ALB) | ✓ |\n| Storage Classes | Via add-on | Via add-on | ✓ (EBS) | ✓ |\n\n### CDN/Edge\n\n| Feature | Hetzner | UpCloud | AWS | DigitalOcean |\n| --------- | --------- | --------- | ----- | -------------- |\n| CDN Service | ✗ | ✗ | ✓ (CloudFront) | ✓ |\n| Edge Locations | — | — | 600+ | 12+ |\n| Geographic Routing | — | — | ✓ | ✗ |\n| Cache Invalidation | — | — | ✓ | ✓ |\n| Origins | — | — | Any | HTTP/S, Object Storage |\n| SSL/TLS | — | — | ✓ | ✓ |\n| DDoS Protection | — | — | ✓ (Shield) | ✓ |\n\n### DNS\n\n| Feature | Hetzner | UpCloud | AWS | DigitalOcean |\n| --------- | --------- | --------- | ----- | -------------- |\n| DNS Service | ✓ (Basic) | ✗ | ✓ (Route53) | ✓ |\n| Zones | ✓ | N/A | ✓ | ✓ |\n| Failover | Manual | N/A | ✓ (health checks) | ✓ (health checks) |\n| Geolocation | ✗ | N/A | ✓ | ✗ |\n| DNSSEC | ✓ | N/A | ✓ | ✗ |\n| API Management | Limited | N/A | Full | Full |\n\n## Pricing Comparison\n\n### Compute Pricing (Monthly)\n\nComparison for 1-year term where applicable:\n\n| Configuration | Hetzner | UpCloud | AWS* | DigitalOcean |\n| --------------- | --------- | --------- | ------ | -------------- |\n| 1 vCPU, 1 GB RAM | €3.29 | $5 | $18 (t3.micro) | $6 |\n| 2 vCPU, 4 GB RAM | €6.90 | $15 | $36 (t3.small) | $24 |\n| 4 vCPU, 8 GB RAM | €13.80 | $30 | $73 (t3.medium) | $48 |\n| 8 vCPU, 16 GB RAM | €27.60 | $60 | $146 (t3.large) | $96 |\n| 16 vCPU, 32 GB RAM | €55.20 | $120 | $291 (t3.xlarge) | $192 |\n\n*AWS pricing: on-demand; reserved instances 25-30% discount\n\n### Storage Pricing (Monthly)\n\nPer GB for block storage:\n\n| Provider | Price/GB | Monthly Cost (100 GB) |\n| ---------- | ---------- | ---------------------- |\n| Hetzner | €0.026 | €2.60 |\n| UpCloud | $0.025 | $2.50 |\n| AWS EBS | $0.10 | $10.00 |\n| DigitalOcean | $0.10 | $10.00 |\n\n### Data Transfer Pricing\n\nOutbound data transfer (per GB):\n\n| Provider | First 1 TB | Beyond 1 TB |\n| ---------- | ----------- | ----------- |\n| Hetzner | Included | €0.12/GB |\n| UpCloud | $0.02/GB | $0.01/GB |\n| AWS | $0.09/GB | $0.085/GB |\n| DigitalOcean | $0.01/GB | $0.01/GB |\n\n### Total Cost of Ownership (TCO) Examples\n\n#### Small Application (2 servers, 100 GB storage)\n\n| Provider | Compute | Storage | Data Transfer | Monthly |\n| ---------- | --------- | --------- | ---------------- | --------- |\n| Hetzner | €13.80 | €2.60 | Included | **€16.40** |\n| UpCloud | $30 | $2.50 | $20 | **$52.50** |\n| AWS | $72 | $10 | $45 | **$127** |\n| DigitalOcean | $48 | $10 | Included | **$58** |\n\n#### Medium Application (5 servers, 500 GB storage, 10 TB data transfer)\n\n| Provider | Compute | Storage | Data Transfer | Monthly |\n| ---------- | --------- | --------- | ---------------- | --------- |\n| Hetzner | €69 | €13 | €1,200 | **€1,282** |\n| UpCloud | $150 | $12.50 | $200 | **$362.50** |\n| AWS | $360 | $50 | $900 | **$1,310** |\n| DigitalOcean | $240 | $50 | Included | **$290** |\n\n## Regional Availability\n\n### Hetzner Regions\n\n| Region | Location | Data Center | Highlights |\n| -------- | ---------- | ------------- | ------------ |\n| nbg1 | Nuremberg, Germany | 3 | EU hub, good performance |\n| fsn1 | Falkenstein, Germany | 1 | Lower latency, German regulations |\n| hel1 | Helsinki, Finland | 1 | Nordic region option |\n| ash | Ashburn, USA | 1 | North American presence |\n\n### UpCloud Regions\n\n| Region | Location | Highlights |\n| -------- | ---------- | ------------ |\n| fi-hel1 | Helsinki, Finland | Primary EU location |\n| de-fra1 | Frankfurt, Germany | EU alternative |\n| gb-lon1 | London, UK | European coverage |\n| us-nyc1 | New York, USA | North America |\n| sg-sin1 | Singapore | Asia Pacific |\n| jp-tok1 | Tokyo, Japan | APAC alternative |\n\n### AWS Regions (Selection)\n\n| Region | Location | Availability Zones | Highlights |\n| -------- | ---------- | ------------------- | ------------ |\n| us-east-1 | N. Virginia, USA | 6 | Largest, most services |\n| eu-west-1 | Ireland | 3 | EU primary, GDPR compliant |\n| eu-central-1 | Frankfurt, Germany | 3 | German data residency |\n| ap-southeast-1 | Singapore | 3 | APAC primary |\n| ap-northeast-1 | Tokyo, Japan | 4 | Asia alternative |\n\n### DigitalOcean Regions\n\n| Region | Location | Highlights |\n| -------- | ---------- | ------------ |\n| nyc3 | New York, USA | Primary US location |\n| sfo3 | San Francisco, USA | US West Coast |\n| lon1 | London, UK | European hub |\n| fra1 | Frankfurt, Germany | German regulations |\n| sgp1 | Singapore | APAC coverage |\n| blr1 | Bangalore, India | India region |\n\n### Regional Coverage Summary\n\n**Best Global Coverage**: AWS (30+ regions, most services)\n**Best EU Coverage**: All providers have good EU options\n**Best APAC Coverage**: AWS (most regions), DigitalOcean (Singapore)\n**Best North America**: All providers have coverage\n**Emerging Markets**: DigitalOcean (India via Bangalore)\n\n## Compliance and Certifications\n\n### Security Standards\n\n| Standard | Hetzner | UpCloud | AWS | DigitalOcean |\n| ---------- | --------- | --------- | ----- | -------------- |\n| GDPR | ✓ | ✓ | ✓ | ✓ |\n| CCPA | ✓ | ✓ | ✓ | ✓ |\n| SOC 2 Type II | ✓ | ✓ | ✓ | ✓ |\n| ISO 27001 | ✓ | ✓ | ✓ | ✓ |\n| ISO 9001 | ✗ | ✗ | ✓ | ✓ |\n| FedRAMP | ✗ | ✗ | ✓ | ✗ |\n\n### Industry-Specific Compliance\n\n| Standard | Hetzner | UpCloud | AWS | DigitalOcean |\n| ---------- | --------- | --------- | ----- | -------------- |\n| HIPAA | ✗ | ✗ | ✓ | ✓** |\n| PCI-DSS | ✓ | ✓ | ✓ | ✓ |\n| HITRUST | ✗ | ✗ | ✓ | ✗ |\n| FIPS 140-2 | ✗ | ✗ | ✓ | ✗ |\n| SOX (Sarbanes-Oxley) | Limited | Limited | ✓ | Limited |\n\n**DigitalOcean: Requires BAA for HIPAA compliance\n\n### Data Residency Support\n\n| Region | Hetzner | UpCloud | AWS | DigitalOcean |\n| -------- | --------- | --------- | ----- | -------------- |\n| EU (GDPR) | ✓ DE,FI | ✓ FI,DE,GB | ✓ (multiple) | ✓ (multiple) |\n| Germany (NIS2) | ✓ | ✓ | ✓ | ✓ |\n| UK (Post-Brexit) | ✗ | ✓ GB | ✓ | ✓ |\n| USA (CCPA) | ✗ | ✓ | ✓ | ✓ |\n| Canada | ✗ | ✗ | ✓ | ✗ |\n| Australia | ✗ | ✗ | ✓ | ✗ |\n| India | ✗ | ✗ | ✓ | ✓ |\n\n## Use Case Recommendations\n\n### 1. Cost-Sensitive Startups\n\n**Recommended**: Hetzner primary + DigitalOcean backup\n\n**Rationale**:\n- Hetzner has best price/performance ratio\n- DigitalOcean for geographic diversification\n- Both have simple interfaces and good documentation\n- Monthly cost: $30-80 for basic HA setup\n\n**Example Setup**:\n- Primary: Hetzner cx31 (2 vCPU, 4 GB)\n- Backup: DigitalOcean $24/month droplet\n- Database: Self-managed PostgreSQL or Hetzner volume\n- Total: ~$35/month\n\n### 2. Enterprise Production\n\n**Recommended**: AWS primary + UpCloud backup\n\n**Rationale**:\n- AWS for managed services and compliance\n- UpCloud for cost-effective disaster recovery\n- AWS compliance certifications (HIPAA, FIPS, SOC2)\n- Multiple regions within AWS\n- Mature enterprise support\n\n**Example Setup**:\n- Primary: AWS RDS (managed DB)\n- Secondary: UpCloud for compute burst\n- Compliance: Full audit trail and encryption\n\n### 3. High-Performance Computing\n\n**Recommended**: Hetzner + AWS spot instances\n\n**Rationale**:\n- Hetzner for sustained compute (good price)\n- AWS spot for burst workloads (70-90% discount)\n- Hetzner bare metal for specialized workloads\n- Cost-effective scaling\n\n### 4. Multi-Region Global Application\n\n**Recommended**: AWS + DigitalOcean + Hetzner\n\n**Rationale**:\n- AWS for primary regions and managed services\n- DigitalOcean for edge locations and simpler regions\n- Hetzner for EU cost optimization\n- Geographic redundancy across 3 providers\n\n**Example Setup**:\n- US: AWS (primary region)\n- EU: Hetzner (cost-optimized)\n- APAC: DigitalOcean (Singapore)\n- Global: CloudFront CDN\n\n### 5. Database-Heavy Applications\n\n**Recommended**: AWS RDS/ElastiCache + DigitalOcean Spaces\n\n**Rationale**:\n- AWS managed databases are feature-rich\n- DigitalOcean managed DB for simpler needs\n- Both support replicas and backups\n- Cost: $60-200/month for medium database\n\n### 6. Web Applications\n\n**Recommended**: DigitalOcean + AWS\n\n**Rationale**:\n- DigitalOcean for simplicity and speed\n- Droplets easy to manage and scale\n- AWS for advanced features and multi-region\n- Good community and documentation\n\n## Provider Strength Matrix\n\n### Performance ⚡\n\n| Category | Winner | Notes |\n| ---------- | -------- | ------- |\n| CPU Performance | Hetzner | Dedicated cores, good specs per price |\n| Network Bandwidth | AWS | 1Gbps+ guaranteed in multiple regions |\n| Storage IOPS | AWS | gp3 with 16K IOPS provisioning |\n| Latency (Global) | AWS | Most regions, best infrastructure |\n\n### Cost 💰\n\n| Category | Winner | Notes |\n| ---------- | -------- | ------- |\n| Compute | Hetzner | 50% cheaper than AWS on-demand |\n| Managed Services | AWS | Only provider with full managed stack |\n| Data Transfer | DigitalOcean | Included with many services |\n| Storage | Hetzner Object Storage | €0.025/GB vs AWS S3 $0.023/GB |\n\n### Ease of Use 🎯\n\n| Category | Winner | Notes |\n| ---------- | -------- | ------- |\n| UI/Dashboard | DigitalOcean | Simple, intuitive, clear pricing |\n| CLI Tools | AWS | Comprehensive aws-cli (but steep) |\n| API Documentation | DigitalOcean | Clear examples, community-driven |\n| Getting Started | DigitalOcean | Fastest path to first deployment |\n\n### Enterprise Features 🏢\n\n| Category | Winner | Notes |\n| ---------- | -------- | ------- |\n| Managed Services | AWS | RDS, ElastiCache, SQS, SNS, etc |\n| Compliance | AWS | Most certifications (HIPAA, FIPS, etc) |\n| Support | AWS | 24/7 support with paid plans |\n| Scale | AWS | Best for 1000+ servers |\n\n## Decision Matrix\n\nUse this matrix to quickly select a provider:\n\n```\nIf you need:                           Then use:\n─────────────────────────────────────────────────────────────\nLowest cost compute                    Hetzner\nSimplest interface                     DigitalOcean\nManaged databases                      AWS or DigitalOcean\nGlobal multi-region                    AWS\nCompliance (HIPAA/FIPS)                AWS\nEuropean data residency                Hetzner or DigitalOcean\nHigh performance compute               Hetzner or AWS (bare metal)\nDisaster recovery setup                UpCloud or Hetzner\nQuick startup                          DigitalOcean\nEnterprise SLA                         AWS or UpCloud\n```\n\n## Conclusion\n\n- **Hetzner**: Best for cost-conscious teams, European focus, good performance\n- **UpCloud**: Mid-market option, Nordic/EU focus, reliable alternative\n- **AWS**: Enterprise standard, global coverage, most services, highest cost\n- **DigitalOcean**: Developer-friendly, simplicity-focused, good value\n\nFor most organizations, a **multi-provider strategy** combining Hetzner (compute), AWS (managed services), and DigitalOcean (edge) provides the best\nbalance of cost, capability, and resilience.
