14 ms·
AWS costs every programmer should know (2019)
- cheinyeanlim 4y agohttps://colin-scott.github.io/personal_website/research/interactive_latency.html https://colin-scott.github.io/personal_website/research/inte...
- spaintech 4y agoGreat little article thank you, one thing, can you add the unit cost per mont details for storage and bandwidth, it makes a difference in calculating the cost, not the same to asume $0.10 TiB/Month or $0.10 GiB/Month, I think that data would be most useful without having to go AWS for verification.
- thrtythreeforty 4y agoThe one AWS service that I pay for is S3 Glacier Deep Archive. It is very cheap insurance for knowing with virtual certainty that your data exists. Egress is expensive ($100/TB last I checked), but in the target use - backups of last resort - I will be very glad to pay that to have my data back. And if all goes right I'll never pay it. Personally I find ordinary S3 far too expensive to justify. Not so with Deep Archive. Note, I work for AWS. Opinions are my own.
- Nathanba 4y agoIt might be cheap now but there is absolutely no guarantee that one day they'll send out a fairly nondescriptive AGB update email and increase the prices without you knowing. Then because all these ever so helpful cloud services don't allow you to create payment caps the costs can explode any day. It's all one executive decision away.
- thrtythreeforty 4y agoI feel like AWS has a pretty good track record at this point for not increasing prices - certainly to the point that I trust them not to pull an Oracle. (Hypothetically, my volume of data stored with them is low enough that even a 10x gouge would just make me angry, not wound me financially. There's not a mechanism for these archives to incur explosive costs, but your point is why I avoid other less-predictable cloud services.)
- faangiq 4y agoDon’t be silly. It’s a game theoretic certainty that they will indeed pull an Oracle.
- nindalf 4y agoThere's no need to act condescending or call people names ("silly"). A 15 year track record and a public commitment aren't things you can hand wave away. I'd also point out there's no substance behind your "game theoretic" jargon.
- jb_s 4y agoThe parent put it too strongly but it's equally naive to assume that track records and public commitments mean anything to a privately-held company, with a commitment to profit shareholders, run by Jeff Bezos.
- nindalf 4y agoI can’t believe this needs to be spelled out. Of course AWS needs to make money. Of course they make more money in the short term if they raise prices. Of course this affects their long term revenue and profitability because customers are afraid that prices of any of the products they use could rise. Say whatever you want about Amazon, but they have never been a company that cares about the short term. They care about profits for the next 20 years, not Q3 2022. You’re calling me/my views naive? Seriously? Just after I excoriated someone for name calling?
- hcazz 4y agoHistorically speaking, in the ~15 years AWS has been around, have they ever increased prices for any service? In my experience, they've only ever decreased prices of their services as advances in tech have been made rather than increasing them. Sure some start out being expensive cough Macie and Fargate cough but they didn't increase prices after being launched as far as I'm aware. Assuming they never have increased a price in 15 years, that doesn't prevent them from doing so, but it's a confidence inspiring track record. I have about as much confidence that AWS won't raise prices on existing services/features as I do that Google will eventually kill another good project - https://killedbygoogle.com/ https://killedbygoogle.com/
- Nathanba 4y agoThe fact that they don't have a simple price cap setting proves to me that they have no intention of being on my side. Promises of businesses that they won't increase prices are .. well, it just means almost nothing to me. It's "nice".
- bringthesaas 4y agoOut of curiosity, what do you think a fair price for s3 would be? I haven't had a problem with the storage prices, just egress fees can add up (I don't work for aws or a cloud provider, just curious)
- thrtythreeforty 4y agoTo be clear, I have no special insight into underlying S3 costs. Only the perspective of a customer. My opinion is that Backblaze has done an awesome job of driving their storage costs down, scaling that up, and then reflecting that thriftiness in their pricing. Their technical communication (e.g. hard drive reliability reports, software engineering blogs) makes me believe in their competence. So when Backblaze sets a price, I expect that's pretty close to the minimum sustainable price, because they've spent a lot of effort on that. B2 currently charges $5/TB/mo with lots of options for bandwidth that's too cheap to meter. This strikes me as pretty fair overall.
- Dylan16807 4y agoB2 is definitely a lower tier of storage and I don't begrudge amazon wanting $23 for their top tier. But the bandwidth is a huge issue.
- thrtythreeforty 4y agoIn what sense? The durability is 11 9s either way [1]. If you value all the different AWS regions, then it's true that B2 can't match that. I'd still argue the 4.6x cost difference isn't worth that for a lot of uses, though. [1]: https://help.backblaze.com/hc/en-us/articles/218485257-B2-Resiliency-Durability-and-Availability https://help.backblaze.com/hc/en-us/articles/218485257-B2-Re...
- Dylan16807 4y agoThe data is only stored in one data center, and the 99.9 and 99.99 percentile latency on requests is not good and can cause issues depending on use case. And if durability is your main concern you'd be on a cheaper S3 plan anyway. > I'd still argue the 4.6x cost difference isn't worth that for a lot of uses, though. Sure. S3 and B2 have different strengths, and B2 is better for many uses. But looking at the full stack and the performance at each layer suggests to me that S3 charges a reasonable/fair price for storage. And that's what the question was about.
- fulafel 4y agoIt's interesting how AWS can keep so high prices on these. But it's just the beginning, the real money comes from when they convince you to run over a dozen vms/containers (all needing storage etc of course). You need to be triply redundant on 3 availability zones, (3x) both with the RDS db cluster and app containers (2x) . And then have separate dev/staging/prod envs (3x). That's 18x. You can then get a pat on the head ("pass AWS well-architected review"). Then they innovate "serverless" stuff where you can pour developer man months and years to save on this overpriced things by making everything more complex, hard to monitor/debug and learn new aws specific techs, so you can get faux savings. Here they're buying your long term lock-in by getting AWS specialists and advocates on your long term payroll. They're doing certifications and investing in AWS careers that can carry over to the next employer too. And don't even get me started on how much work by this time has gone to build the infra-as-code to manage the rube golderg machine, you'll (seriously) have more lines of CDK code than app logic (that was slower to develop & harder to debug than your actual app code per line). Just about now someone in your newly grown cloud herding engineering org champios the idea "I know what will help, let's start using Kubernetes". They've probably never costed / self administered a server in production use, or if they have, they know to keep quiet.
- philliphaydon 4y ago> You need to be triply redundant on 3 availability zones, (3x) both with the RDS db cluster and app containers (2x) . And then have separate dev/staging/prod envs (3x). That's 18x. Why would you care about the redundancy on staging / dev? Just making up things to inflate AWS costs now.
- fulafel 4y agoIf you're not testing az failovers you're probably just wasting money, like untested backups... But it's true that most people don't know this and aren't testing it because they don't know that az failovers don't automatically just work(tm). And the second downside of course would be asymmetry between the envs and divergence in the IaC etc resulting in more complexity and engineering work. (Of course you're probably wasting money anyway since you don't actually business-wise need better uptime than the single AZ, and your complexity induced human fumbles will cause much more outages anyway, but this has been a main selling point of the decision to go to AWS, so the requirement needs to be defended) Yes, you can build automation to have the redundant stuff up only sometimes, if you eat the engineering effort and complexity in your IAC and build automation... in the general vein of justifying engineering spend to offset AWS operating costs where running containers is very expensive! TLDR: either way you end up paying for the very high markup in compute prices, it'll just be easier to excuse jumping through expensive hoops to "save money" on it.
- usmannk 4y agoNetwork Egress always gets a bad rap but recently it's the SSD cost on AWS/GCP that has me upset. IMO storage needs to take on some of network egress's heat :) $0.10 per GB-month for a basic SSD is outrageous compared to Hetzner et. al. a 4TB SSD for a month costs $400 on the big guys and like $50 on the commodity providers. It's not even a managed service!
- sofixa 4y agoEBS is a managed service with very high redundancy (3/5 copies of your data, I don't recall). Hetzner's SSD is just that, an SSD.
- jstream67 4y agoI've always been bad at math but isn't 4TB for $400 approximately $0.10/GB ? As another commenter mentioned EBS is quite a bit better than just a SSD in a number of ways. You can resize it, it has published resiliency numbers, quick and easy snapshots, etc etc Also worth noting that the newest generation (GP3) is 0.08/GB/Month although like all things Amazon there are other charges to take into account.
- usmannk 4y ago> I’ve always been bad at math but isn't 4TB for $400 approximately $0.10/GB? Yes, I was trying to say that amazon and google charge $400 for 4TB (a lot!). And yes, EBS is better but what about when all you need is actually just an SSD?
- andrewstuart 4y agoIt is strange that bandwidth/traffic/egress seems to be an afterthought in this post and I think the numbers in the linked blog post are wrong anyway. Bandwidth out of AWS is at best 9 cents per gigabyte, which is HUGE and for many applications the primary cost. Indeed when I saw the title of the post I thought "there's only one number you need to know with AWS, it's 9 cents per gigabyte". Please correct me if I am wrong. I went looking to find the correct number but as always it is hard to find the exact prices.
- count 4y agoI've moved probably thousands? of workloads to AWS in the last decade. Not a single one of them has been 'internet facing' or pushed much/any data out of the environment. Average bandwidth bills are <$1k/yr. I'd guess most of AWS's customers aren't....that kind of shop. If you are, that's definitely something to be aware of though, no doubt.
- JamesSwift 4y agoIn every single AWS setup I've worked with (~10), bandwidth has been a not-insignificant portion of the cost. And its been surprising each time for anyone looking at the bill that bandwidth was as much as it was.
- kkielhofner 4y agoI still maintain bandwidth costs are the most poorly understood in the current CTO/CIO/Dev generation. The "cloud native" generation has (of course) never purchased bandwidth (as in circuits, cross connects, etc) and the result is "Well, AWS charges $0.09/GB so that's what it costs". I wouldn't be surprised if AWS is capitalizing on this blind spot and offering many services as loss-leaders knowing their 100x markup (or whatever) on bandwidth more than makes up for it.
- randomtwiddler 4y agoPricing is different for large customers, they can get special discounted rates. For the small guys, that's the ballpark as I understand it also. And I agree with you. That's the #1 item when building online infrastructure.
- DeathArrow 4y ago>AWS represents the computing power of its machines in Elastic Compute Units, and 4 ECUs represent more or less the power of a modern CPU. What does the author mean by the "power of modern CPU"? What which microarchitecture? Which generation? How many cores? In 2019 I had a Ryzen 9 3900X with 12 cores. Was that a modern CPU? How many Amazon ECU would that take to be equivalent? It seems to me he assumed all the CPUs were equally powerful at the time he wrote the article.
- boberoni 4y agoThe two data visualizations in the article are poorly designed. They show line graphs where the X-axis is the type of EC2 instance and the Y-axis is the price. Firstly, the X-axis of any line graph should be time. Or perhaps some other variable that "progresses". It's bizarre to use a category to label the X-axis of a line graph. Secondly, the X-axis is not ordered alphabetically, but seemingly randomly. I don't mean to be harsh, but a better data visualization would be a bar chart, not a line graph. Bar charts are better suited for categorical dimensions. Also, the type of EC2 instances should be grouped and/or sorted, but not randomized. This way, the information from the data visualization can be parsed more quickly and easily.
- kqr 4y agoThe point at which you turn a bar chart or scatterplot into a line chart is when and only when intermediary values can be linearly interpolated between adjacent values. This is often the case when the X axis is time, but far from always, and there are other types of X axis that satisfies that property too. That's the strict way of looking at it. Slightly more loosely speaking, a line also helps comparing whether adjacent values are higher or lower, because humans are fairly good at judging angles relative to each other. So under this looser requirement, the X axis values have to be such that adjacent ones are more comparable than further apart ones. Under the looser requirement, time is actually a surprisingly bad X axis because values further apart are normally just as valid comparisons as those close together! There's a third, very loose reason to connect the points of a scatterplot with lines: it helps the eye judge the sequence of points, and thus get a sense of the internal variation in the series. This is a very loose requirement, but also a powerful tool.
- nathants 4y agoaws can be so cheap. aside from egress bandwidth, it’s pricing is fantastic. crazy aws cost is always gonna be a case of your holding it wrong. either intentionally because it’s more fun, or accidentally. how to use aws well and cheaply: - scale to zero whenever possible (lambda) - use minimal infrastructure (lambda managing ec2 with route53 health check) - don’t use rds (s3+dynamo ideally, sql on i4i nvme if you must) - automate everything, and use the automation constantly. - egress heavy components get pushed out to cloudflare. r2 is in public beta!
- arinlen 4y ago> scale to zero whenever possible (lambda) AWS pricing is great because you aren't price-gouged if you don't use it? And your statement isn't really true. If you use AWS Lambdas do implement something like an HTTP endpoint, you still need to pay for stuff like AWS KMS and API Gateway even if no client hits you with a request. - use minimal infra (lambda managing ec2 with route53 health check) Above free tier AWS Lambdas are terribly expensive when compared with EC2 alone. You're charged per RAM*time, you're charged per concurrent execution, and if your Lambda times out you have to pay for the re-execution. - don’t use rds (s3+dynamo ideally, sql on i4i nvme if you must) AWS pricing is great because you are not price gouged id you do not use them?
- nathants 4y agoaws pricing is literally a catalog. what and how much you buy is kind of the whole thing. a subset of the catalog is good. aws core primitives are: - flexible - reliable - robust if your service succeeds, you will definitely want to move some components out of aws, but not all of it. aws can always remain the control plane. if you don’t need what aws offers, don’t use it. they offer it at a price, and it is what it is. thanks to other providers, it likely will remain fair over time. what i outlined was how to make aws cheap(er). it’s a simple strategy: - use the primitives: s3, ec2, nvme, route53, lambda, apigateway - avoid the services: rds and all the rest - avoid heavy egress: use cloudflare workers and r2 scaling to zero means avoiding things like kms keys. not sure where you got apigateway pricing from, it definitely scales to zero without fixed minimum cost. lambda will always be the most reliable part of your stack. when you have enough traffic that it’s worth it, use ec2 instead and let lambda manage those machines.
- deleted 4y ago[deleted]
- jiggawatts 4y agoThis is a tiny bit out of date, but the costs have not changed much from what I can see. Also, for a point of comparison: Azure AWS CPU core / month $40.32 $34.56 GB ram / month $10.00 $8.64 GB logs $2.30 $0.53 So it seems that for the "latest gen" VMs currently available, Azure does charge a little bit of a price premium over AWS, but it's not a massive difference. Also, costs have gone up but it's roughly in line with inflation. Also note that 2022 era CPUs are somewhat faster than 2019 era CPUs, so you get more for your money. The biggest difference between the two biggest cloud providers I've noticed is Azure Log Analytics versus AWS CloudWatch logs. Azure's logs are nearly 5x as expensive as AWS to ingest, and AWS is already overpriced in my opinion. Charging $542 to keep 1TB of logs for a month is insane, because they're stored in a compressed columnar format and aren't actually that big on disk. Azure's $2,350 for a TB of logs is highway robbery and makes it impossibly expensive to use many of their dependent services in the way they are supposed to be used. For example, ingesting all web logs can cost more than the web server being monitored! Similarly, their SIEM security product Sentinel is stupidly expensive if you enable all of the data feeds it supports. Think 5 or 6 figure sums per month. PS: Another thing that catches people out when designing cloud solutions is disks are typically "fully allocated". If you pre-provision an empty 1 TB disk, you're charged for the full terabyte, not your current usage of it. This is not what VMware vSphere does (typically), so many people simply ask for 1, 2, or even 4 TB disks, put 20 megabytes of application code into them, and then they're unaware that they're overpaying for storage by a factor of 50,000x or more.
- Bellamy 4y agoAWS is overrated. Most of the engineers and managers choose it because it's a safe choice for them. But in the long term the costs rise and you can't get away from it. I would even argue it's only for those who are afraid of command line.
- amelius 4y agoCloud should just be a commodity, where you can switch between providers without changing a line of code. Until this is the case, I will keep building my own solutions.
- matwood 4y ago> I would even argue it's only for those who are afraid of command line. This make no sense. Using AWS beyond spinning up a VM requires extensive knowledge and comfort at the 'command line'. In fact, I think the vast knowledge required is one of the negatives of all the current cloud providers. Back when I could walk down the hall into the DC and sit down at whatever machine it was easier, and arguably required less knowledge. > But in the long term the costs rise and you can't get away from it. With AWS at least, our long term costs have only gone up as the business has grown. If we went back to the same size many years ago, costs have gone down.
- Bellamy 4y agoSo you could easily switch away from AWS if needed? I've heard a few horror stories of vendor locking and I can easily understand that (but no own experience, luckily).
- genuine_smiles 4y agoWhat would you use instead?
- lbriner 4y agoThe complaints about cloud costs vs on-prem often compare apples with pears. Complaining that a machine that "I could buy for $1000" costs like $4000/year on cloud missing an enormous number of costs that people don't consider as well as the reliability/availability that you are paying for. Do it the same on-prem and you need to include the costs for: * An air-conditioned room + maintenance (this could be very large if you are a big company) * How many staff at $50-100K per year to look after it * How to deal with internet reliability - do we need multiple high bandwidth broadband links at $1000+/month? * Ongoing op-ex costs for failed components. * Cap-ex replacement of hardware after 2-3 years The point of the cloud is that these costs are wrapped up in your rental cost so of course it looks high. If you have the people/skills and need control over exactly how your hardware is provisioned, go on-prem and good luck but plenty of us would rather concentrate on what we are good at and are happy to pay 50-100K per year to a cloud provider to do it for us.
- Slartie 4y agoThe complaints about the complaints about cloud costs vs on-prem often deliberately ignore that there is a spectrum of options between "cloud" and "on-prem". This is not a binary choice between these two extremes. Your air-conditioned room plus networking can easily be rented from a multitude of providers, for example, in different variants from "el cheapo" to "ultra-high-professional with lots of fancy certificates". You can then place your own hardware in rented racks, you can buy your own racks and place them in rented space, or you can rent everything including the hardware.
- krab 4y agoOur colo even offers managed Kubernetes on top of the rented hardware.
- Enhex 4y agofor a single box the extra cost is roughly as much as you need for your personal computer.
- dncornholio 4y ago> If you have the people/skills and need control over exactly how your hardware is provisioned, go on-prem and good luck but plenty of us would rather concentrate on what we are good at and are happy to pay 50-100K per year to a cloud provider to do it for us. This is the only thing that matters when you talk about AWS. All your other points are not mutual exclusive. I love the "good luck". As if it's some magic that we do to get applications run on the internet. It's not as hard as you think. Even scaling. These are solved problems and just abstracted away by AWS behind a paywall.
- a_square_peg 4y agoOver the years, I've migrated from AWS -> Digital Ocean -> Wasabi/Hetzner for various compute/storage needs and I'm still surprised how AWS price hasn't come down considering many other options in the market. It feels like cloud computing & storage have really become commoditized with many viable alternatives but the price charged by Azure/AWS/GCP doesn't seem to reflect this.
- Dave3of5 4y agoAlso should be included is license costs. It's easy to forget that special feature you are using in SQL Server or Oracle can increase you to a much higher license. Main areas for concern for license costs are DB and windows server. Also DevOps people are not cheap. You need to factor in implementation and maintenance. I could be using that money on a bigger server with less complex infra.
- nathias 4y agoThere is also the cost of supporting a global monopolist that exploits populations of workers undercuts prices and destroys local production and trade in order to spread its empire.
- avrionov 4y agoIt seems that the article is almost 2 years old and the script is missing from github. Here is the original website where the information is taken from [1]. Provides the latest data with every possible instance price. [1] https://instances.vantage.sh/ https://instances.vantage.sh/
- jeandejean 4y agoI refuse to learn these numbers, they are outdated so fast. Are they still relevant today? One would spend quite some time figuring that out instead of optimizing his own code/architecture... For which there's always good discounts to get!
- dncornholio 4y agoThis title is toxic. Don't push AWS on me. AWS is for huge corporations or for devs who don't know how an internet application works.
- bearjaws 4y ago> for devs who don't know how an internet application works. I'd argue AWS is even more risky than any other solution for people who don't know how applications work. Theres about 3,000,000 footguns loaded into AWS.
- epberry 4y agoRegarding bandwidth costs, there are new AWS services with much better pricing. I just happened to write about this here, https://www.vantage.sh/blog/nat-gateway-vpc-endpoint-savings https://www.vantage.sh/blog/nat-gateway-vpc-endpoint-savings
- sampo 4y agoWhy would you make line plots, with a category variable on the x-axis? Bar charts would be appropriate here. Also, the lines seem to have way more line segments than there are labels on visible on the x-axis, so what do the graphs even mean? Are they based on a larger number of instance types than what the labels show? What are those non-labeled instances then?
- ivankelly 4y agoInter-zone traffic is $0.01/GB EACH WAY. So in effect it's $0.02/GB https://www.duckbillgroup.com/blog/aws-cross-az-data-transfer-costs-more-than-aws-says/ https://www.duckbillgroup.com/blog/aws-cross-az-data-transfe...
- bezospen15 4y agoCloud services will eventually shift the entire market back to onprem strictly because of costs...costs that are supposed to go down over time
- mikewarot 4y agoUntil AWS lets you set hard limits on your spend ahead of time, I'll take a hard pass.