Cloud services like AWS and Google Cloud provide on-demand delivery of computing power, storage, applications, and databases over the internet. It is a pay-as-you model that eliminates the need for most on-site infrastructure. Therefore, it reduces staff, space, physical security, and capital expenditure. Cloud computing is flexible, allows organizations to change more quickly, and provides cost-effective hardware solutions. It works as a software as a service model (SaaS).
In this blog, I will compare and contrast the basic services that Google Cloud GCP and Amazon AWS provides. I will compare the cost, reliability, basic services of both of these cloud providers.
Amazon AWS was first to the market with a cloud computing solution in 2006. They had a 4-year head start compared to Microsoft Azure and a 6-year head start compared to Google Cloud. Therefore, they make up 32% of the cloud computing market worldwide. They secured large clients like Netflix and Twitter for most of their infrastructure build-out.
AWS regions allow customers to deploy instances globally within minutes. Someone from Vancouver can deploy a Linux instance in Tokyo, Japan, and Oregon, USA at the same time. This provides an incredible advantage to an on-premise solution where it would take days or weeks to get a region online.
Location hosting is divided into three components. The first is an AWS Region. Each AWS Region is isolated from one another to maximize fault tolerance and reliability. Normally a region would be a country or a state. For example, US East 2 is located in Ohio while US West 2 is located in Oregon. In each AWS region, there are clusters of logical data centers. Each data center location is called an availability zone. These availability zones are also isolated from one another within a geographical area. For example, the AWS region US West 2 is located in Oregon, consisting of several different data centers in Portland and Salem. Each of these data centers is considered to be its own availability zone.
Lastly, local zones allow for AWS services to be closer to the end-user. For example, if a user is streaming Netflix from Vancouver but the closest AWS region is in Oregon, Local Zones allow fast and low-latency communication. This is done by having Local Zones provide a seamless and high-bandwidth connection to local workloads.
AWS uses EC2 (Elastic Computer Cloud) to host instances. EC2 allows users to launch instances on several different types of operating systems. This includes Linux Server, Windows Server, macOS, and many more. For students, AWS offers free tier instances for a year. There are nearly 400 types of instances an organization can choose from with 99.99% reliability. Furthermore, individuals can choose Intel, AMD, or ARM-based processors for each instance allowing for high levels of customizability. Once an instance is created, EC2 allows for secure ssh connection to the Linux instances and RDP access for Windows Server instances.
Storage: Amazon S3 Buckets, EFS, EBS, and Amazon S3 Glacier
Amazon AWS has several different types of storage options. The four main ones include Amazon S3, EBS, EFS, and S3 Glacier.
Amazon EBS (Elastic Block Store): Allows users to create discrete storage volumes and attach them to EC2 instances. They can be backed up automatically through snapshots and volumes are automatically replicated within the availability zone. EBS allows for snapshots, encryption, and elasticity.
Amazon S3: Also called Amazon Simple Storage Service is used for fast and inexpensive data storage for websites. It uses buckets to create and containize data. Each bucket has an infinite amount of data that is allowed to stored. Users can upload objects up to 5TB into buckets. Objects include images, video files, and etc. Users can then assign permissions to each bucket for upload and download.
Amazon EFS: EFS is a scalable and highly available elastic NFS storage solution. Although EFS is similar to EBS, one distinction between the two is that EFS allows for multiple instances to access EFS storage. EBS on the other hand only allows volumes to be attached by one instance at a time.
S3 Glacier: This form of cloud storage is used for long-term archiving of Cloud data. It is secure and extremely low-cost compared to the other storage systems. It is as little as $1 per terabyte per month. However, it may take hours or days to access this data so it is for very long-term storage.
A traditional network requires physical routers and switches. AWS VPCs are virtual networks that allow users to control virtual networking resources. Users can select IP address range, create subnets, configure routing tables and network gateways. VPCs are dedicated to a user’s AWS account. VPCs can only belong to one AWS region but they can span across multiple availability zones. Subnets can be created using public or private subnets
Database: Amazon RDS, DynamoDB, Redshift, Aurora
Amazon RDS: Allows for scaling, fault tolerance, and availability. It can be unmanaged so it can be configured by the user. Or it can be managed which allows AWS to use built-in services to manage the database. RDS is normally used for E-commerce applications and mobile games. It supports high availability and high throughput. It is accessible via the console and provides scalability and automated redundancy.
DynamoDB: DynamoDB provided unlimited storage that supports low-latency and scalable write/read throughput. It uses NoSQL database tables. It runs only on SSDs ideal for web, gaming, IoT, and mobile applications. It is fully managed with notable sizes and throughput limits. Most importantly it provides single millisecond latency at scale.
Redshift: It is a data warehouse service that provides database services for large enterprises. It’s focused on data and less on database.
Aurora: Aurora is highly available and durable. Not only that, it is high performance and provides good scalability. It allows for fully managed solutions with support for MySQL.
Amazon AWS Highlights
First to market
More organizations using it so it’s easier to find help on Stack Overflow
1-year trial and some instances are free
Have more regions and zones compared to Google Cloud
Only Cloud provider that supports macOS instances
The product line is mature and scales well for both small organizations and larger ones
Constantly tries to lower prices for customers
Google Cloud GCP
Regionsand Zones: Compute Engine resources are segregated into regions and zones. Regions are specific geographical locations where resources are hosted and each region has three or more zones. For example, the region US-EAST1 can be segregated into zones called US-EAST1-A, US-EAST1-B, and US-EAST1-C. This allows for failover similar to failover clusters where if one zone becomes unavailable, you can keep services running on another zone without impact in the same region. A zone is a deployment area in a region, where users can create instances in several different zones to create redundancy.
Instances: Compute Engine: Google supports Linux and Windows Server instances. GCP requires users to create projects which store one or more instance. When an instance is created, the user must choose a zone, operating system, and machine type. The machine types are cost-efficient because it allows for several types of CPU processors like AMD and Intel.
Storage: Storage is stored in a bucket. Similar to AWS, users are able to store object data in a bucket. What’s special about Google Cloud is the ability to have buckets in multiple regions or a pair of regions. This allows objects that are stored to be geo-redundant ensuring maximum availability where a natural disaster can take down an entire region. Google Cloud also supports snapshots.
Networking: Google Cloud also uses VPCs similar to AWS, replacing a physical network with a virtual one. Tools like TCP/UDP load balancing and HTTP load balancing are offered natively within GCP. VPC networks, routers, and firewall rules are considered global resources instead of it being associated with a single region or zone. This is different from AWS where VPCs are normally associated with a single region. Most of the time, a subnetwork is created by default, but there are options to switch to custom mode where you can specify subnets and IP ranges.
Database: Google GCP offers many different types of cloud database options. Each type of database is made for a specific use case. For example, NoSQL databases like MongoDB Atlas are made for Gaming, Mobile, and web applications. Cloud SQL uses MySQL and SQL servers to support e-commerce and SaaS applications. For more details regarding the different types of Google Cloud databases click here.
Google Cloud GCP Highlights
Better for students that are looking to learn cloud services
Easier to use and cleaner interface than AWS
$300 credit for new users to use on all GCP products compared to a 1-year trial with AWS with instances limited to free-tier
Cheaper and more cost-effective than AWS
Can access instances without needing to SSH into them
Fewer features than AWS
Specializes in big data and machine learning
The command-line interface is much more useful than AWS