IaaS: EC2 vs Google Compute Engine

Arguably, Infrastructure as a Service (IaaS) is the most important cloud computing vertical. Within that, in terms of services and features, AWS enjoys the top position, while Google Cloud Platform is slowly catching up. In this post, we’ll discuss the main differences between Amazon’s EC2 and Google Compute Engine (GCE).

EC2 vs Google Compute Engine: Regions

Amazon EC2 is spread across 11 different regions: Northern Virginia, Oregon, Northern California, Ireland, Germany, Singapore, Tokyo, China, Sau Paulo, Sydney, and US GovCloud.

Google Compute Engine is spread across 3 different regions: us-central1, Europe-west1, and asia-east1. Google does not officially reveal the exact locations of these zones. However, according to this post from Gigaom, us-central1 translates to Oklahoma, and Europe-west1 is in Ireland.

EC2 vs Google Compute Engine: Compute Capacity

AWS Instance types are optimized for different types of workloads, like Compute, Storage, Memory, and GPU. Instance types are divided into different “families” like m3 (balanced), c4 (compute optimized), and t2 (baseline level). In its current form, there is a total of 28 instances types. The use of previous generation instances is not recommended due to performance limitations.

Just like AWS, Google Compute Engine also offers instances based on workload type.

Currently, GCE instances are divided into 4 types:

Standard machine types

High CPU machine types

High memory machine types

Small machine types.

GCE offers a total of 17 instance types.

Amazon EC2 Google Compute Engine Type Minimum Computing Capacity Maximum Computing Capacity Minimum Computing Capacity Maximum Computing Capacity General / Standard Purpose 1vCPU/3.75GB Memory 8vCPU/30GB Memory 1vCPU/3.75GB Memory 32vCPU/120MB Memory Compute Optimized / High CPU Instance Type 2vCPU/3.75GB Memory 36vCPU/60GB Memory 2vCPU/1.80GB Memory 32vCPU/28.8 Memory Memory Optimized/ High Memory Instance Type 2vCPU/15.25GB Memory 32vCPU/244GB Memory 2vCPU/13GB Memory 32vCPU/208GB Memory Shared Core 1vCPU/1GB Memory 2vCPU/4GB Memory 1vCPU/0.60GB Memory 1vCPU/1.70GB Memory Storage Optimized 4vCPU/30.5GB Memory 32vCPU/244GB Memory N/A N/A GPU Optimized 8vCPU/15GB Memory N/A N/A N/A

Note: This is a high-level comparison table. Instances internal might vary.

EC2 vs Google Compute Engine: Pricing

Amazon EC2 offers three types of pricing models:

On-demand – pay for compute capacity by the hour with no long term commitments.

– pay for compute capacity by the hour with no long term commitments. Reserved instances – maximize savings by purchasing reserved instances that meet your long term business needs. Reserved instance prices are determined by 4 factors : term (1 or 3 year), operating system, region, and payment options (no upfront, partial upfront, all upfront).

– maximize savings by purchasing reserved instances that meet your long term business needs. Reserved instance prices are determined by 4 factors : term (1 or 3 year), operating system, region, and payment options (no upfront, partial upfront, all upfront). Spot instances – bid for instances using a supply and demand model.

Google Compute Engine machine types are charged for a minimum of 10 minutes’ use. After 10 minutes, instances are charged in 1-minute increments, rounded up to the nearest minute. GCE offers both on-demand and sustained usage pricing models. The sustained usage pricing model provides discounts if your instance is used for more than 25% of a month. To maximize savings, GCE also offers inferred instances, i.e., it combines multiple, non-overlapping instances of the same instance type in the same zone into a single instance for billing.

EC2 vs Google Compute Engine: Security Groups, Network ACLs, and Firewalls

As AWS instances are now provisioned within VPCs, Amazon provides the benefit of both Security Groups and Network ACLs. With Security Groups – working as whitelists – you control incoming and outgoing traffic at the instance level. Network ACLs, on the other hand, work at subnet level, and allow or deny specific IP addresses or networks.

Similarly, Google Compute Engine firewalls regulate outgoing traffic from instances using iptables. Google’s Firewall is also a whitelist service.

EC2 vs Google Compute Engine: Load Balancing

Elastic Load Balancer (ELB) allows you load balance incoming traffic among your backend instances in multiple availability zones (within a single region). This traffic distribution to backend instances happens using a weighted round robin algorithm. Apart from load balancing incoming traffic, ELB also offers session stickiness, cross-zone load balancing, and SSL termination. ELB works with AWS’s auto-scaling and supports IPv4 and IPv6 addresses, HTTP and TCP load balancing, and logging.

Google Compute Engine also offers a load balancer. In addition to distributing incoming traffic between backend instances, unlike AWS, it allows balancing between regions, supports content-based routing, and does not require pre-warming.

EC2 vs Google Compute Engine: Storage

Amazon EC2 provides Elastic Block Storage (EBS) volumes for persistent storage. These EBS volumes are offered in 3 types: Magnetic volumes, General Purpose SSD volumes, and Provisioned IOPS SSD volumes. AWS just increased the performance limits on EBS volumes to 16TB capacity with a peak of 20,000 IOPS/volume and 320 MBps max throughput/volume. EBS volumes can be attached to one instance at a time. Amazon also recently enabled encryption for EBS volumes.

Google Compute Engine offers persistent disk storage, available as both standard (HDD) and solid-state (SSD). All data written to disk in Compute Engine is encrypted on the fly and then transmitted and stored in encrypted form. GCE’s Persistent Disks (PD) can be mounted read-write by one VM or read-only by many VMs. Google persistent disk storage offers 3000 Read IOPS/volume and 15,000 Write IOPS/volume for standard disks and 10,000 Read IOPS/volume and 15,000 Write IOPS/volume for Solid-state persistent disks. Each persistent disk can be up to 10TB in size.

EC2 vs Google Compute Engine: Service Level Agreement

Amazon EC2 offers a service level agreement guaranteeing a monthly uptime percentage of 99.95%. If your actual monthly uptime percentage is less than 99.95%, but equal to or greater than 99.0%, Amazon EC2 offers 10% service credit. For less than 99.0%, you receive 30% service credit.

Google Compute Engine also offers a service level agreement ensuring at least 99.95% uptime. If your monthly uptime percentage is between 99.00% – 99.95%, 10% financial credit is received. For 95.00% – 99.00%, 25% financial credit is received. For anything less than 95.00%, you’ll receive a 50% credit.

EC2 vs Google Compute Engine: Operating System Support

Amazon EC2 supports a wide range of operating systems, including Amazon Linux, Red Hat Enterprise Linux, CentOS, Debian, SUSE, Ubuntu, Oracle Enterprise Linux, FreeBSD, and Windows (2003 R2, 2008, 2008 R2, 2012).

Google Compute Engine supports CentOS, Red Hat Enterprise Linux, Debian, SUSE, Ubuntu, and Windows Server 2008R2. Windows Server support is in beta mode.

There is obviously more to making a full feature and performance comparison of EC2 vs Google Compute Engine, but this is hopefully a good start. AWS and Google both provide plenty of documentation that will allow you to dig much deeper to answer your specific questions.