AWS China Region Parity Tracker

Item-by-item measurements comparing Beijing, Ningxia and us-east-1: version parity, feature gaps, quota limits, pricing and developer experience. All data from hands-on read-only API testing, continuously updated.

Cite this page

  • Data version: 2026-10-10 (measured 2026-10-07 / 10-08). This tracker is continuously updated — when citing, always include the data version so readers don’t mix old and new numbers.

  • Reproduce it: every number on this page comes from hands-on, read-only API calls at zero cost. The exact commands are in “How to reproduce” (Section 8) near the end of this page — any China-region account can rerun them.

  • Markdown citation (copy as-is):

    1
    2
    
    AWS China Region Parity Tracker (data version 2026-10-10), Martin Liu's Blog,
    https://martinliu.cn/en/aws-china-parity/
    
  • HTML citation (copy as-is):

    1
    
    <a href="https://martinliu.cn/en/aws-china-parity/">AWS China Region Parity Tracker</a> (item-by-item measurements of AWS Beijing/Ningxia vs us-east-1, data collected 2026-10-07/08, Martin Liu's Blog)
    

The question this page answers: if you put your architecture in the AWS China Regions (Beijing cn-north-1 / Ningxia cn-northwest-1), what actually changes?

The official service catalog tells you whether a service exists. It does not tell you “it exists, but only half of it works.” This page covers that second half. Continuously updated — new measurements are appended, old conclusions are kept and annotated.

Source: hands-on read-only API calls (describe / list / get / query) plus dual-source DoH endpoint verification (both dns.google and 223.5.5.5 must agree before a conclusion is drawn). Tested: 2026-10-07 to 2026-10-08 | Accounts: China 097279986018, Global 207916078113 Method: read-only throughout, no resources created, zero cost. Commands in “How to reproduce”.


1. Summary

DimensionParityIn one line
Engine & component versions🟢 High14 of 18 sampled items are identical across all three regions
Compute & database capability🟢 HighDynamoDB is fully at parity; EKS / RDS / DocumentDB / ElastiCache core surfaces are complete
Accelerated compute & AI🔴 LowOnly 3 GPU chips vs 9 globally; the entire Bedrock family is not deployed
Quotas & governance🟡 MediumMulti-account governance (Organizations + Identity Center + SCP) works fully — but it is a separate instance from Global
Cost🟡 MediumNingxia is near us-east-1 (sometimes cheaper); Beijing runs 20%–50% higher
Developer experience🟡 MediumCLI is transparent; no CloudShell; container registry access needs its own path

Bottom line: the China Regions are not a “shrunken version” — the boundaries sit in different places. Core compute, database, container and observability work well and are priced favourably. AI is capped by silicon, not by quota.


2. Version parity: 14 of 18 items identical

Componentus-east-1BeijingNingxia
EKS cluster versions1.32 – 1.37identicalidentical
EKS vpc-cni addon117 versions117117
RDS MySQL / MariaDBparityidenticalidentical
Aurora MySQL35 versions, latest 3.13.032, latest 3.13.0 (in sync)same as Beijing
Aurora PostgreSQL46 versions, latest 18.640, latest 18.4 (2 minor versions behind)same as Beijing
DocumentDB356 engine versions318319
OpenSearchparityidenticalidentical
ElastiCache Redis / Valkey / Memcachedlatest 7.1 / 9.1 / 1.6.6all in syncall in sync

Measured with eks describe-cluster-versions and rds describe-db-engine-versions per region.

Conclusion: “China lags on versions” largely does not hold for containers and databases. Valkey — a 2024 engine — is already there. The one real difference is Aurora PostgreSQL (2 minor versions behind). If your migration hinges on a specific PG minor version, that is the only place worth a dedicated check.


3. Feature surface: a checkmark does not mean it works

3.1 Accelerated instances — the widest gap

Metricus-east-1BeijingNingxia
EC2 instance types1,375432461
Accelerated (GPU) instance types571919

China has 3 chips: NVIDIA T4 (g4dn, 2018), NVIDIA A10G (g5, 2021), AWS Inferentia (inf1, 2020). Global has 9: adds T4g, L4, L40S, A100, H100, H200, Trainium. 11 whole families are absent: g5g g6 g6e g6f inf2 p4d p4de p5 p5en trn1 trn1n.

Two details that matter:

  1. Within a family, sizes are complete — g4dn 7/7, g5 8/8, inf1 4/4. The reduction is “whole families missing”, not “sizes trimmed”. So selection is simple: if the family is there, it is complete.
  2. The largest single instance in China is g5.48xlarge (8×A10G, 192 vCPU, 768 GB RAM), versus p5 (8×H100 80GB) globally. Your AI ceiling is set by silicon, not by quota.

3.2 AI services: “not deployed”, not “not yet enabled”

Dual-source DoH verification:

ServiceBeijingNote
Bedrock (control plane / Runtime)❌ not deployed (NXDOMAIN)no endpoint in either region
Amazon Q Business❌ not deployed
Q Developer / CodeWhisperer❌ not deployed
OpenSearch Serverless (aoss)❌ not deployed
Rekognition / Polly / Textract / Translate❌ not deployed
SageMaker (API / Runtime)✅ endpoint existsself-managed route works
Control: CodeBuild✅ endpoint existsDevOps tooling is fine

“Not deployed” and “not yet enabled” are different things: the former does not even resolve in DNS, the latter is visible in the console but greyed out. For architecture decisions the difference is decisive: don’t wait, change the plan. On AWS China, running AI means SageMaker, self-managed.

3.3 CloudFront (Ningxia)

CapabilityResult
list-distributions✅ available
CloudFront Functions❌ not supported in this region
Key Value Store❌ not supported
Real-time logs❌ not supported

Edge compute is entirely absent, so Lambda@Edge is unavailable by extension.

⚠️ Also essential: CloudFront support in China (Ningxia) ended on 2027-05-31. This is not a feature gap, it is a service exit. Architectures still using CloudFront Ningxia need a migration plan.

3.4 Route 53 and domains

Hosted zones ✅, health checks ✅, traffic policies ❌ (InvalidAction), domain registration ❌ (use a third-party registrar + ICP filing).

3.5 Observability (CloudWatch family)

Sub-featureus-east-1Beijing / Ningxia
Metrics✅✅ parity
Synthetics (canaries)✅✅ parity
Application Signals (SLO)✅✅ parity
RUM✅❌ Account is not authorized
Evidently (A/B)✅⚠️ under review (likely unavailable)

The core three (metrics / canaries / SLO) are at full parity — SLO engineering works in China. RUM being unavailable is the most practical observability gap: if you want to know how slow your site really is for mainland users, you have to build the RUM path yourself.

3.6 DynamoDB: fully at parity

list-tables / list-backups / list-global-tables all work; account throughput caps (80,000 read / 80,000 write) and table caps (40,000 / 40,000) are identical across all three regions.

The data layer is the easiest thing to move. One caveat: the global-tables API responding does not mean you can build a cross-partition global table — partitions are isolated, so cross-partition replication is yours to build.

3.7 Multi-account governance: available, but separate

ItemGlobalChina
Organizationsavailable✅ available and enabled (o-luixbqu4eu, 2 SCPs)
IAM Identity Centeravailable (0 instances)✅ available and enabled (Permission Sets API works)
Identity Center endpoints (portal / OIDC / directory)—✅ all present
Cross-partition link❌ fully independent❌ same

This is more optimistic than expected: Organizations + Identity Center + SCP are fully functional inside the China partition, not a stripped-down version. You can run a parallel multi-account governance stack there.

But the two stacks cannot be joined. Cross-partition accounts need two IAM systems. That is not a configuration problem.


4. Quotas: the traps worth knowing up front

Quotaus-east-1BeijingNingxia
EC2 On-Demand Standard vCPU3288
EC2 Spot Standard vCPU3288
RDS DB instances—2020
Athena Active DML queries—2020
Lambda control-plane API rate—15/sec15/sec
SSL certs per CloudFront distribution—11

EC2 on-demand vCPU defaults to 8. This is the first thing that trips up a new account: to run even a g5.12xlarge (48 vCPU) proof of concept, you must file a quota increase first.

Small numbers like Lambda control plane at 15/sec, Athena at 20 concurrent queries, or one SSL cert per CloudFront distribution hurt automation pipelines far more than resource quotas do. Most of them are not adjustable — there is no ticket to raise, only the architecture to change.

4.1 Disproving our own “quotas are unavailable in China” conclusion

Our first pass saw ListServiceQuotas return 29 items and GetServiceQuota(L-B99A9384) throw NoSuchResource, which looked like “Lambda concurrency quota is invisible in China”. The real cause:

  • the China service-quotas API is perfectly healthy;
  • GetServiceQuota (the applied layer) cannot find an item that has never been initialised;
  • GetAWSDefaultServiceQuota (the default layer) immediately returned 1,000.

Lesson: query both layers (default as the floor, applied as validation). Checking only one produces wrong conclusions — and if you write IaC quota guards, write them against both.

Environment trap worth recording: with a fake-IP proxy, dig returns 198.18.x.x even for fabricated domains. Never trust system DNS for endpoint checks; use dual-source DoH.


5. Cost: Ningxia beats Beijing, and can beat us-east-1

On-demand, Linux, Shared (pricing get-products):

Instanceus-east-1 (USD)Beijing (CNY)Beijing → USDNingxia (CNY)Ningxia → USDNingxia vs us-east-1
m5.xlarge0.1922.0260.285 (+48%)1.3560.191-1%
c6i.2xlarge0.3402.9580.417 (+23%)1.9720.278-18%
g4dn.xlarge0.5265.2230.736 (+40%)3.7110.523-1%
g5.12xlarge5.67253.6417.556 (+33%)37.7815.321-6%

Two counter-intuitive results:

  1. Within China, Beijing and Ningxia can differ by 30%–45%. It is not “China is expensive”, it is “Beijing is expensive”.
  2. Ningxia is sometimes cheaper than us-east-1 (c6i.2xlarge is 18% lower). Changing your default region from Beijing to Ningxia is free cost optimisation.

GPU ladder (on-demand CNY/hour, Beijing)

InstanceGPUBeijingNingxia
g4dn.xlarge1×T45.2233.711
g5.xlarge1×A10G9.5146.701
g5.2xlarge1×A10G11.4628.073
g5.12xlarge4×A10G53.64137.781

⚠️ An open question (not resolved — verify before quoting): the Beijing g5 hourly price is not proportional to GPU count. g5.12xlarge (4 GPUs, CNY 53.64) costs more than g5.16xlarge (1 GPU, CNY 38.74). It survived a double-filtered pricing API check and may be a large-instance surcharge or a data-source lag. Confirm with the console pricing calculator before any large purchase.


6. Developer experience

ItemSituation
docs.amazonaws.cnChina-specific documentation, independent of global docs
AWS CLI dual profiledefault (China) and global (us-east-1) coexist on one machine; endpoint differences are transparent
Direct connectivity from mainlandworks
CloudShell❌ no endpoint in China (NXDOMAIN across candidate domains)
Domain registration❌ not supported; third-party registrar + ICP filing required
Container registry pullsDocker Hub / GitHub / upstream K8s registries are largely unreachable from mainland nodes; build a mirror or proxy
GitHubbroadly usable; clones of small/medium repos are acceptable, so you can build in-country

The most practical item for DevOps teams: design your image channel early. It is not an AWS China limitation, it is mainland network reality — and it decides whether your CI/CD pipeline runs at all.


7. Open items (uncertainty is not hidden here)

  • Comprehend / Transcribe endpoint status (empty DoH answers, needs console confirmation)
  • Beijing g5 price ladder anomaly (g5.12xlarge > g5.16xlarge)
  • S3 Tables completeness in China (API reachable, feature surface unverified)
  • Lambda actual concurrency default (default layer 1,000, applied layer uninitialised)
  • route53domains registration in China (endpoint reachable, officially unsupported)
  • SageMaker Notebook endpoint (no DoH record, contradicts the main SageMaker endpoint)
  • Evidently availability in China (leaning unavailable)
  • Which ElastiCache node SKUs are missing vs the 236 available globally

8. How to reproduce

Everything is read-only and free. Any China account can run this:

TestCommand / API
EKS versionsaws eks describe-cluster-versions --region <r>
RDS enginesaws rds describe-db-engine-versions --engine aurora-mysql --region <r>
Instance breadthaws ec2 describe-instance-type-offerings --region <r>
GPU detailaws ec2 describe-instance-types --instance-types <list> (read GpuInfo)
Quotasaws service-quotas list-service-quotas --service-code <svc> --region <r>aws service-quotas get-aws-default-service-quota --service-code <svc> --quota-code <code> --region <r> ← do not skip this layer
Pricingaws pricing get-products --service-code AmazonEC2 --filters Type=TERM_MATCH,Field=regionCode,Value=<r> ... (query via the us-east-1 endpoint)
Endpoint existenceDual DoH: https://dns.google/resolve?name=<host>&type=A + https://223.5.5.5/resolve

9. Changelog

DateChange
2026-10-10First release. Based on two rounds of read-only measurement (2026-10-07 / 10-08), covering 30+ service surfaces across 5 dimensions.

The measurements are only the starting point. What decides a project is usually the next question: where exactly does your architecture sit on these lines? If your team is evaluating or migrating to AWS China, send over the architecture and we will walk it against all five dimensions:

署名-非商业性使用-禁止演绎 4.0 (CC BY-NC-ND 4.0)
Last updated on 2026-10-11 00:11 CST
comments powered by Disqus
本博客始于 2007 年
Built with Hugo
Theme Stack designed by Jimmy