LevelUpWith

Explore / Cloud Pro: AWS Networking: Choose, Compare and Launch / Lesson 2

Lesson 2: The Standard Connectivity Profile

Build the reusable connectivity profile that every later service choice is scored against. It covers users, sites and regions, north-south and east-west traffic, protocols, latency and bandwidth, availability, hybrid links, segmentation and zero trust, internet exposure and DDoS, compliance and data paths, team skills, and the cost model.

Free to read, no account needed. Part of Cloud Pro: AWS Networking: Choose, Compare and Launch.

By the end of this level you'll be able to

  • Fill in a connectivity profile for a real or example workload, with measurable targets for latency, bandwidth and availability
  • Split expected traffic into north-south and east-west flows, and estimate monthly GB for each path
  • Break a networking bill into hourly charges, per-GB processing charges and data transfer charges

Why you need a profile before you pick a service

In Level 1 you saw the whole AWS networking catalogue on one page. The catalogue doesn't tell you which service to use. Experienced network engineers don't start a design by asking "Transit Gateway or peering?" They start by asking what the workload actually needs. The connectivity profile is one written page that answers that question. In every later lesson you'll score a service against it, so time spent here pays back for the rest of the course.

You can treat the profile like a building survey. You don't choose beams until you know the loads, the span and the local regulations.

The fields, and what makes them useful

Each field needs a measurable target. A target like "fast" can't be tested. A target like "p95 under 120 ms from London" can.

Field Question to answer Weak answer Profile-ready answer
Users, sites, regions Who connects, from where, and to which AWS Regions? "Global users" 80% EU and 20% US; 2 offices; eu-west-2 primary
Traffic directions What goes in and out (north-south), and what moves between internal tiers (east-west)? "Normal web traffic" See the flow table below
Protocols HTTP(S), gRPC, TCP, UDP, IPsec? "Web" HTTPS 443 inbound; PostgreSQL 5432 internal
Latency Which percentile, and from where? "Low" p95 < 120 ms for EU users
Bandwidth Peak and monthly volume "Lots" 200 Mbps peak; 2 TB/month out
Availability Target percentage and failover time "Always up" 99.9%; survive the loss of one AZ
Hybrid links On-premises connections, and how critical they are "Some" 1 data centre; 50 Mbps; nightly batch
Segmentation and zero trust Who may talk to whom, and on what is that decided? "Secure" Prod and dev isolated; staff access by identity, not IP
Internet exposure and DDoS What is public, and what is the attack surface? "Website" 1 public HTTPS endpoint; everything else private
Compliance and data paths Where may data travel or rest? "GDPR" Customer data stays in EU Regions; inspect egress
Team skills What can the team run at 3 a.m.? "Good" Strong Terraform; no BGP experience
Cost model Hourly, per-GB processed, data transfer "Cheap" Network budget $400/month

Gotcha: an availability figure only means something once you turn it into minutes. A 730-hour month has 43,800 minutes. At 99.9% you're allowed about 43.8 minutes of downtime a month. At 99.99% you're allowed about 4.4 minutes, which rules out manual failover.

North-south vs east-west

  • North-south traffic crosses the edge of your environment: users reaching your app, your servers calling outside APIs, on-premises links.
  • East-west traffic stays inside: app server to database, one service calling another, VPC to VPC.

The split matters because the two directions are priced differently and are protected by different tools. Here's a worked example for ShopFast, a two-AZ web shop:

# shopfast-profile.yaml: keep this in the repo next to the IaC
workload: shopfast
regions: [eu-west-2]
azs: 2                       # app and database are spread across 2 AZs
flows:
  - name: users-to-web       # north-south, inbound
    direction: north-south
    protocol: HTTPS/443
    monthly_gb_out: 2000     # pages and images sent back to users
  - name: app-to-payments-api  # north-south, outbound via NAT
    direction: north-south
    protocol: HTTPS/443
    monthly_gb_processed: 300
  - name: app-to-db          # east-west, about half of it crosses AZs
    direction: east-west
    protocol: TCP/5432
    monthly_gb_cross_az: 500
targets:
  latency_p95_ms: 120
  availability: "99.9%"
  failover: "lose 1 AZ, no manual action"

How do you get the GB numbers? For an existing system, read VPC Flow Logs or last month's bill. For a new one, multiply: requests per month × average response size. For example, 4 million page views × 0.5 MB is about 2,000 GB.

The three buckets of a networking bill

Almost every networking charge on AWS fits into one of three buckets:

  1. Hourly charges. You pay these for something existing, even when it's idle: NAT gateways, Transit Gateway attachments, VPN connections, public IPv4 addresses.
  2. Per-GB processing charges. You pay these for data passing through a managed device, such as a NAT gateway or a Transit Gateway.
  3. Data transfer charges. You pay these for data moving somewhere: out to the internet, or across AZs or Regions.

One gigabyte can land in more than one bucket. Traffic leaving through a NAT gateway is charged for processing and for internet egress.

Example list prices (us-east-1, checked October 2026; other Regions differ):

Item Bucket Example price
NAT gateway Hourly $0.045/hour
NAT gateway data Processing $0.045/GB
Transit Gateway attachment Hourly $0.05/hour
Transit Gateway data Processing $0.02/GB
Site-to-Site VPN connection Hourly $0.05/hour
Public IPv4 address Hourly $0.005/hour
Cross-AZ transfer Data transfer $0.01/GB each direction
Internet egress, first 10 TB Data transfer $0.09/GB (first 100 GB/month free, per account, all Regions combined)

Here's the ShopFast estimate as a script you can rerun whenever the profile changes:

HOURS = 730  # average hours in a month

hourly = {
    "nat_gateways": 2 * HOURS * 0.045,   # one per AZ for resilience
    "public_ipv4":  4 * HOURS * 0.005,   # 2 NAT EIPs + 2 load balancer IPs (example)
}
processing = {
    "nat_data": 300 * 0.045,             # payments API traffic
}
transfer = {
    "internet_egress": (2000 - 100) * 0.09,  # after the 100 GB free allowance
    "cross_az": 500 * 0.01 * 2,              # billed on both send and receive
}
for name, bucket in [("hourly", hourly), ("processing", processing), ("transfer", transfer)]:
    print(f"{name:<11} ${sum(bucket.values()):8.2f}")
hourly      $   80.30
processing  $   13.50
transfer    $  181.00

In this example, data transfer is the biggest bucket, which is common for anything that serves users. The NAT gateways cost $65.70 before they move a single byte. (Load balancer charges come in a later lesson.)

Check your estimate against the real bill

Once the workload is running, group last month's costs by usage type and compare them with the profile:

# Group last month's EC2-Other costs (where NAT and data transfer appear) by usage type
aws ce get-cost-and-usage \
  --time-period Start=2026-09-01,End=2026-10-01 \
  --granularity MONTHLY \
  --metrics UnblendedCost \
  --filter '{"Dimensions":{"Key":"SERVICE","Values":["EC2 - Other"]}}' \
  --group-by Type=DIMENSION,Key=USAGE_TYPE

Usage types containing NatGateway-Hours are hourly charges. NatGateway-Bytes is processing. DataTransfer-Regional-Bytes is cross-AZ transfer. If the real numbers are far from your estimate, your flow table is wrong, so fix the profile first.

Best practice: date every price in the profile and record the Region. Prices change, and a profile without dates leads to stale decisions.

Trade-off: a second NAT gateway doubles the hourly charge, but it's what makes "lose one AZ, no manual action" true. Availability targets and cost targets pull against each other. The profile makes that tension visible so you can decide it on purpose.

Key takeaways

  • The connectivity profile is a one-page, reusable record that every later service choice is scored against.
  • Every field needs a measurable target: a percentile and location for latency, Mbps and GB/month for bandwidth, a percentage and failover behaviour for availability.
  • North-south traffic crosses your edge; east-west traffic stays inside. Estimate monthly GB for each flow.
  • Every networking bill splits into hourly, per-GB processing and data transfer charges, and one GB can be charged in more than one bucket.
  • Turn availability into minutes: 99.9% is about 43.8 minutes a month.
  • Date and Region-tag every price, and check the estimate against Cost Explorer once the workload runs.

A 6-question knowledge check follows this lesson in the app, free and without an account.

Keep going: levels 3 and 4 are free

Create a free account to open the next two levels, save your progress and pick up where you left off. No card needed.

Next: Level 3, Amazon VPC: Subnets, Route Tables and Gateways.

Create a free account →See the whole course

More like this

  • Cloud Pro: AWS AI and Machine Learning: Choose, Compare and Launch

    Map every AWS AI and machine learning service, profile a workload, and pick the right one with evidence. That covers Bedrock and AgentCore, SageMaker AI, the r…

    Course · AWS · Cloud Pro: Choose and Use · Expert · 32 levels · 4 free · Professionally curated by levelupwith.com

  • Cloud Pro: AWS Databases: Choose, Compare and Launch

    Profile any workload, compare every AWS managed database on limits, cost and who runs what, and get the right one running from the CLI and infrastructure as co…

    Course · AWS · Cloud Pro: Choose and Use · Expert · 30 levels · 4 free · Professionally curated by levelupwith.com

  • AWS Certified Cloud Practitioner (CLF-C02) Exam Prep

    Recognise every in-scope AWS service, reason through shared responsibility, Well-Architected, pricing and support scenarios, and answer multiple-choice and mul…

    Exam prep · CLF-C02 · Cloud & Compute · Expert · 42 levels · 4 free · Professionally curated by levelupwith.com

  • AWS Certified AI Practitioner (AIF-C01) Exam Prep

    Work through all five AIF-C01 domains and every task statement so you can pick the right AI, ML or generative AI approach and the right AWS service for a busin…

    Exam prep · AIF-C01 · AI & Agents · Capable · 18 levels · 4 free · Professionally curated by levelupwith.com

  • Ultimate AWS SAA-C03 Mastery Path

    Master AWS Solutions Architecture across security, resilience, performance, and cost domains to confidently pass the SAA-C03 exam.

    Exam prep · SAA-C03 · Cloud & Compute · Expert · 45 levels · 4 free · Professionally curated by levelupwith.com

  • AWS Certified Developer - Associate (DVA-C02) Exam Prep

    Work through every domain, task and in-scope service of the AWS Certified Developer - Associate (DVA-C02) exam guide v2.1 at developer depth, with SDK and CLI…

    Exam prep · DVA-C02 · Cloud & Compute · Expert · 61 levels · 4 free · Professionally curated by levelupwith.com