Need advice about which tool to choose?Ask the StackShare community!
Amazon EC2 vs Google App Engine: What are the differences?
Introduction
Amazon EC2 and Google App Engine are both popular cloud computing platforms that offer infrastructure services to deploy and manage applications. However, there are key differences between the two platforms that make them suitable for different use cases.
Pricing and Flexibility: Amazon EC2 provides more pricing options and flexibility. It allows users to choose and pay for resources on an hourly basis, offering more control and scalability for businesses with fluctuating workloads. On the other hand, Google App Engine operates on an automatic scaling model based on usage and offers limited pricing options, making it more suitable for applications with consistent workloads.
Managed vs. Unmanaged: Google App Engine is a fully managed platform, meaning that Google handles most of the underlying infrastructure tasks, such as patching, scaling, and monitoring. This makes it easier for developers to focus on writing code and reduces the operational burden. In contrast, Amazon EC2 provides more control and requires users to manage their virtual machines, including patching, scaling, and monitoring. This flexibility allows for more customization but also requires more system administration tasks.
Environment Support: Amazon EC2 supports a wide range of operating systems and unlimited programming languages, providing a more versatile environment for developers. It allows users to choose the desired operating system and customize the software stack as per their needs. On the other hand, Google App Engine supports specific programming languages like Python, Java, PHP, and Go, limiting the choice for developers who prefer other programming languages or frameworks.
Scalability and Auto-scaling: Amazon EC2 provides manual vertical and horizontal scaling options, allowing users to scale their resources up or down based on demand. It also offers auto-scaling features that adjust resources automatically based on predefined rules or metrics. In contrast, Google App Engine offers automatic horizontal scaling, monitoring application's traffic and adjusting resources accordingly. This makes it easier to handle sudden spikes in traffic without manual intervention.
Storage Options: Amazon EC2 offers various storage options, including Elastic Block Store (EBS), Amazon S3, and Amazon Glacier. This provides flexibility in choosing the appropriate storage solution for different use cases, from high-performance databases to long-term archival storage. On the other hand, Google App Engine primarily uses Google Cloud Storage for persistent storage, which is a scalable and highly available object storage service.
Networking and Security: Amazon EC2 provides more networking and security features, allowing users to configure virtual private clouds (VPCs) and define network access control rules. It also provides options for setting up VPN connections and dedicated network connections. Google App Engine, on the other hand, offers a simpler networking model and relies on Google Cloud Identity and Access Management (IAM) for access control and security.
In summary, Amazon EC2 offers more pricing options, flexibility, and control over the infrastructure, while Google App Engine provides a fully managed environment, automatic scaling, and easier deployment experience. The choice between the two platforms depends on the specific needs of the application and the level of control and customization required.
DigitalOcean was where I began; its USD5/month is extremely competitive and the overall experience as highly user-friendly.
However, their offerings were lacking and integrating with other resources I had on AWS was getting more costly (due to transfer costs on AWS). Eventually I moved the entire project off DO's Droplets and onto AWS's EC2.
One may initially find the cost (w/o free tier) and interface of AWS daunting however with good planning you can achieve highly cost-efficient systems with savings plans, spot instances, etcetera.
Do not dive into AWS head-first! Seriously, don't. Stand back and read pricing documentation thoroughly. You can, not to the fault of AWS, easily go way overbudget. Your first action upon getting your AWS account should be to set up billing alarms for estimated and current bill totals.
We first selected Google Cloud Platform about five years ago, because HIPAA compliance was significantly cheaper and easier on Google compared to AWS. We have stayed with Google Cloud because it provides an excellent command line tool for managing resources, and every resource has a well-designed, well-documented API. SDKs for most of these APIs are available for many popular languages. I have never worked with a cloud platform that's so amenable to automation. Google is also ahead of its competitors in Kubernetes support.
GCE is much more user friendly than EC2, though Amazon has come a very long way since the early days (pre-2010's). This can be seen in how easy it is to edit the storage attached to an instance in GCE: it's under the instance details and is edited inline. In AWS you have to click the instance > click the storage block device (new screen) > click the edit option (new modal) > resize the volume > confirm (new model) then wait a very long time. Google's is nearly instant.
- In both cases, the instance much be shut down.
There also the preference between "user burden-of-security" and automatic security: AWS goes for the former, GCE the latter.
Most bioinformatics shops nowadays are hosting on AWS or Azure, since they have HIPAA tiers and offer enterprise SLA contracts. Meanwhile Heroku hasn't historically supported HIPAA. Rackspace and Google Cloud would be other hosting providers we would consider, but we just don't get requests for them. So, we mostly focus on AWS and Azure support.
Pros of Amazon EC2
- Quick and reliable cloud servers647
- Scalability515
- Easy management393
- Low cost277
- Auto-scaling271
- Market leader89
- Backed by amazon80
- Reliable79
- Free tier67
- Easy management, scalability58
- Flexible13
- Easy to Start10
- Widely used9
- Web-scale9
- Elastic9
- Node.js API7
- Industry Standard5
- Lots of configuration options4
- GPU instances2
- Simpler to understand and learn1
- Extremely simple to use1
- Amazing for individuals1
- All the Open Source CLI tools you could want.1
Pros of Google App Engine
- Easy to deploy145
- Auto scaling106
- Good free plan80
- Easy management62
- Scalability56
- Low cost35
- Comprehensive set of features32
- All services in one place28
- Simple scaling22
- Quick and reliable cloud servers19
- Granular Billing6
- Easy to develop and unit test5
- Monitoring gives comprehensive set of key indicators5
- Really easy to quickly bring up a full stack3
- Create APIs quickly with cloud endpoints3
- No Ops2
- Mostly up2
Sign up to add or upvote prosMake informed product decisions
Cons of Amazon EC2
- Ui could use a lot of work14
- High learning curve when compared to PaaS6
- Extremely poor CPU performance3