Skip to content

Shopware CIDR Allocations — Reference ​

Explicit, precomputed CIDR blocks for every BU × environment × system on the Shopware platform (10.34.0.0/16 primary). Use this page directly when provisioning; no subnet math required.

Deployment Model

Shopware environments are deployed on Webscale, following their VPC model:

  • Webscale VPC (offset +0, a /23) hosts the Shopware Backend (Webscale-managed EC2), data services (RDS, ElastiCache, OpenSearch, RabbitMQ), and all external ingress (Webscale ADCs in the public subnets). All workloads share private subnets with security-group-level isolation.
  • Dedicated EKS VPC (offset +4, a /22) hosts the Domain API (GraphQL) and PWA / Next.js Frontend as pods. One dedicated cluster per BU/environment, peered to the Webscale VPC. The EKS VPC has no internet-facing ingress and no AWS ALBs — all inbound traffic arrives from the Webscale ADCs (in the Webscale VPC public subnets) over the VPC peering link. The EKS public subnets exist only for NAT egress.

There is no shared EKS cluster. Each BU/environment gets its own EKS VPC.

The two VPCs are carved from the BU's /21 environment allocation as follows: Webscale at +0 /23, the +2 /23 held as reserved/overflow, and the EKS VPC occupying the +4 /22. This consumes the entire /21 with no fragmentation.

EKS VPC Sized at /22 (revised)

The EKS VPC was originally specced as a /23 at offset +2. Live diagnosis of the CENA staging cluster (watsco-cena-sw-stg-front, VPC 10.34.58.0/23) during a blue/green rollout showed hard IP exhaustion: with two full stack copies live simultaneously, the VPC CNI failed to assign pod IPs (failed to assign an IP address to container), leaving pods stuck in ContainerCreating. A /23 split into /25 (or eksctl's default /26) private subnets does not provide enough per-AZ address space for blue/green plus production replica counts.

The EKS VPC is now a /22 at offset +4 with /24 private subnets (~251 usable per AZ). The Webscale VPC (+0 /23) is unchanged. Existing /23 EKS VPCs cannot be resized in place — moving to the /22 requires standing up a new VPC at the +4 block and migrating the cluster (which aligns naturally with the blue/green cutover workflow).

Each BU receives a /20, split into a Production /21 and a Staging /21, each deployed in a separate AWS account in us-east-2.


Master Allocation Table ​

BUEnvironment/21 AllocationWebscale VPC (+0 /23)EKS VPC (+4 /22)Reserved (+2 /23)
SupplySyncProduction10.34.0.0/2110.34.0.0/2310.34.4.0/2210.34.2.0/23
SupplySyncStaging10.34.8.0/2110.34.8.0/2310.34.12.0/2210.34.10.0/23
BakerProduction10.34.16.0/2110.34.16.0/2310.34.20.0/2210.34.18.0/23
BakerStaging10.34.24.0/2110.34.24.0/2310.34.28.0/2210.34.26.0/23
GemaireProduction10.34.32.0/2110.34.32.0/2310.34.36.0/2210.34.34.0/23
GemaireStaging10.34.40.0/2110.34.40.0/2310.34.44.0/2210.34.42.0/23
CENAProduction10.34.48.0/2110.34.48.0/2310.34.52.0/2210.34.50.0/23
CENAStaging10.34.56.0/2110.34.56.0/2310.34.60.0/2210.34.58.0/23
ECMDIProduction10.34.64.0/2110.34.64.0/2310.34.68.0/2210.34.66.0/23
ECMDIStaging10.34.72.0/2110.34.72.0/2310.34.76.0/2210.34.74.0/23
Peirce PhelpsProduction10.34.80.0/2110.34.80.0/2310.34.84.0/2210.34.82.0/23
Peirce PhelpsStaging10.34.88.0/2110.34.88.0/2310.34.92.0/2210.34.90.0/23
CELATAMProduction10.34.96.0/2110.34.96.0/2310.34.100.0/2210.34.98.0/23
CELATAMStaging10.34.104.0/2110.34.104.0/2310.34.108.0/2210.34.106.0/23
HomansProduction10.34.112.0/2110.34.112.0/2310.34.116.0/2210.34.114.0/23
HomansStaging10.34.120.0/2110.34.120.0/2310.34.124.0/2210.34.122.0/23
GreeComfortProduction10.34.128.0/2110.34.128.0/2310.34.132.0/2210.34.130.0/23
GreeComfortStaging10.34.136.0/2110.34.136.0/2310.34.140.0/2210.34.138.0/23

10.34.144.0/20–10.34.176.0/20 are unassigned BU slots. 10.34.192.0/20 is reserved for Shared Services.

Offset map within each /21: +0 /23 = Webscale VPC · +2 /23 = reserved/overflow · +4 /22 = EKS VPC. The EKS /22 occupies the top half of the /21 (offsets +4 through +7), the only /22-aligned block clear of the Webscale VPC.


System-Level CIDRs ​

Each row in the master table expands into two VPCs. The subnet layout is identical for every BU/environment; only the base address changes.

Webscale VPC (+0 /23) — Backend, Data, Ingress ​

SubnetOffsetAZPurposeUsable IPs
webscale-public-abase.0/262aWebscale ADC (all ingress), NAT Gateway62
webscale-public-bbase.64/262bWebscale ADC (all ingress)62
webscale-private-abase.128/252aAll workloads (Backend, data)126
webscale-private-bbase+1.0/252bAll workloads126
webscale-private-cbase+1.128/252cAll workloads126

EKS VPC (+4 /22) — Domain API + PWA/Frontend ​

The /22 splits into one public /24 (carved into /26s for NAT egress across 3 AZs) and three private /24s (one per AZ). Offsets are relative to the /22 base at +4.

SubnetOffsetAZPurposeUsable IPs
eks-public-abase+4.0/262aNAT Gateway (egress only)62
eks-public-bbase+4.64/262bNAT Gateway (egress only)62
eks-public-cbase+4.128/262cNAT Gateway (egress only)62
(spare public)base+4.192/26—Reserved62
eks-nodes-abase+5.0/242aEKS nodes + pods (Domain API, PWA)251
eks-nodes-bbase+6.0/242bEKS nodes + pods251
eks-nodes-cbase+7.0/242cEKS nodes + pods251

There are no AWS ALBs in the EKS VPC. All external ingress arrives from the Webscale ADCs (in the Webscale VPC public subnets) over the VPC peering link, so the EKS public subnets carry only NAT Gateways for outbound traffic and do not need AWS Load Balancer Controller ELB-discovery tags.

EKS Capacity

/24 private subnets provide 251 usable IPs per AZ (~753 across three AZs). This is sized for the blue/green failure mode: two full stack copies live at once, plus rolling surge and CNI warm-pool overhead. For production (≥2 replicas per deployment, ~50+ app pods per copy), worst-case single-AZ demand during a rollout is ~100 IPs, leaving roughly 2.4× headroom. If pod density ever exceeds this, enable VPC CNI prefix delegation — a /24 has ample room for contiguous /28 prefixes, unlike the previous /25. Cache for the Domain API can run in-cluster (an in-cluster Valkey deployment is a convenience measure), though production ideally uses a shared ElastiCache instance so cache state persists across rolling deployments and blue/green stacks. Peering to the Webscale VPC provides the path to the Shopware backend and carries inbound traffic from the Webscale ADCs (there are no ALBs in the EKS VPC consuming IPs).

Do Not Use eksctl Default Subnets

eksctl's default layout carves the VPC into six /26 subnets (3 public + 3 private), which strands address space and caps each AZ at ~59 IPs — this is what caused the CENA staging exhaustion. Provision the EKS VPC with the explicit /24 private subnets above (via CDK / CloudFormation / Terraform), not eksctl defaults.


Worked Example — SupplySync Staging ​

Staging base: 10.34.8.0 (account: separate ecom Shopware staging account, us-east-2).

Webscale VPC — 10.34.8.0/23

SubnetCIDRAZPurpose
ssync-stg-public-a10.34.8.0/262aWebscale ADC (all ingress), NAT Gateway
ssync-stg-public-b10.34.8.64/262bWebscale ADC (all ingress)
ssync-stg-private-a10.34.8.128/252aBackend, data services
ssync-stg-private-b10.34.9.0/252bBackend, data services
ssync-stg-private-c10.34.9.128/252cBackend, data services

EKS VPC — 10.34.12.0/22 ← Domain API + PWA cluster

SubnetCIDRAZPurpose
ssync-stg-eks-public-a10.34.12.0/262aNAT Gateway (egress only)
ssync-stg-eks-public-b10.34.12.64/262bNAT Gateway (egress only)
ssync-stg-eks-public-c10.34.12.128/262cNAT Gateway (egress only)
ssync-stg-eks-nodes-a10.34.13.0/242aEKS nodes + pods
ssync-stg-eks-nodes-b10.34.14.0/242bEKS nodes + pods
ssync-stg-eks-nodes-c10.34.15.0/242cEKS nodes + pods

The +2 /23 (10.34.10.0/23) is held as reserved/overflow.

Peering: 10.34.12.0/22 (EKS) ↔ 10.34.8.0/23 (Webscale) — no CIDR overlap, both within the 10.34.8.0/21 staging allocation.

Existing SupplySync Deployment

The currently deployed SupplySync environments live on the legacy Magento range (supplysync-staging-vpc = 10.33.2.0/23), provisioned before this plan. The 10.34.x allocations here are forward-looking for the Shopware platform. New Shopware infrastructure uses 10.34.x; the legacy 10.33.x VPCs are documented under SupplySync.


DR — 10.35.0.0/16 ​

The DR region mirrors this structure exactly: same BU offsets, same +0 (Webscale /23) / +4 (EKS /22) system layout, in 10.35.x instead of 10.34.x. No CIDR overlap with primary enables Transit Gateway route propagation between regions. To derive any DR CIDR, replace 10.34 with 10.35 in the tables above.