But how should we decide which solution is better for our needs? In this post I will try to figure it out. I will point out important differences between both solutions while going through areas like:
- virtual computing
- machine learning
I have selected those three because the first two are the core components of most applications and the last one is the area that is now trending the most. Hope that at the end it will be easier for everyone to decide which way to go.
Both providers allow you to configure virtual machines that will be used for computations.
Amazon gives over 20 types of “instances”. Each of them is configured differently and is supposed to serve best for different purposes.
Within AWS beside standard computing instances you are able to choose GPU Graphics and Compute instances that may give you big benefits in computation speed while performing advanced scientific workloads.
For beginners and for testing reasons we are allowed to use the AWS free Tier.
The computing Free Tier allowes us:
AWS differs its EC2 pricing on instance categories. Customers can choose from:
- spot instances
- reserved instances
- saving plans
- dedicated hosts
Every option should be adapted to special needs. Cost of usage may also vary by region.
Google on the other side groups its VM in four main categories:
According to the most recent google documentation:
“You can attach GPUs only to general-purpose N1 machine types. GPUs are not supported for other machine types.”
This differs both companies because AWS allows to start two dedicated instances for GPU computing. If it comes from free resources, that Google provides, it is more general then in AWS. Google allows the 12-month $300 free trial to start automatically when you set up your first billing account. But it has its limitations for computing:
- You can't have more than 8 cores (or virtual CPUs) running at the same time.
- You can't add GPUs to your VM instances.
- You can't create VM instances that are based on Windows Server images.
Google provides a full pricing list on their website. Every machine type has its own pricing depending on commitment length and sort of VM.
Main rules for Google pricing are:
- All vCPUs, GPUs, and GB of memory are charged a minimum of 1 minute. For example, if you run your virtual machine for 30 seconds, you will be billed for 1 minute of usage.
- After 1 minute, instances are charged in 1 second increments.
On top of that list, there are many different discount options based most frequently on the amount of reserved VMs and duration of commitment.
- Sustained use discounts
- Committed use discounts
- Discounts for preemptible VM instances
Storage is another very important field of interest for developers. In this section I will focus on the object storage.
Amazon's best suitable solution for this type of use is S3. Simple Storage Service is an object storage service that is designed for 99.999999999% (11 9's) of durability.
Users can choose from six different storage classes. Every one of them has different use cases and is better for other implementations.
Also for this resource Amazon allows some testing and learning for free. This lets new users find out if this type of storage is for them and check what kind of benefits it can bring for their application.
Amazon differs pricing of S3 based on the Region. Example pricing for Sydney looks like this:
Google provides its storage in four different categories:
If we consider free initial use of Google storage there are no other limitations besides $300 free billing. If developers will be able to stick to this limit they can test and use it.
To check which possibilities we do have in this billing range it is necessary to take a look at the pricing model.
For comparison reasons we will take also Sydney region to match AWS pricing:
Nowadays machine learning is one of the quickest developing areas. This branch of AI is used in almost every type of application.
MI is taking training data and based on them is creating mathematical models that allow them to predict results or making decisions with no need of implementing special behaviour.
It is not a surprise that Amazon and Google are supporting this area providing services in their clouds.
According to statistics 89% of deep learning projects are running in the cloud on AWS.
Amazon describes its service as follows:
As we can see developers have a very broad range of options to choose from. Definitely it makes the whole process easier and allows quicker and more intuitive to create solutions that will be benefiting from ML.
As for almost every service there is a possibility to check its functions for free. SagaMaker is not different.
If this will not be enough for specific applications, full pricing is a bit complicated and differs from regions, type of activity and EC2 instance that is used.
Everything can be found on AWS site.
Google Machine Learning
Google has prepared the whole workflow and special services that are supporting every step of it.
Developers are able to find a solution that will make theirs work easier and will speed up the development process at each step .
When it comes to pricing with so many different services and tools there is no easy answer to the question “how much will it cost?”.
Some services like Kubeflow, AI Hub, and notebooks are free of charge and to calculate other coasts the best way is to use google CALCULATOR.
Taking a width perspective both Amazon and Google are providing very good solutions for cloud developers. Choosing the right solution for customer needs should be precisely considered and analysed. It is most likely that both solutions will have inside services needed by application. If one or the other is lacking something then the choice is simple.
Very often the key factor that determines which solution to bet on is the price. Amazon and Google provide online cost calculators that allow us to estimate customer costs for almost every service. It can be a major factor before the final decision.
Let's take a look at the main differences in the described areas.
When we sum up all possible instances and VM we will see that there is a slight advantage of Google. It can show that a developer can better adapt a given solution to its needs.
Also in the long term Google thanks to its discount plans it is a bit cheaper when we committ for more than 3 years.
It looks like AWS has a slight advantage when it comes to very big calculations that requires GPU support. Amazon's solution may be more agile and can be better customized to users' needs.
The main difference is that AWS allows us to choose S3 Intelligent-Tiering that automatically will move our resources to the best suited and cheapest storage option. Of Course this process can also be implemented in Google Cloud thanks to the lifecycle manager but it takes more work then on the competitor's side.
There is no major difference here. MI is well supported by both companies. AWS groups its solutions in one place under the SagaMaker brand which can make it easier to find what we want. Google wants us to search a bit deeper to find suitable services.
All in all both clouds are great. AWS is more global and probably we can find a bigger community that is using it and can help us to solve our problems. Google on the other side can be a slight cheaper in the long run.
In my opinion both are good starting points for new developers and both will be widely popular as IaaS providers. For more experience it can be challenging to determine which solution to choose but most likely both will do the work.
It may be tempting to take cheaper S3 storage and connect it with cheaper VM from Google.
Multi-cloud is not a good solution. According to the states it is not a good idea to mix both because when we will save something in one place, we will have to give it back in another area. It is much better to do your homework before choosing your solution and then stick to it during the whole project.
AMB'S TECH INSIGHTS - AN ARTICLE BY KRZYSZTOF P.
Krzysztof is a Senior Software Engineer at AMB, mainly involved in Java backend development.
Since two years Krzysztof is getting more and more into cloud topics with success. In August he passed his AWS Solutions Architect - Associate exam and continues to get more familiar with Google Cloud, Docker and Kubernetes skills.
DO YOU NEED HELP WITH WEB DEVELOPMENT? CONTACT US AT