Hacker News new | ask | show | jobs
by _jezell_ 3718 days ago
If you have to pick one, GCE hands down. AWS has more features but is more expensive and more operationally complex. GCE may have less features, but the ones it has are better thought out and the user experience is in a league of it's own. Also keep in mind that if for some reason you want to take advantage of something like Amazon's video transcoding service, nothing says you have to build 100% of your app on a single provider's services.
5 comments

> Also keep in mind that if for some reason you want to take advantage of something like Amazon's video transcoding service, nothing says you have to build 100% of your app on a single provider's services.

Just be sure to stay mindful of the costs of being on multiple providers. In this example, it doubles your outage footprint, because a regional outage on either provider would disrupt your service. It will also moot some of your cost savings, as you can't take advantage of the free local transfer (e.g. EC2 > Elastic Transcoding > EC2 is free; GC > Elastic Transcoding > GC is not).

GCE is less expensive than AWS for on-demand instances, but not compared to AWS's RIs.

Unless there's a specific feature that you need in GCP, AWS is a safer bet from scalability, stability, support and cost.

GCE has an edge on performance, per minute billing, custom machine types, and some datacenters in areas AWS doesn't cover, however they're learning how to be a public cloud, so you will run into beta level bugs, scalability issues, support issues (they also limit how many people can open a ticket in your org), and stability problems. If you do go GCP, make sure you have a rep and a high level support contract, otherwise it's going to be hard when you run into issues.

GCE is less expensive than AWS even with AWS's long-term contracts. If you pay money upfront (losing the interest) and reserve instances for 3 years, then you can beat GCE prices by a small margin. But, if you take into consideration of interest on upfront capital expense, lost flexibility due to reserved instances, cloud cost cuts, GCE beats AWS even with the 3-year commitment. We go to Cloud because Cloud gives us agility and enables us to create infrastructure in a matter of minutes without any constraints (Imagine singing up a contract with your electricity company agreeing that you will consume the electricity for TV for 3 years on a 24x7 basis. That what reserving capacity looks like). Reserving capacity does not belong to the age of Cloud, it belongs to the age of data centers.
> Reserving capacity does not belong to the age of Cloud, it belongs to the age of data centers.

Nice, I really like that way of putting it. The promise of the Cloud is, indeed, that it is supposed to abstract you from that, but Reserved Instances reveal what is actually happening behind the curtain.

Yep, that's true. Capacity planning and reserving capacity should be taken care by the Cloud provider and users should be free to spin up and down the resources as and when they need them.
This is still the case, but I don't see the harm in offering the ability to reserve an instance for a discount. I prefer GCE's automatically applied discounts to AWS's reserved scheme, but there are plenty of cases where you will need both flexible capacity and have predicted use.

k8s master, or any number of internal tools.

> I don't see the harm in offering the ability to reserve an instance for a discount.

There is no harm with the discount. The harm is only with lock in. Once you reserve instances, you can not change the type (different CPU / memory ratio), region or the number of instances. Once you reserve, you have to pay for your instances 24x7, whether you use it or not. If you require more capacity than reserved, you need to pay the full rate. If you require less capacity, then you need to pay for the unused capacity. You don't have all these headaches with Google Cloud pay per go and automatic discounts. You simply use as many resources as you want and you get the discounts automatically.

GCE is less expensive for compute than AWS, period, RI's or no RI's. Disclosure: I'm a cloud pricing geek among other things working at Google Cloud Platform and I did substantial analysis on this, published here: https://cloudplatform.googleblog.com/2015/01/understanding-c...

There's also a handy-dandy TCO calculator that further explores these dynamics here: https://cloud.google.com/pricing/tco

Let me know if any other details would be useful!

Does GCE have an equivalent of IAM Instance Profiles and IAM policies in general, and if so how do they stack up?

One of the most underrated features IMO in AWS is being able to connect services without worrying about passing around, rotating, expiring, etc. any credentials. For instance if you use any of the client or CLI libraries on an EC2 instance, it automatically uses the instance profile credentials. It can also be used to solve the bootstrapping problem of a new instance that needs access to secrets.

(That said, it seems like a huge oversight to me that AWS itself doesn't offer a dedicated secret store to further take advantage of this, since it's something every web app needs. And actually writing the IAM policies can be a bit of a nightmare, it's a whole skill in and of itself to learn to find the 2 or 3 separate docs pages you need to cross-reference to be able to write a policy).

Yes, Google Cloud offers IAM. I find it easier to use than AWS IAM. Google Cloud IAM gives you curated roles, hierarchy of resources and thus is easier to use.

Yes, Google Cloud can manage secrets for you. For example, you can spin up an instance and let Google Cloud handle SSH key creation, copying it to instance, auto-rotating it periodically, deleting it when a user is removed from project, connecting to services from Cloud instances is taken care for you.

It's been introduced very recently, but yes: https://cloud.google.com/iam/
Also keep in mind that when you are inside of a cloud (or at least a region within a cloud) you typically do not pay fees between things like EC2 and S3, for example. If you were to build parts of your infra on AWS and other parts on GCE you would pay for data to go between those deployments.
Google Cloud if feature equivalent of AWS.

If you build inside AWS, you have to pay for cross-region bandwidth like transferring data between the east region and the west region.

If you choose Google Cloud, cross-region bandwidth is also free!

AWS has more services but they also come out with improvements and newer services much more often than GCC. GCC/GCE is very exciting but AWS is miles head right now. Open source libraries and documentation available for AWS in a wide range of languages is reason alone for a lot of people to prefer it over Google's.
I find Google Cloud miles ahead of AWS. AWS does not play well with open source services. Google on other hand embraces OpenSources (Google OpenSourced Kubernetes, Dataflow, TensorFlow, MagLev the load balancer, integration with OpenStack ... ). This reduces your risk of vendor lock-in. I have not seen AWS OpenSoruce a single Cloud service.