/// tutorial · aws · 21 jul 2026

Getting started on the AWS Athens Local Zone

Enable the zone, extend your VPC into Athens, and launch your first instance — with the exact Terraform, CLI, and latency numbers we measured on day one.
/date
21 July 2026
/series
Athens Local Zone · part 1 of 6
/author
Thanasis Politis · Head of Solutions

On 20 July 2026, AWS made the Local Zone in Athens (eu-central-1-ath-1a) generally available — the first hyperscaler compute to run on Greek soil. It is a small extension of the eu-central-1 (Frankfurt) Region that lives physically in Athens, managed with the same account, VPC, APIs, and tools you already use.

Why bother? Because the distance is real. From a consumer VDSL line in Athens, we measured a median 11 ms round-trip to the Local Zone versus 44 ms to Frankfurt; first byte of an HTTP response arrived in 24 ms versus 91 ms; and a chatty flow of 50 sequential API calls finished in 1.5 s instead of 6.0 s. We publish the full methodology in a future article; this piece gets you a workload running there.

This is part 1 of a hands-on series. Everything below is real: the commands ran in a live account, and every number comes from measurement, not estimation.
/// the_shape_of_it
One VPC, two zonesExtending an existing VPC into the Athens Local ZoneAWS Region • eu-central-1 (Frankfurt)VPC • 172.31.0.0/16Availability Zone • eu-central-1asubnet 172.31.16.0/20Region servicesdata tier, RDS, ElastiCacheLocal Zone • eu-central-1-ath-1asubnet 172.31.48.0/24 • AthensEC2 c7i.largeC7i / M7i / R7i onlyUser in Athensconsumer VDSL11 ms medianbackbone 34 ms44 ms if it stays in Frankfurt
One VPC, two zones. A Local Zone subnet is just your VPC, extended into Athens — same account, same tools.

Before you start

You need an AWS account, an existing VPC in eu-central-1 with an internet gateway, and either the AWS CLI or Terraform. We show both. All commands target the confirmed zone: name eu-central-1-ath-1a, group eu-central-1-ath-1, parent Region eu-central-1.

Step 1 — Enable the Local Zone

Local Zones are off by default; you opt in to the zone group once per account. It is free — you only pay for resources you deploy. In the console: open the Region selector → Local Zones → Manage Local Zones (the EC2 Global View / "Regions and Zones" tab), find Athens (eu-central-1-ath-1), choose Opt-in, then confirm Opt-in zone group. Or do it in one command:

enable.shbash
aws ec2 modify-availability-zone-group \
  --group-name eu-central-1-ath-1 \
  --opt-in-status opted-in \
  --region eu-central-1

# verify it is available in your account
aws ec2 describe-availability-zones --all-availability-zones \
  --filters Name=zone-name,Values=eu-central-1-ath-1a \
  --region eu-central-1 \
  --query "AvailabilityZones[].{Zone:ZoneName,OptIn:OptInStatus,State:State}"

Step 2 — Extend your VPC into Athens

A Local Zone subnet is the extension. Create one in eu-central-1-ath-1a, give it a route to your internet gateway (Local Zone traffic egresses locally in Athens, not via Frankfurt), and let it assign public IPs — those come from the Athens network border group.

main.tfterraform
resource "aws_subnet" "athens" {
  vpc_id                  = var.vpc_id
  cidr_block              = "172.31.48.0/24"
  availability_zone       = "eu-central-1-ath-1a"
  map_public_ip_on_launch = true            # public IPs from the LZ border group
  tags = { Name = "athens-lz" }
}

resource "aws_route_table" "athens" {
  vpc_id = var.vpc_id
  route {
    cidr_block = "0.0.0.0/0"
    gateway_id = var.igw_id
  }
  tags = { Name = "athens-lz" }
}

resource "aws_route_table_association" "athens" {
  subnet_id      = aws_subnet.athens.id
  route_table_id = aws_route_table.athens.id
}

The CLI equivalent, if you prefer:

subnet.shbash
aws ec2 create-subnet --region eu-central-1 \
  --vpc-id "$VPC_ID" --cidr-block 172.31.48.0/24 \
  --availability-zone eu-central-1-ath-1a

Step 3 — Launch an instance in the zone

Now launch compute into the Local Zone subnet. One thing to know up front: the Athens Local Zone offers the C7i, M7i, and R7i instance families only — general-purpose, compute-, and memory-optimised. We cover the full service and instance list in a future article.

main.tfterraform
data "aws_ssm_parameter" "al2023" {
  name = "/aws/service/ami-amazon-linux-latest/al2023-ami-kernel-default-x86_64"
}

resource "aws_instance" "athens" {
  ami                    = data.aws_ssm_parameter.al2023.value
  instance_type          = "c7i.large"      # C7i / M7i / R7i only in Athens
  subnet_id              = aws_subnet.athens.id
  vpc_security_group_ids = [aws_security_group.athens.id]
  tags = { Name = "athens-lz-demo" }
}

output "public_ip"  { value = aws_instance.athens.public_ip }
output "zone"       { value = aws_instance.athens.availability_zone }

terraform apply, and in a minute or two you have a server running in Athens — zone = eu-central-1-ath-1a — reachable on a public IP advertised locally in Greece.

Verify it — and feel the difference

The point of all this is latency. We put one c7i.large in Athens and an identical one in Frankfurt, in the same VPC, and measured between them. In-zone versus the parent Region, on the private network:

metricin-zone (Athens → Athens)to Frankfurt (parent Region)
round-trip latency (avg)0.38 ms34.3 ms
throughput (single TCP stream)9,526 Mbit/s705 Mbit/s
HTTP first byte0.6 ms69 ms

That is the whole value proposition in three rows: ~90× lower latency, and single-stream throughput freed from the bandwidth-delay product of a 34 ms hop. The full consumer-side and multi-stream numbers follow in a future article.

What it costs, and what to watch

Enabling the zone is free; you pay only for what you run, at Local Zone rates (a modest premium over Region pricing) with On-Demand, Savings Plans, and Spot all available. Two caveats to keep in mind: storage in-zone is Amazon S3 One Zone-IA and EBS Local Snapshots — single-zone durability by design — and several Region services (RDS, ElastiCache, AWS DRS, GPU instances) are not present in Athens. Design for that, or keep those tiers in Frankfurt over the backbone. We map it fully in a future article.

github.com/Nexxion-ai/aws-athens-local-zone

All the Terraform and scripts from this article — plus the benchmark harness and the raw dataset — are in the repo above. Next in the series: a low-latency application tier in Athens, with the complete performance breakdown. When you terraform destroy, everything cleans up.

/// free_readiness_assessment

Book a free readiness assessment

In a short working session we help you understand what the Athens Local Zone means for your business. Together we identify:

  • Whether the Local Zone is relevant for your current architecture
  • Which workloads could benefit from the AWS Local Zone in Greece
  • Where data residency, latency, or DR requirements may create new opportunities
  • What the first migration or modernization step could look like

The goal is simple: decide whether the Athens AWS Local Zone matters for your environment — and what to do next.