# [Comparing bandwidth prices and network latency between Google Compute zones and regions](/content/posts/comparing-bandwidth-prices-and-network-latency-between-google-compute-zones-and-regions/index.html)

Feb 17, 2017

Justin Keller

Below is a breakdown of bandwidth prices and network latencies on **[Google Compute Engine](https://cloud.google.com/compute/)** between virtual machines in the same zone, different zones, and different regions.

All VM's used for testing were of instance type `f1-micro` _(1 vCPU, 0.6 GB memory)_ and used internal IP addresses.

## GCE Bandwidth Prices

| Traffic type                         | Price (per GB) | 
|--------------------------------------|----------------| 
| Ingress                              | Free           | 
| Egress inner-zone                    | Free           | 
| Egress cross-zone in the same region | $0.01          | 
| Egress cross-region within the US    | $0.01          |

**Note:** If VM's span regions not within the US, bandwidth costs are significantly higher and billed at standard GCE [Internet Egress rates](https://cloud.google.com/vpc/network-pricing#internet_egress).

## GCE Network Latencies

| From zone              | To zone                | Type         | Average ping rtt (latency) | 
|------------------------|-----------------------|--------------|-----------------------------| 
| us-west1-a (Oregon)   | us-west1-a (Oregon)   | inner-zone   | 0.37 ms                    | 
| us-west1-a (Oregon)   | us-west1-b (Oregon)   | cross-zone   | 0.53 ms                    | 
| us-west1-a (Oregon)   | us-central1-a (Iowa)  | cross-region  | 34 ms                      | 
| us-west1-a (Oregon)   | us-east1-b (South Carolina) | cross-region  | 67 ms                      |

Below are the full `ping` results of each test as well for completeness.

**us-west1-a to us-west1-a (inner-zone)**

```shell
PING 10.138.0.2 (10.138.0.2) 56(84) bytes of data.
64 bytes from 10.138.0.2: icmp_seq=1 ttl=64 time=1.16 ms
64 bytes from 10.138.0.2: icmp_seq=2 ttl=64 time=0.298 ms
64 bytes from 10.138.0.2: icmp_seq=3 ttl=64 time=0.313 ms
64 bytes from 10.138.0.2: icmp_seq=4 ttl=64 time=0.307 ms
64 bytes from 10.138.0.2: icmp_seq=5 ttl=64 time=0.298 ms
64 bytes from 10.138.0.2: icmp_seq=6 ttl=64 time=0.312 ms
64 bytes from 10.138.0.2: icmp_seq=7 ttl=64 time=0.438 ms
64 bytes from 10.138.0.2: icmp_seq=8 ttl=64 time=0.272 ms
64 bytes from 10.138.0.2: icmp_seq=9 ttl=64 time=0.262 ms
64 bytes from 10.138.0.2: icmp_seq=10 ttl=64 time=0.294 ms
64 bytes from 10.138.0.2: icmp_seq=11 ttl=64 time=0.269 ms
64 bytes from 10.138.0.2: icmp_seq=12 ttl=64 time=0.285 ms
64 bytes from 10.138.0.2: icmp_seq=13 ttl=64 time=0.313 ms
^C
--- 10.138.0.2 ping statistics ---
13 packets transmitted, 13 received, 0% packet loss, time 12000ms
rtt min/avg/max/mdev = 0.262/0.371/1.165/0.233 ms
```

**us-west1-a to us-west1-b (cross-zone)**

```shell
PING 10.138.0.4 (10.138.0.4) 56(84) bytes of data.
64 bytes from 10.138.0.4: icmp_seq=1 ttl=64 time=1.88 ms
64 bytes from 10.138.0.4: icmp_seq=2 ttl=64 time=0.439 ms
64 bytes from 10.138.0.4: icmp_seq=3 ttl=64 time=0.447 ms
64 bytes from 10.138.0.4: icmp_seq=4 ttl=64 time=0.399 ms
64 bytes from 10.138.0.4: icmp_seq=5 ttl=64 time=0.520 ms
64 bytes from 10.138.0.4: icmp_seq=6 ttl=64 time=0.389 ms
64 bytes from 10.138.0.4: icmp_seq=7 ttl=64 time=0.425 ms
64 bytes from 10.138.0.4: icmp_seq=8 ttl=64 time=0.452 ms
64 bytes from 10.138.0.4: icmp_seq=9 ttl=64 time=0.409 ms
64 bytes from 10.138.0.4: icmp_seq=10 ttl=64 time=0.397 ms
64 bytes from 10.138.0.4: icmp_seq=11 ttl=64 time=0.393 ms
64 bytes from 10.138.0.4: icmp_seq=12 ttl=64 time=0.418 ms
64 bytes from 10.138.0.4: icmp_seq=13 ttl=64 time=0.355 ms
^C
--- 10.138.0.4 ping statistics ---
13 packets transmitted, 13 received, 0% packet loss, time 12000ms
rtt min/avg/max/mdev = 0.355/0.532/1.880/0.391 ms
```

**us-west1-a to us-central1-a (cross-region)**

```shell
PING 10.128.0.2 (10.128.0.2) 56(84) bytes of data.
64 bytes from 10.128.0.2: icmp_seq=1 ttl=64 time=35.0 ms
64 bytes from 10.128.0.2: icmp_seq=2 ttl=64 time=34.0 ms
64 bytes from 10.128.0.2: icmp_seq=3 ttl=64 time=34.1 ms
64 bytes from 10.128.0.2: icmp_seq=4 ttl=64 time=34.0 ms
64 bytes from 10.128.0.2: icmp_seq=5 ttl=64 time=34.0 ms
64 bytes from 10.128.0.2: icmp_seq=6 ttl=64 time=34.0 ms
64 bytes from 10.128.0.2: icmp_seq=7 ttl=64 time=34.0 ms
64 bytes from 10.128.0.2: icmp_seq=8 ttl=64 time=34.1 ms
64 bytes from 10.128.0.2: icmp_seq=9 ttl=64 time=34.0 ms
64 bytes from 10.128.0.2: icmp_seq=10 ttl=64 time=34.1 ms
64 bytes from 10.128.0.2: icmp_seq=11 ttl=64 time=34.0 ms
64 bytes from 10.128.0.2: icmp_seq=12 ttl=64 time=34.1 ms
64 bytes from 10.128.0.2: icmp_seq=13 ttl=64 time=34.0 ms
^C
--- 10.128.0.2 ping statistics ---
13 packets transmitted, 13 received, 0% packet loss, time 12002ms
rtt min/avg/max/mdev = 34.027/34.158/35.080/0.270 ms
```

**us-west1-a to us-east1-b (cross-region)**

```shell
PING 10.142.0.2 (10.142.0.2) 56(84) bytes of data.
64 bytes from 10.142.0.2: icmp_seq=1 ttl=64 time=67.2 ms
64 bytes from 10.142.0.2: icmp_seq=2 ttl=64 time=66.6 ms
64 bytes from 10.142.0.2: icmp_seq=3 ttl=64 time=66.6 ms
64 bytes from 10.142.0.2: icmp_seq=4 ttl=64 time=66.6 ms
64 bytes from 10.142.0.2: icmp_seq=5 ttl=64 time=66.6 ms
64 bytes from 10.142.0.2: icmp_seq=6 ttl=64 time=66.7 ms
64 bytes from 10.142.0.2: icmp_seq=7 ttl=64 time=66.6 ms
64 bytes from 10.142.0.2: icmp_seq=8 ttl=64 time=66.7 ms
64 bytes from 10.142.0.2: icmp_seq=9 ttl=64 time=66.6 ms
64 bytes from 10.142.0.2: icmp_seq=10 ttl=64 time=66.7 ms
64 bytes from 10.142.0.2: icmp_seq=11 ttl=64 time=66.7 ms
64 bytes from 10.142.0.2: icmp_seq=12 ttl=64 time=66.6 ms
64 bytes from 10.142.0.2: icmp_seq=13 ttl=64 time=66.6 ms
^C
--- 10.142.0.2 ping statistics ---
13 packets transmitted, 13 received, 0% packet loss, time 12021ms
rtt min/avg/max/mdev = 66.631/66.732/67.296/0.389 ms
```
