History and popular services
AWS was developed in 2006 as a platform that allows companies to rent computing power and storage in the cloud. Initially, it was used to host websites and online applications. Over time, the service has evolved to cover a wide range of products such as storage, databases, analytics, machine learning, and more.
Today, AWS is one of the world's largest and most popular cloud systems, with customers in more than 190 countries. Among the most popular services are:
- Amazon EC2 (Elastic Compute Cloud) allows companies to run applications on virtual machines in the cloud;
- Amazon S3 (Simple Storage Service) provides scalable object storage for data backup and archiving;
- Amazon RDS (Relational Database Service) provides managed database services for MySQL and PostgreSQL.
The Google Cloud Platform, on the other hand, was created in 2008 by Google as a way for businesses to use the same infrastructure and technology that supports Google's own services, such as Google Search and YouTube. Initially designed to host websites and online applications, Google Cloud Platform, like AWS, has since evolved to cover a wide range of services such as storage, databases, analytics, machine learning, and more.
Nowadays, Google Cloud Platform is a key player in the cloud computing market, and its users range from startups to large companies. Google Compute Engine, which provides virtual machines to run applications in the cloud, Google Cloud Storage, which offers scalable object storage for data backup and archiving; and Google Cloud SQL, which provides managed database services for MySQL and PostgreSQL, are just some of the most popular products of GCP.
Here's a quick overview of each platform's pricing schemes and the differences between them.
The pricing model for AWS:
- Instances on demand: With no upfront costs or long-term commitments, this approach allows organizations to pay for computing resources on an hourly or per-second basis.
- Reserved Instances: This strategy allows organizations to pay a one-time fee to reserve capacity for one or three years in exchange for lower hourly rates.
- Spot Instances: With this concept, organizations can bid on unused AWS capacity, and the price fluctuates based on supply and demand.
- Dedicated Hosts: With this approach, organizations can have dedicated physical servers at their disposal, as well as the ability to use their own software licenses.
- AWS also provides price calculators and cost management tools to help businesses estimate and manage costs.
The pricing model for Google's cloud platform:
- Compute Engine: With no upfront fees or long-term commitments, this strategy allows businesses to pay for virtual machine instances by the minute.
- Virtual machines with displacement: This paradigm allows businesses to access additional computing capacity at a reduced cost, with the understanding that instances can be terminated without notice.
- Discounts on usage by agreement: This approach allows firms to commit to using a certain amount of resources for one or three years in exchange for a reduced price.
- Custom machine types: With this paradigm, businesses can create customized virtual machine instances with the exact number of processors and RAM they need.
- Google Cloud Platform, like AWS, provides a price calculator and cost management tools to help businesses estimate and manage their costs.
Which one is cheaper?
So, which service is the most financially beneficial? It is difficult to answer this question unequivocally. There are many pitfalls that can significantly affect the price. For example, by default, GCP charges you for transiting outbound traffic through their private network to an access point in the request region. This improves performance but costs more. If you disable this feature, you get a service similar to AWS.
In addition to different features, there are also differences in payments. Amazon requires a capacity reservation to get discounts. Moreover, the price will be lower if you pay in advance. Conversely, Google offers users discounts for "continuous use" (setting up instances or other services and using them without reconfiguration).
Let's compare the price of AWS EC2 and Google Compute Engine in practice. If we need 8GB of memory and 2 vCPUs, we will have to pay almost $49 for GCP.
.. or just $35 for AWS.
As you can see, there is not too much of a difference. However, if we need 8 RAM and 64 vCPU, the price in GCP will be $264.
For AWS, you will have to pay only $170.
Overall, GCP looks more expensive than AWS, but Google wins in database management, artificial intelligence, and machine learning. This can be critical for some types of projects.
Best cloud provider for startups
Both platforms offer various services and pricing models that can be attractive to startups, depending on their specific needs and use cases. Although Amazon usually offers cheaper rates, there are some situations when young companies opt for Google. What are these situations?
First, all three major providers give out grants for their services. However, GCP has the most considerable amount, which is 200,000 dollars for 2 years, and 350,000 if you are an AI startup.
Amazon, for its part, also offers grants, but it is $100,000. And although any amount will be helpful for young companies, most still try to get loans from GCP.
It is also worth noting that there are many complaints on the Internet from users of free AWS services. The complaints relate to the unclear description of the hosting usage restrictions. For example, one user complained that after experimenting with AWS Kendra (which allows you to include one tier for free), he received a bill for $750
The problem turned out to be that AWS Kendra, which offers a free tier (which includes one index), allows you to create multiple indexes, even within the free tier. And then you have to pay for these additional indexes.
So you need to be careful with free tiers on Amazon.
In addition to price, ease of use and development speed also play an essential role. For a startup founder or team member looking for a balance between product and market, simplicity can be crucial for several reasons.
A simple approach makes experimenting and trying different approaches easier, quickly adapting technology and architecture with each iteration, evaluating and choosing the right technology solution, and attracting new engineers.
That's why Google is a better option for young teams with little engineering experience. AWS can be complex, and startups without deep experience with it may put themselves at a disadvantage by choosing Amazon.
One of the most important differences between Google and AWS, in terms of ease of use, is the concept of a resource container under an account. Google uses "projects," while AWS only has an account.
The lack of a resource container under an account in AWS creates problems when it comes to managing permissions and creating sandboxes for experimentation. When experimenting with new components, it's easier to delete the entire resource container on Google, but on AWS, you need to clean up or delete the whole account systematically.
Although CloudFormation stacks are supposed to clean up themselves, AWS often does a poor job of cleaning up CloudWatch logs when deploying using any AWS automation, creating concerns that something more expensive may have been missed.
Ecosystem and Market Share
One of the crucial criteria for choosing a provider is its market share, the number of certified developers, and the size of the ecosystem.
Amazon is currently the leader in these three indicators. However, it's important to carefully evaluate your options before making a final choice. It's worth noting that GCP also offers some unique benefits. Let's take a closer look.
The first indicator we will analyze is the number of projects on GitHub. And as you can see in the graph, AWS is almost twice as far ahead of its closest pursuer, Azure. There are only about 30,000 projects hosted on the GCP platform, which is only 10% of the number of ones located on Amazon. 1-0 in favor of AWS.
If we analyze another popular resource among developers, StackOverflow, and find posts tagged with AWS, Azure, or GCP, the gap between the first and second place is not so substantial. This primarily indicates an active Azure community. Unfortunately, the number of publications on the Google Cloud Platform is much lower.
The last indicator we'll analyze is the number of job openings on LinkedIn. This will help us understand how large the job market is for a particular platform. When a company needs to quickly find a specialist with AWS or GCP experience, the size of the potential candidate pool can be substantial.
So, Amazon takes first place here, followed by Azure, and Google closes the top three.
Why Google Cloud may be better than AWS?
Even though AWS took first place in all the metrics we discussed above, there are situations when you should still opt for GCP. Let's take a look at such examples below.
Starters like startups and small organizations without an existing IT infrastructure may find GCP more cost-effective due to its more straightforward pricing plan and free options. Additionally, GCP is known for its ease of use and diverse pricing options, which can be especially useful for rapidly expanding firms looking to increase the flexibility of their IT infrastructure.
Second, companies that rely heavily on data analytics and machine learning may prefer GCP because of its superior data processing and analysis capabilities and built-in machine learning services such as TensorFlow and BigQuery.
Third, companies that value open-source technologies may prefer GCP, which is based on open-source technologies and is strongly committed to open-source initiatives.
Below we have collected and analyzed the feedback from developers who wrote their reasons why they chose GCP.
+ Advanced Kubernetes features: GKE is highly regarded for its advanced features and capabilities, such as Config Connector
+ Better overall experience: Users who have switched from Amazon's EKS to GKE claim that GKE is better in many aspects, including performance, integration with GCP products, and upgrade procedure.
+ Network architecture and cost-effectiveness: GKE's network architecture is considered to be superior, offering a better design and fewer pitfalls compared to competitors such as AWS. Additionally, GKE's flexibility with internal IP addresses allows you to save money by using smaller clusters without limitations.
+ Provisioning performance: EKS provider performance has been criticized as poor compared to GKE, emphasizing GKE's higher performance and efficiency in provisioning resources.
+ Smoother version upgrades: It seems that the GKE team has a better understanding of the inner workings of Kubernetes. Version upgrades are smoother and more seamless.
- Not the best documentation: Although GKE excels in various areas, some users note that the documentation could be improved, as important details are sometimes hidden in the readme files of the repositories.
+ Ease of use: Firebase provides authentication, messaging, fault reporting, analytics, and backend development tools and services – developers, especially mobile app developers, like its front-end SDKs and integrations.
+ NoSQL database: Firestore by Firebase is ideal for small to medium-sized projects and applications that require real-time changes.
- Security limitations: Firebase's security policies may prevent complex CRUD operations and multi-user work. These limitations may require custom programming, cloud-based features, or additional middleware services.
- Backend Stack Differences: The Firebase backend stack differs from existing enterprise backends. This can make it difficult to integrate legacy systems and maintain application consistency.
+ Cost-effective: BigQuery offers a pay-as-you-go pricing model that allows users to pay only for the queries they run. With proper query discipline and price guarantees, it can be an inexpensive option for processing large amounts of data with excellent performance.
+ Managed services: Google provides additional services, such as Cloud Composer for ETL workflows, making integrating BigQuery into data pipelines easier. Built-in machine learning and forecasting capabilities, as well as seamless integration with pipeline tools such as Beam and Spark, add to its versatility.
+ Performance and scalability: BigQuery excels at processing complex queries at scale, outperforming traditional RDBMSs such as MySQL. It offers decentralized computing and eliminates the need to manage connections or firewall rules.
+ Integration and data exchange: BigQuery integrates well with various pipeline tools and provides features like Analytics Hub for efficient data sharing at scale. This makes it a suitable choice for collaboration in data-intensive environments.
+ Columnar data warehouse: BigQuery's columnar data warehouse is optimized for data storage and supports dynamic access patterns, especially for business intelligence. This allows you to execute queries on large data sets quickly.
Another advantage is that GCP's service account-based access control lists provide more flexibility and granular control than AWS's single-role approach, making it easier to manage access permissions and provide limited access to external users.
However, GCP lacks public SSL certificates. In addition, some of Google's projects are not quite seamlessly integrated into the ecosystem. For example, StackDriver, which originated as a third-party company, still has a separate interface and login procedure. Also, working with GCP using Terraform can be cumbersome due to resource availability in different providers (stable, beta), the need to enable APIs, and the additional boilerplate required in Terraform configurations.
In addition, Amazon is well known for very long support cycles for outdated developments. For example, the end of EC2 support was announced only in 2021. 9 years after the program was actually shut down. Unlike Google, which has a reputation for killing startups and quickly closing down developments that they don't see as promising.
When to choose GCP, AWS, or Azure?
In general, if we highlight the areas where each company has an advantage, we get the following list.
- GCP excels at handling ML/AI workloads. Its wide range of tools and services for ML and AI makes it an ideal platform for these industries.
- It is also well-suited for high-performance computing. GCP's scalable infrastructure and powerful computing capabilities allow it to handle resource-intensive tasks.
- GCP can be a mediocre solution for web development. It provides the infrastructure and services for web development, although it may not be as specialized or feature-rich as competitors.
- Azure should be chosen first of all by organizations that have already closely integrated themselves with Microsoft products, such as Office 365.
- There are helpful Azure DevOps tools that offer comprehensive software development lifecycle management functions.
- Ideal for Windows and .NET web applications.
- AWS is the most versatile of the three cloud platforms. Its wide range of services covers many areas, making it ideal for many use cases and industries.
- AWS is excellent at containerization. The Amazon Elastic Container Service (ECS) and Amazon Elastic Kubernetes Service (EKS) offer reliable and scalable container management solutions.
- AWS is the best platform for web applications. Amazon S3, Amazon EC2, and Amazon CloudFront allow you to deploy and scale web applications using various services.
- AWS is very popular for big data processing and analytics. Amazon Redshift and Amazon EMR provide reliable and scalable solutions for large data sets.
- AWS DevOps tools have been criticized for being less user-friendly and intuitive than competitors.