Introducing E2, new cost-optimized general purpose VMs for Google Compute Engine
cloud.google.com
cloud.google.com
Machine type VCPUs Memory Price Preemptible price
n1-standard-2 2 7.5GB $48.55 $14.60
e2-standard-2 2 8GB $48.92 $14.67
So how does E2 offer "31% savings compared to N1"?Whatever it is, there seems to be some kind of disconnect as it's not obvious from their pricing pages and they should provide better transparency on exactly where these savings are.
That should have been made more clear, sorry about that. On a per-second basis without a sustained use discount (so for burstier workloads, autoscaling, etc.) the E2 is ~31% cheaper (therefore the marketing "up to").
Clarifying your example: n1-std-2 is currently 9.5c/hour (which would be $69.35/month without Sustained-Use Discounting), but e2-std-2 is 6.7c/hr regardless of how many hours per month you use it. Which is about 30%.
I see all these different prices being floated around but I'm still not clear on how much GCP's compute cost for the most popular scenario of running a website 24/7 would be.
It looks like AWS's t3.large may be the most comparable with 2x VCPU/8GB RAM which costs $426 for 12 months / $35.50 month.
Or for m5.large (2x VCPU/8GB RAM) the cost is $501 for 12 months / $41.75 month.
What would the n1-std-2 and e2-std-2 compute cost for 12 months be?
E2-std-2 != t3.large. A t3.large only has a "baseline performance" of 30% [1]. That's more like our e2-small though they have more memory.
Instead, I'd compare e2-std-2 to m5.large like you started to do so. An m5.large on-demand is $.096/hr => $70/month, while the e2-std-2 is $48/month. I think your $41.75/month is from the 1-yr Standard RI (a 40% discount). For that, the most direct comparison would be to use a Committed Use Discount on our side which comes with a similar percentage discount (I can't find this on my phone right now) so that's like $29/month.
Does that make sense?
This is trivial to work out in AWS, I just go to their Reversed Pricing Page [2], look for the total cost for an m5.large (2x VCPU/8GB RAM) instance for 12 months which is $501 (12 x 41.75).
I'd like to be able to do the same for GCP, I see the committed usage page [2] but I don't see any easy way to work out the cost for 12 months / 24/7, it mentions things like "discount is up to 57% for most resources like machine types or GPUs", what does "up to" mean? Is that the discount for running 24/7? So is the E2-Std-2 monthly price of a $48.92 * (1 - .57) = $21.04?
All I see back in GCP's compute pricing page related to "committed usage" is "1 year commitment price" of "$10.03 / vCPU month" but this says it's for "E2 custom vCPUs and memory", does this apply to E2-Std-2 instances? So is the cost for 2x VCPU = $10.03 x 2 + 8GB = 8x $1.34 = 10.72 for the total monthly cost of $30.78?
If it's not how am I supposed to workout what E2-Std-2 cost of 12 months / 24/7 is? It's frustrating that there's no clear/easy way to determine the pricing of a simple and popular hosting scenario like this.
[1] https://aws.amazon.com/ec2/pricing/reserved-instances/pricin...
[2] https://cloud.google.com/compute/docs/instances/signing-up-c...
tl;dr: You did calculate it right. $10.3/vCPU/month x 2 vCPU + $1.34/GB/month x 8 GB for a 1-year commitment aka $30.78/month (and $22/month for a 3-year commitment). All of the predefined shapes are just "how many vCPUs times $/vCPU + how many GBs times $/GB".
Ignoring the lack of columns for commitment pricing in the predefined shapes tables (which some instance types have and some don't... grr), I want to explain the reasoning. One thing that's different for GCP vs AWS is that we actually don't have a SKU for e2-standard-2 or e2-standard-16. We instead do "Resource Based Pricing" [1], and there's only "E2 Instance Core" and "E2 Instance Ram" or whatever.
So if you have 100 e2-standard-2s and 100 e2-standard-16s running for a month, your bill will have two line items:
- 1800 vCPUs times 2.6M seconds of Predefined E2 vCPU
- 7200 GB times 2.6M seconds of Predefined E2 GB Memory
The price for E2 is apparently the same ($10.03/vCPU/month) for both Custom vCPUs as well as Predefined vCPUs [2] (meaning the price for your vCPUs is the same whether you make a custom E2 with 8 vCPUs and 29 GB of memory, or use an e2-standard-8 which has the same 8 vCPUs and 32 GB). Memory is the same (your $1.34/GB/month for a 1-year commitment).
Hope that makes sense. We'll try to improve the docs. Sorry.
[1] https://cloud.google.com/blog/products/gcp/announcing-resour...
[2] https://cloud.google.com/compute/all-pricing#e2_machine-type...
E.g. n1 predefined machine bills $0.031611 / vCPU hour. Whereas a custom sized n1 machine is $0.033174 / vCPU hour
Here it is with the 1 year committed use: https://cloud.google.com/products/calculator/#id=79186cdb-18... ($30.82/month)
3 year committed use: https://cloud.google.com/products/calculator/#id=afd446fc-74... ($22.01/month)
And here without: https://cloud.google.com/products/calculator/#id=3ff5d861-75... ($48.92/month)
Is it, really? Last time I checked, AWS charges separately for network traffic, so unless you know exactly how much traffic you will serve over the next 12 months, you can't know how much it will cost.
That's one of the reason I like simple VPS providers as the first 1-2 TB/month (typically) is free/included in the base instance price.
[1] https://cloud.google.com/products/calculator/#id=905f5722-5f...
Well, nowadays, you don't buy reserved instances; you buy compute savings plans. And be sure to compare the strengths and limitations of an EC2 Savings Plan versus a general Compute Savings Plan; they have differing characteristics concerning instance type convertibility, regional transfers, and applicable products.
And with Compute Savings plans, its not like an RI where you say "I'm paying for one instance upfront, give me 30% off". You instead commit to a level of spend, in Dollars per Hour. Then they convert that spend into fungible credits that have differing exchange rates depending on the instance type, region, and even compute product. Then, through the magic of the AWS Billing System, you save money.
Very rarely do you come out the other end of AWS Compute consumption with a good understanding of the exact trace of "dollar spent to which compute product?" With products like Fargate, its even worse. Don't get me started on Fargate and its billing characteristics.
I'm nitpicking here. But only because: Nothing is ever as simple as it seems. GCP is just different; I wouldn't classify it as more or less complex.
AWS very rarely removes features. People may still buy RIs because they have corporate or technical processes in place where they make sense. But, from a pure financial standpoint, RIs are inferior to Savings Plans.
[1] https://docs.aws.amazon.com/savingsplans/latest/userguide/wh...
Unless you specify what kind of site you run, and what traffic do you face, the use case is nebulous.
> Instead, I'd compare e2-std-2 to m5.large like you started to do so.
Yes, a "baseline performance" of 100% would more or less be an M-family instance, but with additional overhead to manage noisy neighbors etc. (and thus T-family is slightly more expensive for the same constant performance than M-family). T-family is specifically for non-constant workloads where CPU over-commit provides value, but without memory over-commit, which can result in highly-variable performance.
Neither T-family or M-family do "memory stealing" aka memory overcommit, like GCP's E2 seemingly does (but the pricing page doesn't explicitly state this, and your detailed comparisons omit this crucial difference).
So, apples and oranges; you shouldn't really "compare" without benchmarking ...
What is the "baseline" memory GCP E2 instances get?
AWS introduced the “Savings Plan” earlier this year that covers both EC2 instances and Fargate.
I spend nearly $10K/month on Google Compute Engine and get substantial committed use discounts, so these are very important questions for me.
We do expect it to be a good fit for folks doing web serving, and so on. I don't think it's a great fit for you, Bill :).
Hope that helps!
What's the payoff for me? Paying less! Except that without sustained-use discounts, I'm not paying less. What strikes me as odd is that people getting the sustained-use discount are probably the people you'd want ton E2 instances. If someone is running a web server and ends up leaving you with a lot of idle CPU, that's really good for Google. That means that they're leaving a lot of unused space where you can schedule other VMs. At least to me, it seems like the people most likely to have empty space are the sustained-use people.
Who is likely to have the least unused space? The people paying by the second/hour. If I spin up a VM to do a video encoding task and then terminate it, I'm not leaving a lot of empty CPU that can be filled by other VMs.
That's why I find it so curious that there's no sustained-use discount for the E2 instances. People leaving relatively idle VMs running in a sustained way seems ideal for this kind of scheduling. Lots of companies are going to have workloads that, well, are less than efficient. For example, a task worker that gets around 6 tasks per hour and takes a minute per task. It's leaving around 90% of the requested CPU idle.
I guess the question is: why would anyone running with a sustained-use discount switch from an N1 instance to an E2 instance? The blog article sounds amazing: "we've found lots of CPU you aren't using that we re-use and pass the savings on to you!" Then it seems less fun: yea, you know how you're running a web server that's idle a lot? We'll re-use all that idle CPU, but you won't get a discount.
The weird thing is that Google is offering a ~30% discount for everything except sustained-use. You've noted the on-demand discount. A 1-year committed E2 price is 30% off the 1-year committed N1 price. The 3-year commitment is the same. So, it doesn't seem to be the case that Google found that there was a lot of idle CPU in on-demand VMs, but not in sustained-use VMs. It could certainly be that my expectation that long-running VMs would use less average CPU than short-running VMs is wrong, but Google isn't pricing it that way for the 1 and 3-year committed pricing.
Given that N2 instances lowered the sustained-use discount from 30% to 20% and the E2 instances have no sustained-use discount, it seems like Google is re-thinking whether it wants to offer sustained-use discounts. That's a pity to me. Sustained-use discounts drew me to Google Cloud over AWS. Google Cloud's offering said to me: "we get that a lot of people are using our VMs in a sustained way for long times and we'll automatically apply a discount for you without requiring you to sit in meetings determining how you want to allocate things." Committed-use discounts were great on top of that, but making sure that people didn't end up paying the on-demand price just because they didn't spend their time pre-allocating capacity was just such a consumer-friendly move and a key pricing differentiator with AWS.
It's also a bit odd that it means the committed-use discounts are so much higher over sustained-use. Like, I save ~10% by going with a 1-year commitment on an N1 and ~36% with a 3-year commitment (compared to just leaving them on). So, there isn't a huge benefit to going with a 1-year commitment on N1 instance (not that 10% can't be very beneficial). On the E2s, it's quite big - a ~37% discount for a 1-year commitment and a ~55% discount for 3-years. Frankly, those seem like AWS reserved-instance numbers and mean I'd really want to pre-allocate if I were going with E2 instances.
If the E2 instances got a 30% sustained-use discount like the N1 instances, Google could be undercutting AWS by around 50% for that use case. No pre-planning, no commitment, no meetings where people worry about buying something they won't use. Just half-price. It's basically the same savings you'd get if you did a 3-year commitment at AWS (with zero upfront), but without the pre-planning.
Instead, it makes me wonder if Google is really committed to the sustained-use discounts or if I'll have to start doing extra planning.
[1] https://cloud.google.com/compute/all-pricing#e2_machine-type... [2] https://cloud.google.com/compute/docs/instances/signing-up-c...
GCP preemptible = AWS spot
GCP commitment price = AWS reserved instances
Rough comparison. GCP preemptible instances only live 24 hours max and have a set rate, no bidding. GCP commitments are based on CPU/RAM combinations rather than instances. GCP also has automatic sustained use discounts on the normal price if you run an instance > 80% of the month.
$74.99 MSI B450M PRO-VDH Max $189.99 AMD Ryzen 5 3600 6-Core, 12-Thread Unlocked Desktop Processor with Wraith Stealth Cooler $38.99 Ballistix 2x8GB Sport LT DDR4-3200 CL16 $63.99 WD Blue 3D NAND 500GB Internal PC SSD - SATA III 6 Gb/s, M.2 2280, Up to 560 MB/s - WDS500G2B0B $48.99 Thermaltake Smart BX1 450W Bronze $59.99 SilverStone Technology Micro-ATX Glass Computer Case PS15B-G
=$476,94
In 10 months you have a new server paid. You have huge gap to 2 years of guarantee for components to bring in networking costs and electricity. It just doesnt make sense to pay google for this.
Can I shut that thing down if I don't need it, not having any cost? What about electricity, is there a backup in case there is a power outage?
This is about cloud offer vs cloud offer and not a discussion about cloud vs self-hosting.
Side-note: You probably want to go with ECC memory for your server build.
Example, say you run an online shop that has more demand in certain timeframes (like black-friday or December) you can easily scale your website by spinning up machines, which you can easily stop using after the demand flats out. With own hardware/colo/traditional web hosting you can't do that and holding like 10x hardware for short-term traffic spikes makes no sense.
It is funny that no one used the most realistic "excuse". That you just have no clue how to do it (install, setup software) and as you cant do it yourself, you need to hire someone. This is the only case where google does make sense. It is path into idiocracy as you will be able to do less and less yoursel with outsourcing know-how (we didnt learn anything from past China expiriences right?), but we wont worry too much about it too much about it, untill then you will all be zillionaires and it will no longer matter.
But hey, being judgmental towards a whole industry running large portions of the web is way more fun.
I don't know about you, but I can remember the situation 15 years ago as a new startup where a problem with a server meant driving to the datacenter. I can tell you, paying more for a EC2 instance was the definition of a no-brainer.
https://cloud.google.com/blog/products/compute/understanding...
Rather than a guaranteed core and RAM as with N1/N2, resources for the underlying host can be dynamically balanced through live migrations, which GCP has already been using for years. Cool solution, and should work to save money for most workloads.
That would be so cool, just adding cores if the load goes up!
You would have to make sure your code has enough threads ready to fill those cores though! (if you use non-blocking async. stuff)
Or is this what they mean it already has?
Edit: thinking more about this it must be really hard and require kernel fixes?
I mean how would linux behave when you add/remove cores and RAM f.ex.?
It used to be a corner stone of power management on mobile devices. The Nexus 5, for example, would regularly run with just a single core online, hotplugging the other 3 off until hit with a load and then brought cores back online 1 by 1 as needed.
That behavior still is in some corners of the mobile world, but increasingly less so.
So the CPU hotplug path is as a result actually a lot more battle hardened than you'd expect, and a lot more consumer software than you'd think ran just fine in that setup without noticing.
Yes, but most workloads are fairly unprepared for this sadly. And they're really not ready for memory unplug. (I also miss the days of my multi socket boxes and plugging in CPUs and memory).
What do VM-guest memory-ballon drivers do right now when the host suddenly attempts to reserve more memory than the guest has free? I'd presume the kernel would just consider itself to be in an OOM condition, and start killing processes to free up the memory until it can return OK to the balloon driver, no?
Because, from what I understand, that's closer to the scenario we're talking about here: you're not abruptly yanking DIMMs (like physical memory hotplug); rather, you (the hypervisor) are gracefully letting the guest know that some memory is about to go away, and since you (the hypervisor) have your own virtual TLB, you can let the guest OS decide which "physical" memory (from its perspective) is going away, before it happens.
1) Some things can't scale on more hosts, like say an action MMO with no sharding.
2) Scaling dynamically does not necessarily mean you have to do it unpredictably.
Are you running them as unlimited or standard?
We moved off of T2’s and back to C’s because of the unpredictable behavior under load. IIUC, T3s by default just bill you more instead of CPU throttling, which is a bit better for our use cases, but we haven’t tried them yet.
T3 look cheaper and better than E2 then, my only problem is region placement where Iowa and Taiwan are more central than anything AWS offers (still no central US region!?).
I'm in the MMO business, so very specific requirements.
T3 is pretty different (even in unlimited mode) than E2. As an example, t3.xlarge (4 vCPU, 16 GB, $.167/hr, so $.042/hr/vCPU roughly) only has a baseline performance of 40% (so 1.6 vCPU). If you cross that threshold in unlimited mode you pay an additional $.05/vCPU/hr (so more than doubling your cost). By comparison an e2-standard-4 is $.134/hour even if you run it flat out.
We take on the statistical multiplexing over the datacenter and move VMs around, instead of pushing it to you as an economic or performance-throttling risk when you need it most. If you want a burstable type, we do have an e2-{micro, small, medium} that only guarantees you 12.5%, 25% and 50% of your 2 guest-visible vCPUs. But that's more fit for dev workstations and so on.
You're implying here that EC2 doesn't do this.
On what basis?
We have many tools in our toolbox at our disposal: non-disruptive in-service updates moves live migration from a "must have to operate compute cloud service at all" to "helpful in some scenarios when the workload and/or situation warrants the impact to performance during precopy / potential post-copy phases."
But I would not assume that EC2 does not have that particular tool in the "fully production, and used" toolbox.
When are you building a central US region?
T3 instances provide hyperthreadded vCPUs to EC2 instances, and the Nitro Hypervisor uses a core based scheduler (coscheduler) to ensure that cores are never shared between two EC2 instances.
Upstream Linux kernel changes that are based on some of the changes in the Nitro Hypervisor were posted to lkml in 2018: https://lwn.net/Articles/764482/
I hope to see the GCE team contributing more to the ongoing discussion on core based scheduling!
This in order to allow for my server to continue operation if the steal rate of one core goes through the roof because some other instances running on my shared physical core are taking too many resources unexpectedly.
And how does Amazon explain still not having a central region in the US? I mean the multiplayer share of your revenues must be at least 10% by now?
I just managed to get a IONOS instance running in Kansas City (same distance from east/west-coasts) for low-and-behold 1€/month with unlimited data (18GB SSD and 512MB RAM). How is AWS going to compete with that?
The scheduler can move where your vCPUs run based on available resources.
I can try to explain virtual machine CPU scheduling, but I can't explain when or where AWS will build new regions that have not been announced. :-)
[1] https://lwn.net/ml/linux-kernel/20180907214047.26914-1-jscho...
EC2 instances that have no local storage state can move between hosts in response to events like reboots.
This is already possible on ESXi with Linux guests for years now, so it’s certainly a solved problem in some capacity.
And has been possible on KVM (e.g. VirtManager, RHV/RHEV/Ovirt) for years too.
Xen 3 also supported online memory increases (but I don't think CPU).
"Compute Engine can also live migrate instances with local SSDs attached, moving the VMs along with their local SSD to a new machine in advance of any planned maintenance." [1]
[1] https://cloud.google.com/compute/docs/instances/live-migrati...
More details from when I was working through it: https://twitter.com/fredwulff/status/1204861220165017600
Your analysis is close, but the on-demand (per second) pricing is also a lot less expensive. You should think of it as:
- Less than a full month w/o commitment => E2 up to ~30% cheaper (particularly for say 273 minutes per month or something).
- Full month w/o commitment => Roughly identical.
- Full month with a 1-year or 3-year commitment => E2 ~30% cheaper.
E2-Standard:
- 2x vCPU, 8GB: $48.92/month.
- 4x vCPU, 16GB: $97.83/month.
- 16x vCPU, 64GB: $391.35/month.
E2-HighMem:
- 2x vCPU, 16GB: $65.99/month.
- 8x vCPU, 64GB: $263.97/month.
- 16x vCPU, 128GB: $527.94/month.
E2-HighCPU:
- 2x vCPU, 2GB: $36.11/month.
- 8x vCPU, 8GB: $144.45/month.
- 16x vCPU, 16GB: $288.90/month.
I didn't list Preemptible Pricing because it is very workload specific/niche.
Does this mean your VM getting dynamically migrated to a new server as performance issues start happening?
Sorry if it’s a silly question, I’ve never dug into how VPS stuff works in practice.
What's at it for me financially to allow that? Why should I give up memory I've paid for unless I get a discount/refund? That memory will be useful even as caching of disk pages, so giving it up is making my application slower for no financial benefits.
So is there potential for much different performance between the same sized instance based on chance?
Your mental model is correct: vCPU means hyperthread (except for shared core things like the f1-micro, g1-small, etc.).
We had a different measure of "relative performance" called GCEU (GCE Units) but stopped publishing that as it's pretty meaningless for most people. We do our platform qualifications at Google to ensure that for users that "don't care" which CPU platform that they're on, that they get improving performance/$ and so on. But for GCE, we clearly document instead the platforms and base/all-core/single-core frequencies we use [1].
tl;dr: if you want to choose your processor, stick with N2/C2 and our upcoming AMD machine types. If you're okay with us deciding for you and want a big discount, give E2 a spin!
If machines really are idle 95 percent of the time, why is the price only discounted 30%?
Because that's apparently what Google believe the market will bear.
Ovh is quite good too.
I don't wanna distract from the E2 launch, but we definitely have gotten the message on all of those and they're at various stages of in-flight / complete. As an example, Policy Documents should let you do prefix-based matching for GCS: https://cloud.google.com/storage/docs/xml-api/post-object#po...
As someone who just setup services on Google Cloud, I could not be more disappointed and outraged at their billing and performance. It's outrageously high for even small services (and I'm comparing it to Heroku of all places), and the documentation is even worse. Yes, there are examples but the docs are outdated, and make it almost impossible to relate what you're paying to what you're doing until you get the bill.
The $300 credit promo they offer is a joke, it's not $300 in the sense you'll get to try it out, it's that you're likely to rack up at least $300 is bullshit charges before you're even aware...
new - e2-micro $0.0083 - 1GB 2 cores @ .125 fraction per core?
Pretty cool if your code can use multiple cores efficiently, specially if each virtual core is guaranteed a separate physical core then this is really good! = if one core gets a congestion peak maybe the other won't.
For less than a buck/month you get better parallelism and .4GB RAM!
Sadly still no pre-purchased committed usage discount for the shared CPU instances!
----
For those with big budgets:
old - n1-standard-1 $0.0475 - 3.75GB 1 core
new - e2-standard-2 $0.06701 - 8GB 2 cores (0.00001 really?)
I also wish we had some computation power comparison metric so that we could stop looking at apples and bananas without committing.
For monthly you multiply by 730 I think.
See my comments for feedback from AWS engineer. I'm guessing since both AWS and GCE run the same hypervisor now that GCE will have the same "feature"?
I didn't think so, but this sentence almost seems to imply that you pay for the performance ceiling when you're using it, but not when your application is idle. Would be nice to have this clarified if that's not what this means.
For one thing, everyone is painfully aware of Intel's monopoly pricing a few years ago before AMD came back to life. To prevent this, 3 supplier of CPUs seems minimal, so there can be dynamism of check and balance. (2 is insufficient, as seen from Intel vs. AMD)
Google doesn't own a company that designs ARM processors (IIRC)
Get a single core ARM instance for almost the price of a double core x86 instance. Not a great marketing speech.
Compare their respective relationships with OSS
We can do this all day.
Based on what evidence? Statements from Google that AWS doesn't do live migration?