Amazon Web Services (AWS) and the new Google Cloud PlatformPosted: February 16, 2014
While Amazon Web Services cloud computing platform remains a front-runner of gigantic proportions, ahead of the pack by a margin not seen since Apple’s iPad jumped ahead of the entire consumer electronics industry, forcing the competition to spend a good two years playing catchup. Now, with the entry of Google into the “cloud platform” arena, perhaps an era of real competition… is getting closer!
While I used Google App Engine long before I first logged into an AWS console, I must admit to a) being both a huge fan of the suite of services (and great usability via a range of customer-friendly control panels, command sets and API’s) that AWS offers, and b) a Certified Amazon Web Services cloud Solution Architect — so I can’t hold myself out as being totally objective. That said, while I’ve had day-one orders for multiple versions of the iPad, iPhone and other magic products, I have also owned (and built apps for) any number of Android-flavord platforms and devices, and yet think I am pretty rational about the strengths and weaknesses of the iOS / Xcode / Objective C toolset vs. it’s Android cousins (Eclipse, particularly, with the appropriate pug-ins). [I have not yet tried the new, improved Intelli-J ide for Android which I hear addresses some of my particular complaints. Look forward to that when time permits!] So not being religious about operating systems and languages in my youth, I remain open to platforms, frameworks and tools — based on suitability to purpose — for technology generally.
So I will remain objective in my approach to Google’s new services as I continue working with AWS, and present below some initial comparisons — here – with help from a post by Praveen Kumar Muppala, as referenced below – which I have borrowed from heavily for content while adding and expanding (and editing) the information a bit.
Praveen makes the case that Amazon AWS remains the leading Infrastructure As a Service (Iaas) Cloud Platform provider by identifying 10 key reasons. I’ve presented some summary information below, and then his 10 points with some light editing – the original post can be seen here.
1. Cloud Services & Features
Amazon AWS has more services and features. As of now, Amazon AWS has 27 services while Google Cloud has less than 10 major services. AWS has a more comprehensive offering, which gives it a clear edge in complex, large scale cloud efforts. I’ve show the products / services of the two companies below for comparison.
Google Cloud Platform:
It is interesting to look at some of the details, as Google seems to be evolving toward many of the same use cases as AWS. It is not surprising then, that Google Cloud Platform service offerings that are comparable to AWS offerings in the areas of storage options, load balancing, auto-scaling groups and even DNS begin to mirror and AWS’ options and capabilities even more closely
2. Regions and Zones
Amazon AWS has 8 Public & 1 US Government Cloud Region, and a preview of a tenth region as of today. [The list is: N. Virginia, Oregon, N. California, Ireland, Singapore, Tokyo, Sydney, São Paulo, GovCloud and Beijing(preview)]. And there are 2 or more zones within each of those various regions — up to 5 (see chart below). This allows multi-zone deployment within each region to facilitate high availability and redundancy for deployments of almost any size. Google currently shows two zones in each of two regions. Customers may find that AWS can give them lower latencies for specific target geographies with this greater number of choices.
AWS vs. GCP
3. Supported Operating Systems
Praveen notes that “Amazon AWS supports ten different major Linux and Windows operating systems / versions, while Google Compute Engine supports 4 different Operating Systems”. What I have seen is that AWS supports several major Linux distributions plus their own AWS-flavored machine images for easy deployment and use with AWS services, but also multiple Microsoft Windows server machine images as well. With Google Compute Engine, I see (here) support for two Linux flavors (Debian and CentOS) but none (yet) for Windows. So if you need Windows Server (Microsoft Windows Server 2003 or 2008), it seems the only options are Microsoft Azure and Amazon AWS. AWS offers many Linux options, including “Amazon Linux” (which has some Python AWS management tools and other goodies pre-installed) in addition to preconfigured systems such as Red Hat Enterprise Linux, SUSE Linux Enterprise Server, Ubuntu Server 12.04 and, with some requirements, your own customized Linux Kernel (see here). In addition, the huge library of pre-configured machine images shared by customers would seem to give a huge edge to Amazon for many small and medium sized users that might find the right pre-configured image to be a huge time saver.
4. Hosted Hardware Maintenance
It looks as if AWS and GCP have taken very different approaches to hardware maintenance. I’ve not studied this in all it’s depth, but Amazon seems to perform such maintenance based on when the underlying hardware is available, whereas Google in some instances can seamlessly move your images and jobs elsewhere, do hardware maintenance, and move the workload back without customer impact (other than transitional performance issues) which is good…. but in other cases, Google’s scheme seems to require instances to be terminated or auto start / stopped to make way for a maintenance interval. It’s not clear but there may be no way to avoid some level of forced unavailability on a quarterly basis. This area I need to study more (Praveen’s post seems to declare GCP unsuitable for some apps).
5. Instance Types
Amazon AWS has a large variety of sizes and types of instances, with different combinations of vCPU, RAM, Network, I/O etc. It supports around 30 instance types RAM ranging from : 0.6GB to 244GB and CPU ranging from : 1 vCPU to 32 vCPUs. With Google Cloud Compute, instances available include 12 different instance types RAM raging from : 0.6GB to 52GB and CPU ranging from : 1 vCPU to 8 vCPUs. Compare Google here with Amazon here.
6. Spot Instances
Paraphrasing Praveen, with “Amazon AWS, Spot Instances are spare Amazon EC2 instances for which you can name your own price based on historic data. This can help Customers run large number of stateless EC2 instances” at a reduced price. Google Cloud Platform does not yet have a comparable feature in place.
7. Reserved Instances
Praveen also notes that “Amazon AWS Reserved Instances provides great savings on instances based on instances that run for a period of time with known utilization patterns. Using reserved instances can yield up to 65% savings”, and again, Google Cloud Platform does not yet have a comparable feature in place.
8. Support Charges
Amazon AWS has basic Developer Support starting at $49 / month. Business Support and Enterprise pricing starts from $100 per month, with cost a function of monthly AWS usage (see here). with Google Cloud Platform, basic support (silver) starts at $150 / month and business (Gold) support starts at $400 per month, increasing for Enterprise (Platinum) Support with pricing negotiated based on a variety of factors (see here). For smaller and conscious enterprises and those dipping their toe in the water but wanting some level of official customer support and responsiveness, AWS is a cheaper alternative (on this basis).
9. User Management
Praveen makes a good case for Amazon when he notes that “AWS is supports creating users using LDAP services which allows centralized user management in many organizations already using LDAP. Amazon also supports creation of unique AWS users for your account based on simple username / password pairs, without the need for unique email ID accounts. Google Cloud Platform is expecting a Gmail ID for unique users, giving AWS more flexibility in dealing with managing users accounts.”
10. User Permissions to the Resources
Finally, Praveen notes that “Amazon AWS has 9a sophisticated IAM (Identity and Access Management) capabilities which allows AWS resources to have be controlled via permissions via resource or feature per user. Google’s scheme has but three permissions (Owner, Editor and Viewer), and no ability to assign permissions at the resource level.” AWS therefore enables far greater control and management of access to features and resources.
Thanks again to Praveen Kumar Muppala for highlighting some important distinctions between AWS and Google Cloud Platform. (Praveen’s original post is here.) I won’t be surprised if some of these gaps close more quickly than did the “iPad” vs. Android Tablet gap, but then some of these features are quite complex, robust and technically sophisticated — and Amazon’s huge many year head start may be hard to erase in mere months.