One of the biggest benefits of Google Cloud is networking. By default GCE instances in VPC's can communicate with all instances across zones and regions. This is a huge plus.
On AWS, multi region involves setting up VPN and NAT instances. Not rocket science, but wasted brain cycles.
Generally, with GCP setting up clusters that span three regions should provide ample high availability and most users don't need to deal with the multi cloud headaches. KISS. You can even get pretty good latency between regions if you setup North Carolina, South Carolina, and Iowa. Soon West Coast clusters will be possible between Oregon and Los Angels (region coming soon).
This is one of the biggest features that you appreciate a lot when you dont have it, and makes global apps incredibly easy. Softlayer has a similar network with default region peering but not as advanced.
Of course anything can be setup using custom VPN but this is a lot more work and will never be as easy, reliable, automated or cost effective.
That being said, AWS is rolling out automatic VPC peering, running on their own private backbones between regions so there should be functional parity soon, although with different price and performance compared to GCP.
I may be completely off here, but isn't this due to their underlying architecture decisions? That is, AWS from the start has kept all regions completely separate, so that problems in one region do not influence another. But GCP has has issues with failure across regions IIRC.
AWS needs to release a more affordable and simpler feature for inter region connectivity. Even MS Azure has a Vnet to Vnet connectivity option in which traffic flows through the Azure backbone vs the internet and it doesn't cost much.
If any Google Cloud people are listening I wish you had an equivalent to AWS's Certificate Manager. Provisioning a TLS certificate which automatically renews for eternity (no out-of-band Let's Encrypt renewal process needed) and attaching it to a load balancer is so nice compared to Google Cloud's manual SslCertificate resource creation flow[1].
To a lesser extent, it's also nice registering domains within AWS and setting them to auto renew. Since Google Domains already exists, it would be neat to have this feature right inside Google Cloud.
We hear you, while I can't speak to future products and features I can say we understand there is room to improve the SSL provisioning and lifecycle management story in our products and we are making investments in that area.
One thing that I liked with GCP is their recommendation for cost saving. I spun up a compute engine for a hobby project and within minutes they gave recommendations to reduce the instance size and how much i can save. I don't think AWS offers something like that. Correct me if I am wrong.
Even better are Google managed services (PubSub / Dataflow / Datastore), which scale up and down based on usage (cloud native products) and thus save money automatically compared to their equivalents in AWS (Kinesis / Kinesis Analytics / DynamoDB) which does not autoscale.
GCE bills are aggregated across instances. To get more detailed breakdown, you can apply labels to them and the bills will have label information attached in BQ.
Alternatively, you can leverage GCE usage exports here:
- They have Role Based Support plans which offer flat prices per subscribed user which is a much better model. [1]
- Live migration for VMs mean host maintenance and failures are a minor issue, even if all your apps are running on the same machine. It's pretty much magical and when combined with persistent disks, effectively gives you a very reliable "machine" in the cloud. [2]
>>> on AWS you have the option of getting dedicated machines which you can use to guarantee no two machines of yours run on the same underlying motherboard, or you can just use the largest instance type of its class (ex: r3.8xlarge) to probably have a whole motherboard to yourself.
Not at all. Major mistake here.
When you buy a dedicated instances on AWS, you reserve an entire server for yourself. All the VMs you buy subsequently will go to that same physical machine.
In effect, your VMs are on the same motherboard and will all die together if the hardware experiences a failure. It's the exact opposite of what you wanted to do!
If AWS were to go to a per-minute billing cycle, they would be instantly more price-competitive with Google's offering. Or, to put it the other way around, those leftover minutes form a significant chunk of AWS's profit margin.
I don't think so. GCP's bill is usually about 50% of AWS's bill for same application, if you run it full hour (from my personal experiences and from several others as well: https://thehftguy.com/2016/11/18/google-cloud-is-50-cheaper-...). GCP has lot more cost saving features like seamless scalability, custom shapes, sustained discounts and so on. If you workloads span less than hour, GCP can offer more then 50% savings.
Though there would still be other things like the lower on-demand rates, custom shapes, networking that scales with shape (rather than being coarsely grouped), being able to attach SSD / GPUs semi-arbitrarily, and so on. For those that care, not having to pay up front for the best price is also a huge deal. You see the same thing in GCS vs S3 as well: Glacier and S3-IA have a few rounding up gotchas that catch many people out.
All that said, I hope we all get to per-minute billing.
Disclosure: I work on Google Cloud (but haven't talked to the Metamarkets folks)
> As we investigated growth strategies outside of a single AZ, we realized a lot of the infrastructure changes we needed to make to accommodate multiple availability zones were the same changes we would need to make to accommodate multiple clouds.
Maybe he author means multiple regions? Multi az is so easy. Everything works. Multi region is much harder.
Very nice writeup! A nice, detailed read that was easy to understand.
It seems to focus more on raw infrastructure (EC2 vs GCE) instead of each company's PaaS offerings. Obviously AWS has the front runner lead here, but would be super curious in a comparison of RDS vs. Cloud Spanner for instance.
(pun unintentional, but then realized, and left in there)
Did you mean to say AWS Aurora vs Cloud Spanner? Because, I don't think you can compare RDS vs Cloud Spanner. RDS is a managed for the most of the famous RDBMS out in the market (except Aurora). Cloud Spanner is a google proprietary db running only on GC.
Off Topic: it's frustrating that these companies spend quite a lot of time and money learning about the complexities of their infrastructure but when you're interviewing at such companies, you're expected to have answers for everything and a complete strategy for the cloud.
[+] [-] nodesocket|8 years ago|reply
On AWS, multi region involves setting up VPN and NAT instances. Not rocket science, but wasted brain cycles.
Generally, with GCP setting up clusters that span three regions should provide ample high availability and most users don't need to deal with the multi cloud headaches. KISS. You can even get pretty good latency between regions if you setup North Carolina, South Carolina, and Iowa. Soon West Coast clusters will be possible between Oregon and Los Angels (region coming soon).
[+] [-] manigandham|8 years ago|reply
Of course anything can be setup using custom VPN but this is a lot more work and will never be as easy, reliable, automated or cost effective.
That being said, AWS is rolling out automatic VPC peering, running on their own private backbones between regions so there should be functional parity soon, although with different price and performance compared to GCP.
[+] [-] sdrothrock|8 years ago|reply
[+] [-] ranman|8 years ago|reply
Just as an FYI you don't have to use a NAT instance there are also NAT gateways which I find easier to manage: http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpc-na...
[+] [-] fha|8 years ago|reply
[+] [-] ad_hominem|8 years ago|reply
To a lesser extent, it's also nice registering domains within AWS and setting them to auto renew. Since Google Domains already exists, it would be neat to have this feature right inside Google Cloud.
[1]: https://cloud.google.com/compute/docs/load-balancing/http/ss...
[+] [-] rmhrisk|8 years ago|reply
[+] [-] manigandham|8 years ago|reply
[+] [-] vira28|8 years ago|reply
[+] [-] obulpathi|8 years ago|reply
[+] [-] mianosm|8 years ago|reply
* Idle Load Balancers
* Underutilization of EBS volumes
* Unassociated Elastic IP addresses
* Idle RDS intsances
* R53 latency resource record sets
* etc...
[+] [-] azurezyq|8 years ago|reply
GCE bills are aggregated across instances. To get more detailed breakdown, you can apply labels to them and the bills will have label information attached in BQ.
Alternatively, you can leverage GCE usage exports here:
https://cloud.google.com/compute/docs/usage-export
Which has per-instance per-day per-item usage data for GCE.
Disclosure: I work for Google Cloud but not on GCE.
[+] [-] manigandham|8 years ago|reply
- They have Role Based Support plans which offer flat prices per subscribed user which is a much better model. [1]
- Live migration for VMs mean host maintenance and failures are a minor issue, even if all your apps are running on the same machine. It's pretty much magical and when combined with persistent disks, effectively gives you a very reliable "machine" in the cloud. [2]
1. https://cloud.google.com/support/role-based/
2. https://cloud.google.com/compute/docs/instances/live-migrati...
[+] [-] user5994461|8 years ago|reply
Not at all. Major mistake here.
When you buy a dedicated instances on AWS, you reserve an entire server for yourself. All the VMs you buy subsequently will go to that same physical machine.
In effect, your VMs are on the same motherboard and will all die together if the hardware experiences a failure. It's the exact opposite of what you wanted to do!
[+] [-] ranman|8 years ago|reply
Dedicated Instances: https://aws.amazon.com/ec2/purchasing-options/dedicated-inst...
and
Dedicated Hosts: https://aws.amazon.com/ec2/dedicated-hosts/
[+] [-] e12e|8 years ago|reply
http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/dedicated...
You can buy up to two of each type/location and schedule your vms to run on different physical hosts?
[+] [-] unknown|8 years ago|reply
[deleted]
[+] [-] dswalter|8 years ago|reply
[+] [-] obulpathi|8 years ago|reply
[+] [-] boulos|8 years ago|reply
Though there would still be other things like the lower on-demand rates, custom shapes, networking that scales with shape (rather than being coarsely grouped), being able to attach SSD / GPUs semi-arbitrarily, and so on. For those that care, not having to pay up front for the best price is also a huge deal. You see the same thing in GCS vs S3 as well: Glacier and S3-IA have a few rounding up gotchas that catch many people out.
All that said, I hope we all get to per-minute billing.
Disclosure: I work on Google Cloud (but haven't talked to the Metamarkets folks)
[+] [-] matt_wulfeck|8 years ago|reply
Maybe he author means multiple regions? Multi az is so easy. Everything works. Multi region is much harder.
[+] [-] whatsmyhandle|8 years ago|reply
It seems to focus more on raw infrastructure (EC2 vs GCE) instead of each company's PaaS offerings. Obviously AWS has the front runner lead here, but would be super curious in a comparison of RDS vs. Cloud Spanner for instance. (pun unintentional, but then realized, and left in there)
[+] [-] outworlder|8 years ago|reply
[+] [-] vira28|8 years ago|reply
[+] [-] swozey|8 years ago|reply
[+] [-] throwaway0071|8 years ago|reply
/rant
[+] [-] hobolord|8 years ago|reply
[+] [-] mrg3_2013|8 years ago|reply