# Cloud Region Selection Guide — AWS, Azure, GCP Region Mapping by Country, Compliance, and Service Availability
Region selection is deceptively simple on the surface — pick the region closest to your users and move on. In practice, it involves balancing four competing factors: regulatory compliance, latency, service availability, and cost. Get it wrong and you face data sovereignty violations, unexpected latency spikes, missing services that force architectural workarounds, or bills that are 40% higher than necessary.
This guide gives you everything you need to make an informed region decision across AWS, Azure, and GCP, including a comprehensive country-to-region mapping, compliance requirements by jurisdiction, fallback strategies when services are not available in your region, and cost comparison data.
---
1. The 4 Factors for Region Selection (Priority Order)
When selecting a cloud region, evaluate these factors in this specific order. Higher-priority factors are non-negotiable constraints; lower-priority factors are optimization opportunities.
Factor 1: Data Residency and Compliance (Non-Negotiable)
This is your first filter because violating data residency requirements can result in legal penalties, fines, and loss of operating licenses. If regulation says your data must stay in a specific country, that eliminates all other regions regardless of latency or cost.
Key regulations that mandate data location:
- GDPR (EU): Personal data of EU residents should be processed within the EU/EEA, or transferred only to countries with adequacy decisions. In practice, most companies keep EU data in EU regions.
- RBI India: Financial data (payment system data) must be stored only in India. No exceptions for backups or DR — everything must be within Indian borders.
- PDPA Singapore: Personal data transferred outside Singapore requires comparable protection standards or explicit consent.
- HIPAA (US): Does not mandate geographic location, but requires a Business Associate Agreement (BAA) with your cloud provider and use of HIPAA-eligible services.
- China Cybersecurity Law: Data collected in China must be stored in China. Separate cloud partitions exist (AWS China via Sinnet/NWCD, Azure China via 21Vianet).
- Russia Data Localization: Personal data of Russian citizens must be stored on servers physically located in Russia.
Factor 2: Latency to End Users (Performance)
After compliance eliminates ineligible regions, optimize for latency. The physics of network communication means every 1,000 km adds approximately 5-10ms of latency. For user-facing applications:
- Same continent, same country: 10-30ms (excellent)
- Same continent, different country: 30-80ms (good)
- Cross-continent: 100-300ms (noticeable for interactive applications)
For APIs serving real-time user interactions, you want sub-50ms latency from your servers to your users. For background processing and batch workloads, latency matters less.
How to test latency:
- Use tools like CloudPing.info to measure latency from your location to various cloud regions
- AWS: ec2-reachability tests from your client locations
- Deploy a lightweight health check endpoint in candidate regions and measure from your users' locations
Factor 3: Service Availability (Capability)
Not all cloud services are available in all regions. Newer services (AI/ML, specialized databases, analytics) tend to launch first in primary regions (us-east-1, us-west-2 for AWS) and roll out to other regions over months or years.
If your architecture depends on a specific service, verify it exists in your target region before committing. Building your application in a region where a critical service is unavailable forces you into cross-region API calls (adding latency and cost) or architectural compromises.
Factor 4: Cost (Optimization)
Cloud pricing varies significantly between regions. The same EC2 instance that costs $0.0464/hour in us-east-1 (Virginia) might cost $0.0672/hour in sa-east-1 (Sao Paulo) — a 45% premium. This is due to differences in real estate costs, power costs, local taxes, and demand.
Cost should be your final optimization factor — never choose a cheaper region that violates compliance requirements or adds unacceptable latency.
---
2. Country-to-Region Mapping (Comprehensive Table)
This table maps major countries and regions to the recommended cloud region for each provider. The recommendation considers the closest available region with broad service availability.
| Country/Region | AWS Region | Azure Region | GCP Region |
|---|---|---|---|
| <strong>India</strong> | ap-south-1 (Mumbai) | Central India (Pune) | asia-south1 (Mumbai) |
| <strong>India (DR)</strong> | ap-south-2 (Hyderabad) | South India (Chennai) | asia-south2 (Delhi) |
| <strong>USA East</strong> | us-east-1 (N. Virginia) | East US (Virginia) | us-east4 (N. Virginia) |
| <strong>USA West</strong> | us-west-2 (Oregon) | West US 2 (Washington) | us-west1 (Oregon) |
| <strong>USA Central</strong> | us-east-2 (Ohio) | Central US (Iowa) | us-central1 (Iowa) |
| <strong>United Kingdom</strong> | eu-west-2 (London) | UK South (London) | europe-west2 (London) |
| <strong>Germany</strong> | eu-central-1 (Frankfurt) | Germany West Central (Frankfurt) | europe-west3 (Frankfurt) |
| <strong>France</strong> | eu-west-3 (Paris) | France Central (Paris) | europe-west9 (Paris) |
| <strong>Netherlands</strong> | eu-west-1 (Ireland)* | West Europe (Netherlands) | europe-west4 (Netherlands) |
| <strong>Ireland</strong> | eu-west-1 (Ireland) | North Europe (Ireland) | europe-west1 (Belgium)* |
| <strong>Singapore</strong> | ap-southeast-1 (Singapore) | Southeast Asia (Singapore) | asia-southeast1 (Singapore) |
| <strong>Australia</strong> | ap-southeast-2 (Sydney) | Australia East (Sydney) | australia-southeast1 (Sydney) |
| <strong>Australia (DR)</strong> | ap-southeast-4 (Melbourne) | Australia Southeast (Melbourne) | australia-southeast2 (Melbourne) |
| <strong>Japan</strong> | ap-northeast-1 (Tokyo) | Japan East (Tokyo) | asia-northeast1 (Tokyo) |
| <strong>Japan (DR)</strong> | ap-northeast-3 (Osaka) | Japan West (Osaka) | asia-northeast2 (Osaka) |
| <strong>South Korea</strong> | ap-northeast-2 (Seoul) | Korea Central (Seoul) | asia-northeast3 (Seoul) |
| <strong>Brazil</strong> | sa-east-1 (Sao Paulo) | Brazil South (Sao Paulo) | southamerica-east1 (Sao Paulo) |
| <strong>Canada</strong> | ca-central-1 (Montreal) | Canada Central (Toronto) | northamerica-northeast1 (Montreal) |
| <strong>UAE</strong> | me-south-1 (Bahrain) | UAE North (Dubai) | me-central1 (Doha) |
| <strong>Saudi Arabia</strong> | me-central-1 (Tel Aviv)* | — | me-central2 (Dammam) |
| <strong>South Africa</strong> | af-south-1 (Cape Town) | South Africa North (Johannesburg) | — (use europe-west1) |
| <strong>Indonesia</strong> | ap-southeast-3 (Jakarta) | — (use Southeast Asia/Singapore) | asia-southeast2 (Jakarta) |
| <strong>Hong Kong</strong> | ap-east-1 (Hong Kong) | East Asia (Hong Kong) | asia-east2 (Hong Kong) |
| <strong>Taiwan</strong> | ap-east-1 (Hong Kong)* | — (use East Asia) | asia-east1 (Taiwan) |
| <strong>Mexico</strong> | us-east-1 (Virginia)<em> | South Central US (Texas)</em> | us-south1 (Dallas)* |
| <strong>Sweden</strong> | eu-north-1 (Stockholm) | Sweden Central (Gavle) | europe-north1 (Finland)* |
| <strong>Italy</strong> | eu-south-1 (Milan) | Italy North (Milan) | europe-west8 (Milan) |
| <strong>Spain</strong> | eu-south-2 (Spain) | — (use France Central) | europe-southwest1 (Madrid) |
| <strong>Israel</strong> | il-central-1 (Tel Aviv) | Israel Central (Tel Aviv) | me-west1 (Tel Aviv) |
| <strong>Poland</strong> | eu-central-1 (Frankfurt)* | Poland Central (Warsaw) | europe-central2 (Warsaw) |
*Asterisk indicates the nearest region when no local region exists for that provider.
Notes on the Table:
- AWS has the most regions globally (33+ regions) but some newer regions have limited service availability
- Azure has the highest region count (60+ regions) but many are paired regions or limited availability zones
- GCP has fewer regions (40+) but each region tends to have complete service coverage
- Always verify current region availability on provider websites as new regions launch frequently
---
3. Services Not Available in All Regions
The Service Availability Problem
Cloud providers launch new services in primary regions first, then expand over time. This creates a common frustration: you build in your local region for latency reasons, then discover that a service you need is only available in us-east-1.
AWS Service Availability Gaps
Services commonly NOT available in all regions:
- Amazon Bedrock (Foundation Models/LLMs): Available in limited regions (us-east-1, us-west-2, eu-west-1, ap-southeast-1, ap-northeast-1)
- Amazon SageMaker (full feature set): Some SageMaker features are region-limited
- AWS App Runner: Not available in all regions
- Amazon Kendra (Enterprise Search): Limited regions
- Amazon Connect (Contact Center): Limited regions
- AWS Clean Rooms: Limited regions
- Newer AI/ML services: Typically launch in us-east-1 and us-west-2 first
How to Check AWS Service Availability:
Visit the AWS Regional Services List: aws.amazon.com/about-aws/global-infrastructure/regional-product-services/
This page provides a complete matrix of every AWS service and which regions support it. Bookmark this — you will reference it regularly.
Azure Service Availability Gaps
- Azure OpenAI Service: Limited to specific regions (East US, West Europe, France Central, and others)
- Azure AI Services: Newer capabilities roll out to primary regions first
- Azure Cosmos DB (all APIs): Some API types not available in all regions
- Azure Synapse Analytics: Not all features in all regions
GCP Service Availability Gaps
- Vertex AI: Not all model types available in all regions
- BigQuery Omni: Limited regions for multi-cloud analytics
- Cloud Healthcare API: Limited regions
- Document AI: Limited regions
Strategy for Service Gaps
Approach 1: Use primary region for compute, secondary for specific services
Your application runs in ap-south-1 (Mumbai) for user-facing latency, but calls Amazon Bedrock in us-east-1 via API. The Bedrock call adds 200-300ms latency, which is acceptable for AI-generated content that is not real-time.
User → ap-south-1 (API + DB + Cache)
↓ (async or tolerable latency)
us-east-1 (Bedrock, Kendra, specialized services)
Approach 2: Event-driven cross-region
S3 bucket in ap-south-1 triggers replication to us-east-1, where a Lambda processes the file with a region-specific service, then writes results back.
Approach 3: Accept the latency budget
For non-real-time use cases (batch processing, background analysis, content generation), cross-region API calls are perfectly fine. Budget 200-400ms per cross-region call and architect accordingly.
---
4. When a Service is NOT Available in Your Region
Fallback Region Strategy
When your primary region does not have a service you need, use the nearest region that does. Here is the recommended fallback mapping:
| Primary Region | Fallback Region | Added Latency | Reasoning |
|---|---|---|---|
| ap-south-1 (Mumbai) | ap-southeast-1 (Singapore) | ~50-70ms | Closest region with broad service availability |
| ap-south-2 (Hyderabad) | ap-south-1 (Mumbai) | ~10-20ms | Same country, primary region |
| sa-east-1 (Sao Paulo) | us-east-1 (Virginia) | ~120-150ms | Closest US region, best service coverage |
| af-south-1 (Cape Town) | eu-west-1 (Ireland) | ~150-180ms | Best connected EU region |
| me-south-1 (Bahrain) | eu-west-1 (Ireland) | ~100-130ms | Well-connected, broad services |
| ap-southeast-3 (Jakarta) | ap-southeast-1 (Singapore) | ~20-30ms | Very close, full service catalog |
| ap-northeast-2 (Seoul) | ap-northeast-1 (Tokyo) | ~30-40ms | Close proximity, broader services |
| eu-south-1 (Milan) | eu-central-1 (Frankfurt) | ~20-30ms | Primary EU region |
| ca-central-1 (Montreal) | us-east-1 (Virginia) | ~20-30ms | Very close, full coverage |
Decision Framework for Missing Services
Option 1: Use the nearest region with that service
- Best when: The service is called infrequently (< 100 times/minute) or latency is acceptable
- Implementation: Create a separate SDK client configured for the remote region
- Considerations: Cross-region data transfer costs ($0.02/GB between most regions)
Option 2: Cross-region API calls with latency budget
- Best when: The service call is not in the hot path (background processing, async workflows)
- Implementation: Queue requests, process in the region with the service, return results asynchronously
- Considerations: Add timeout and retry logic for cross-region calls
Option 3: Wait for availability
- Best when: The service is on the provider's roadmap for your region and you can work around it temporarily
- Check roadmaps: AWS announcements, Azure updates blog, GCP release notes
- Risk: No guaranteed timeline — could be months or years
Option 4: Use an alternative service or architecture
- Best when: Cross-region is not acceptable and waiting is not feasible
- Example: Instead of Bedrock (not in your region), use a self-hosted LLM on EC2/ECS with GPU instances in your region
- Considerations: More operational complexity, potentially higher cost
---
5. Compliance Requirements by Region
GDPR (European Union)
Scope: Applies to any organization processing personal data of EU residents, regardless of where the organization is located.
Data Location Requirements:
- Personal data should be processed within the EU/EEA
- Transfer to "adequate" countries (UK, Canada, Japan, South Korea, etc.) is permitted
- Transfer to US requires specific mechanisms (EU-US Data Privacy Framework, Standard Contractual Clauses)
- In practice: Deploy in eu-west-1 (Ireland), eu-central-1 (Frankfurt), or eu-west-2 (London) for EU users
Recommended Regions for GDPR Compliance:
- AWS: eu-west-1 (Ireland), eu-central-1 (Frankfurt), eu-west-2 (London), eu-west-3 (Paris), eu-south-1 (Milan), eu-north-1 (Stockholm)
- Azure: West Europe (Netherlands), North Europe (Ireland), Germany West Central, France Central, UK South
- GCP: europe-west1 (Belgium), europe-west2 (London), europe-west3 (Frankfurt), europe-west4 (Netherlands), europe-west9 (Paris)
RBI India (Financial Data)
Scope: Reserve Bank of India mandates that all payment system data must be stored exclusively in India.
Requirements:
- Payment data, transaction data, and all system audit trails must reside in India
- Even backups and DR must be within India
- Processing can happen outside India if data is deleted from foreign systems within 24 hours (but storage must be in India)
Recommended Regions:
- AWS: ap-south-1 (Mumbai), ap-south-2 (Hyderabad)
- Azure: Central India (Pune), South India (Chennai), West India (Mumbai)
- GCP: asia-south1 (Mumbai), asia-south2 (Delhi)
Architecture Implication: You need DR within India, not cross-country. Use Mumbai as primary and Hyderabad/Delhi as DR.
HIPAA (United States)
Scope: Applies to healthcare organizations and their business associates handling Protected Health Information (PHI).
Requirements:
- No geographic restriction — HIPAA does not mandate data stay in the US
- Requires a Business Associate Agreement (BAA) with the cloud provider
- Only HIPAA-eligible services can process PHI
- Encryption at rest and in transit required
- Access logging and audit trail required
AWS HIPAA-Eligible Services: EC2, S3, RDS, Lambda, ECS, EKS, DynamoDB, and 100+ others (check AWS HIPAA eligible services page)
Recommended Regions: Any US region with BAA in place. us-east-1 and us-west-2 have the broadest HIPAA-eligible service coverage.
China
Scope: Cybersecurity Law and Data Security Law require data collected in China to be stored within China.
Critical Difference: AWS China and Azure China are operated by local partners (not directly by AWS/Azure) and are completely separate from the global cloud.
- AWS China: Operated by Sinnet (Beijing region) and NWCD (Ningxia region). Separate account, separate billing.
- Azure China: Operated by 21Vianet. Separate from global Azure.
- GCP: Does not have a China region.
Implication: You cannot easily extend your global cloud architecture into China. Plan for a separate deployment with separate infrastructure.
Government Workloads (US)
- AWS GovCloud: Physically isolated regions (us-gov-west-1, us-gov-east-1) for FedRAMP High, ITAR, DoD SRG workloads. US persons only on the operations team.
- Azure Government: Separate datacenters with FedRAMP High, DoD IL4/IL5 certifications. Physically and logically isolated from commercial Azure.
---
6. Cost Differences Between Regions
The Cost Gap is Real
Cloud pricing is not uniform across regions. Infrastructure costs (power, cooling, real estate, network connectivity) vary by location, and these differences are passed to customers.
Regional Price Comparison (AWS EC2 m6i.large — On-Demand)
| Region | Hourly Cost | Monthly Cost* | Premium vs Virginia |
|---|---|---|---|
| us-east-1 (Virginia) | $0.096 | $69.12 | Baseline |
| us-west-2 (Oregon) | $0.096 | $69.12 | 0% |
| eu-west-1 (Ireland) | $0.107 | $77.04 | +11% |
| eu-central-1 (Frankfurt) | $0.113 | $81.36 | +18% |
| ap-southeast-1 (Singapore) | $0.113 | $81.36 | +18% |
| ap-south-1 (Mumbai) | $0.107 | $77.04 | +11% |
| ap-northeast-1 (Tokyo) | $0.120 | $86.40 | +25% |
| sa-east-1 (Sao Paulo) | $0.139 | $100.08 | +45% |
| af-south-1 (Cape Town) | $0.131 | $94.32 | +36% |
| me-south-1 (Bahrain) | $0.120 | $86.40 | +25% |
*Monthly cost assumes 720 hours (30 days). Actual prices may vary; check current pricing on AWS.
Key Cost Observations
Cost Optimization Example
Scenario: SaaS application serving users in India and Brazil
| Approach | India Region | Brazil Region | Monthly Compute Cost |
|---|---|---|---|
| Single region (Virginia) | us-east-1 | us-east-1 | $5,000 |
| Local regions | ap-south-1 | sa-east-1 | $6,750 (+35%) |
| Hybrid | ap-south-1 (India users) + us-east-1 (Brazil users) | $5,550 (+11%) |
The hybrid approach serves Indian users from Mumbai (low latency) and Brazilian users from Virginia (acceptable latency at 120ms, much cheaper than Sao Paulo). Brazil users experience slightly higher latency but the cost saving is $1,200/month.
Data Transfer Costs
Data leaving a cloud region (egress) is always charged. Data entering (ingress) is free.
- Within same region, same AZ: Free
- Within same region, different AZs: $0.01/GB (AWS), varies by provider
- Between regions (same provider): $0.02/GB typically
- To internet (egress): $0.09/GB first 10TB, decreasing with volume
- CloudFront/CDN: Cheaper egress than direct ($0.085/GB to $0.020/GB depending on volume and edge location)
Implication: If your architecture involves significant cross-region data transfer (replication, cross-region reads), model this cost explicitly. At 10TB/month cross-region, you are paying $200/month just in transfer.
---
7. Multi-Region Architecture Considerations
When to Go Multi-Region
Multi-region adds complexity, cost, and operational overhead. Only pursue it when you have a clear requirement:
Primary + DR Region Pairing
| Primary Region | Recommended DR Region | Reasoning |
|---|---|---|
| us-east-1 (Virginia) | us-west-2 (Oregon) | Geographic diversity, same pricing |
| eu-west-1 (Ireland) | eu-central-1 (Frankfurt) | GDPR-compliant pair |
| ap-south-1 (Mumbai) | ap-south-2 (Hyderabad) | RBI-compliant (data stays in India) |
| ap-northeast-1 (Tokyo) | ap-northeast-3 (Osaka) | Same country pair |
| ap-southeast-1 (Singapore) | ap-southeast-2 (Sydney) | APAC pair with distance |
| eu-west-2 (London) | eu-west-1 (Ireland) | UK + EU pair |
| sa-east-1 (Sao Paulo) | us-east-1 (Virginia) | Only option for LATAM DR |
| ca-central-1 (Montreal) | us-east-1 (Virginia) | Close proximity |
Multi-Region Architecture Patterns
Pattern 1: Active-Passive (DR)
- Primary region handles all traffic
- Secondary region has infrastructure provisioned but no active traffic
- Database replication (async) keeps DR region up to date
- Failover time: 5-30 minutes depending on automation
- Cost: ~30-50% of primary region cost for keeping DR warm
Pattern 2: Active-Active (Read)
- Both regions serve read traffic (nearest region to user)
- Writes go to primary region and replicate to secondary
- Read replicas in secondary region serve local reads
- Failover for writes: redirect to secondary (now primary)
- Cost: ~70-90% of running two full deployments
Pattern 3: Active-Active (Full)
- Both regions handle reads and writes
- Conflict resolution required (last-writer-wins, CRDTs, or application-level)
- Most complex but provides true global resilience
- Services like DynamoDB Global Tables, Cosmos DB, CockroachDB handle this at the database level
- Cost: 100%+ of single region (replication overhead)
Cross-Region Data Replication Costs
| Data Volume/Month | Replication Cost | Notes |
|---|---|---|
| 100 GB | $2/month | Negligible for most applications |
| 1 TB | $20/month | Moderate — budget for it |
| 10 TB | $200/month | Significant — optimize what you replicate |
| 100 TB | $2,000/month | Major cost line — replicate only critical data |
| 1 PB | $20,000/month | Consider dedicated connectivity or selective replication |
---
Decision Flowchart: How to Choose Your Region in 5 Steps
Step 1: Identify Compliance Constraints
Does your data have mandatory geographic restrictions?
- Yes → Your region is determined. Use the compliance section above to identify allowed regions.
- No → Continue to Step 2.
Step 2: Identify Your Primary User Base
Where are 80%+ of your users located?
- Single country → Use the local region from the mapping table above.
- Single continent → Choose the most central region for that continent.
- Global → Continue to Step 3.
Step 3: Check Service Availability
Does your target region have all the AWS/Azure/GCP services you need?
- Yes → Continue to Step 4.
- No → Decide: Use the nearest region with full coverage OR plan cross-region architecture for specific services.
Step 4: Evaluate Cost
Is the regional price premium acceptable for your budget?
- Premium < 15% → Accept it for the latency benefit.
- Premium > 25% → Consider a nearby cheaper region if latency increase is acceptable.
- Sao Paulo (45% premium) → Consider Virginia + CDN for non-compliance-critical workloads.
Step 5: Plan for Growth
Will you need multi-region in the next 2 years?
- No → Deploy in single region with multi-AZ for availability.
- Yes → Choose a primary region that pairs well with your future DR region. Use cloud-agnostic patterns (Terraform, containers) to make future expansion easier.
---
Quick Reference: Top Recommendations by Scenario
| Scenario | Recommended Region | Reasoning |
|---|---|---|
| Indian startup, general workload | AWS ap-south-1 | Local, good pricing, broad services |
| Indian fintech (RBI compliant) | AWS ap-south-1 + ap-south-2 (DR) | Both in India, compliance met |
| US SaaS, East Coast users | AWS us-east-1 | Cheapest, most services, lowest latency |
| EU SaaS, GDPR compliant | AWS eu-west-1 or eu-central-1 | GDPR zone, good service coverage |
| Global SaaS, primary US | AWS us-east-1 + CloudFront global | CDN handles international latency |
| Southeast Asia focused | AWS ap-southeast-1 | Hub for SEA, good service coverage |
| Brazil focused | AWS sa-east-1 | Only local option despite high cost |
| Japan focused | AWS ap-northeast-1 | Best coverage in Japan |
| Government (US) | AWS GovCloud us-gov-west-1 | FedRAMP, ITAR compliance |
| Multi-cloud primary | GCP us-central1 or AWS us-east-1 | Best service coverage for primary |
---
Frequently Asked Questions
How do I choose the right AWS region for my application?
Consider four factors: latency to your users (pick regions closest to your user base), service availability (not all services are in all regions), compliance requirements (data residency laws may mandate specific regions), and pricing (regions vary by up to 20% for the same services). Test latency from your target user locations before committing.
What is the difference between regions and availability zones?
A region is a geographic area (e.g., us-east-1 in Virginia) containing multiple isolated data centers called availability zones (e.g., us-east-1a, us-east-1b). Availability zones have independent power and networking but low-latency connections between them. Deploy across multiple AZs for high availability within a region.
Should I deploy in multiple regions?
Multi-region adds significant complexity and cost, so only do it if you need geographic latency optimization for a global user base, compliance with data residency laws, or disaster recovery with near-zero RPO/RTO. For most applications, multi-AZ within a single region provides sufficient availability at lower operational overhead.
How does data residency affect cloud region selection?
Regulations like GDPR (EU), PIPEDA (Canada), and data localization laws require certain data to stay within specific geographic boundaries. Identify what data falls under these regulations, then choose regions that satisfy compliance. Use AWS Organizations SCPs or Azure Policy to prevent accidental deployment in non-compliant regions.
---
Related Resources
- AWS vs Azure vs GCP Compute Services — Choosing the right compute service for your workload
- SMS and Email Notifications Architecture — Notification system design with regional considerations
- Monitoring and Alerting for Production Systems — Observability across regions
- Docker Production Best Practices — Container deployments that work across regions