Data Transfer Modeling: NAT, Endpoints, CloudFront, and Hybrid
Key Takeaways
- Task 2.6 requires data-transfer modeling on new designs; Task 3.5 is reading CUR usage types when NAT, inter-AZ, or egress line items explode on an already-built network
- Same-AZ private-IP traffic is the cheap intra-VPC path; inter-AZ replication is billed; inter-Region and internet egress are progressively more expensive patterns
- NAT Gateway hourly plus per-GB processing is a classic private-subnet bill; gateway VPC endpoints for Amazon S3 and Amazon DynamoDB remove that processing for those prefixes at no extra endpoint charge
- Amazon CloudFront is usually the professional answer for global internet egress of cacheable content; keep Amazon S3 in-Region for application data unless cross-Region replication is an explicit durability/latency requirement
- AWS Direct Connect outbound is the volume hybrid path; Site-to-Site VPN is encrypted internet overlay and inherits internet-style transfer economics
Model the path before you buy the pipe
Task 2.6 on the official SAP-C02 outline explicitly lists data transfer costs and the skill of performing data transfer modeling. That is a new-solution activity: draw every packet path while the VPC is still a diagram. Task 3.5 is the opposite tempo: CUR already shows NatGateway-Bytes, DataTransfer-Regional-Bytes, or inter-Region AWS-Out-Bytes, and you must stop the hemorrhage. Task 1.5 still applies because those usage types are often shared-platform costs that tagging never captured—Cost Categories and a networking-account showback rule belong next to the technical fix.
Do not quote a memorized per-gigabyte figure on the exam unless the item prints one. Rates vary by Region pair and change. What does not change is the ranking of paths and which service removes which charge.
The qualitative cost ladder
Inbound data transfer into AWS is generally free. Almost every painful bill is outbound or inter-node.
| Path | Typical exam economics | When it shows up |
|---|---|---|
| Same AZ, private IP, same VPC | No data-transfer charge | App to local cache, local EFS mount targets you kept AZ-local |
| Inter-AZ (same Region), private IP | Billed each way for many EC2/VPC patterns; Multi-AZ HA is not free | Synchronous DB replication, chatty east-west microservices, cross-AZ load balancer to target |
| Same Region Amazon S3 to EC2 | In-Region S3 data transfer into EC2 is the cheap/free pattern relative to crossing Regions | App reads of an in-Region bucket |
| Interface VPC endpoint (PrivateLink) | Hourly per AZ plus per-GB data processing, traffic stays on the AWS network | Private access to AWS APIs other than S3/DynamoDB gateway endpoints |
| NAT Gateway | Hourly plus per-GB data processing, on top of the destination's transfer charges | Private subnet IPv4 to the internet or to AWS public endpoints if you did not use VPC endpoints |
| Inter-Region | Outbound from the source Region billed at inter-Region rates | S3 Cross-Region Replication, Aurora Global Database, backup copies, dual-Region active-active |
| Internet egress from Region public endpoints | Among the most expensive common paths | Users pulling from ALB/EC2/S3 directly |
| Amazon CloudFront to viewers | Edge cache; origin-to-CloudFront fetch is a preferential path compared with sending every byte from the origin to the internet; viewer egress is CloudFront regional transfer | Public websites, APIs, software downloads |
| AWS Direct Connect outbound | Port-hour plus DX data-transfer-out, typically lower than internet egress at steady high volume | Hybrid data-center pipelines |
| AWS Site-to-Site VPN | IPsec over the internet; transfer follows internet-style economics, not DX rates | Backup connectivity, low-volume admin |
Public or Elastic IP hairpinning even inside a Region can attract regional data-transfer charges that private IP would not. Keep east-west traffic on private addresses.
NAT Gateway bills exploding: existing forensics and new design
The signature Task 3.5 stem is a private-subnet fleet whose NAT Gateway line item rivals compute. NAT Gateway charges per hour per AZ (you usually deploy one NAT per AZ for HA, which multiplies the hourly component) and per gigabyte processed. That processing fee applies to every byte the NAT sees: software updates, third-party APIs, and Amazon S3 or Amazon DynamoDB if the route to those public endpoints still goes 0.0.0.0/0 → NAT.
Gateway VPC endpoints for S3 and DynamoDB are the first architectural fix. They are route-table prefixes, they do not use PrivateLink ENIs, and AWS offers them with no additional hourly or per-GB endpoint charge. After you add the routes, S3 and DynamoDB traffic never hits the NAT, so NAT processing for that volume drops to zero. You may still pay inter-AZ transfer if the instance and the endpoint path cross AZs; place endpoints and workloads with AZ affinity where the volume is huge.
Interface VPC endpoints cover most other AWS APIs (Amazon SQS, Amazon SNS, Amazon ECR, AWS Systems Manager, Amazon CloudWatch, and so on). They do charge hourly per AZ and per-GB processing, but for high-volume AWS API traffic they still often beat NAT because you avoid NAT processing and internet egress to the public AWS endpoint. For a new VPC (Task 2.6), decide the endpoint set on day one. For an existing VPC (Task 3.5), read CUR: if NatGateway-Bytes correlates with S3 GetObject from private subnets, add the gateway endpoint before you buy a bigger NAT.
Do not “fix” NAT cost by adding more NAT Gateways unless you have AZ-by-AZ throughput or resiliency evidence. Extra NATs add hourly charges. Compute Optimizer can now recommend NAT Gateway rightsizing on existing gateways; that is a 3.5 overlay, not a substitute for endpoints.
CloudFront, S3 same-Region versus cross-Region
If humans on the public internet download cacheable bytes, Amazon CloudFront is usually cheaper and faster than opening the bucket or the ALB to the world. Origin fetches from S3 or EC2 to CloudFront do not use the same internet-egress economics as serving every viewer from the origin. Cache hit ratio is the cost control: cache POSTs? No. Cache versioned software artifacts and media? Yes. Lambda@Edge / CloudFront Functions add compute at the edge; they are performance tools that can reduce origin load, not a blank check.
Same-Region S3 is the default for application data sitting next to compute. S3 Cross-Region Replication (CRR) adds inter-Region data transfer out plus duplicate storage. Use CRR when the requirement is distance, sovereignty, or Region isolation—not as a casual cost-optimization. S3 Transfer Acceleration is a performance path via edge locations for long-haul uploads; it is an extra transfer component, not a discount plan.
Direct Connect versus VPN, and inter-AZ honesty
AWS Direct Connect is the professional answer for steady, high-volume hybrid transfer: a dedicated (or hosted) port billed per hour, plus data-transfer-out over DX that is typically lower than sending the same bytes out the internet through a NAT or a VPN. AWS Site-to-Site VPN remains the right backup or low-volume overlay: it is quick to stand up and it encrypts over the internet, so it does not inherit DX transfer rates. A 50 TB/month nightly warehouse feed on VPN is an exam smell; the same feed on DX with VPN as failover is the pattern.
Inter-AZ cost is the HA tax. Multi-AZ RDS, Aurora storage replication, and three-AZ Kubernetes are still the reliability default. The cost lever is chatty application traffic: session stores, mesh sidecars, and chatty microservices that replicate every request across AZs. AZ-aware routing, local caches (Amazon ElastiCache with same-AZ readers where consistency allows), and not forcing every byte through a central inspection VPC unless a security requirement says so, are Task 2.6 modeling choices. After the fact, CUR regional transfer line items plus VPC Flow Logs tell you which pair of subnets is talking.
Transit Gateway and inspection hubs add data processing of their own. Centralizing NAT or inspection for dozens of VPCs is a valid security architecture; it is also how a networking account becomes the largest bill in showback. Pair the technical design with Task 1.5 Cost Categories so product teams see the allocated TGW/NAT bytes rather than treating the networking account as a mystery tax.
| Scenario | New-solution move (2.6) | Existing-bill move (3.5) |
|---|---|---|
| Private subnets, heavy S3/DynamoDB | Gateway endpoints in the VPC template | Add gateway endpoints; confirm NAT bytes fall |
| Global static and video | CloudFront in front of S3/ALB | Measure origin egress versus CloudFront; raise cache hit ratio |
| 50 TB/month to on-premises | DX primary, VPN backup | Shift bulk prefixes to DX; leave VPN for failover |
| Chatty 3-AZ mesh | Same-AZ affinity for east-west; keep Multi-AZ for HA | Find regional-bytes in CUR; reduce cross-AZ chatter |
| Dual-Region active-active | Budget inter-Region replication as a first-class cost | Verify CRR/global DB transfer, not only storage class |
CUR shows that NAT Gateway data processing in a production VPC now rivals Amazon EC2 cost. Private-subnet workloads read and write heavily to Amazon S3 and Amazon DynamoDB in the same Region, and they also call a third-party HTTPS API on the internet. What should the architect do first to cut the NAT processing that is specific to AWS storage?
A new consumer app will serve cacheable media to global viewers, keep application objects in Amazon S3 next to Amazon EC2 in one Region, and run a Multi-AZ service tier. Product wants Multi-AZ HA but has seen inter-AZ bills explode on a previous chatty mesh. Which data-transfer model is appropriate at design time?
Each night an analytics account copies about 50 TB from Amazon S3 in us-east-1 to an on-premises warehouse. A Site-to-Site VPN already exists for administration. Finance wants the recurring bulk copy to cost less than internet-style egress without waiting on a new application rewrite. Which connectivity choice should the architect recommend?