6 ms·
They don't mention at all what services they were using (other than slight mention of S3) which makes it very hard to respond to this. If you are running everyt
by joshstrange 4y ago
They don't mention at all what services they were using (other than slight mention of S3) which makes it very hard to respond to this. If you are running everything on EC2 then you are going to have a bad time (especially if you aren't using reserved instances).
AWS (IMHO) shines with the various services they provide (S3, Lambda, CloudFront, API Gateway, SQS< SES, to name a few). AWS is a game of trying to reduce your bill and often that means using AWS-specific services. If you want to stay completely "cloud agnostic" you are going to paying more than buying into a "cloud", in that scenario then you absolutely should be looking at dedicated servers. AWS is great because you can bring existing software and just run it in EC2 (or their container stuff if your software is containerized) but the AWS magic comes from using their managed services (also spinning up/down EC2 instances as needed, but if you are running them 24/7 then consider alternatives or at least pay for reserved).
- taylodl 4y agoYes. If you use and manage AWS resources as you would your own on-prem resources then you're not going to have a good time. As soon as you think you need EC2 instances you need to re-think your architecture. You're probably not using AWS most effectively.
- shudza 4y agoSo what should you use for let say, a backend API service? Don't tell me beanstalk/fargate/etc, because they're actually more expensive.
- joshstrange 4y agoLambda is an option, it's been a very attractive one for me.
- jjav 4y agoAWS lambda is super cheap at tiny scale. But if you get into any real constant load, it is way more expensive than a VM. The other drawback of lambda is the flip side of having the server opaquely managed by AWS. It is so opaque you can't debug anything. At one startup we had a weird connectivity issue from lambda to RDS but it was impossible to diagnose given the lack of access so it went on for months. Had it been running in a VM, I could've diagnosed that within an hour with tcpdump and bpf et.al.
- 300bps 4y agoLambda, SQS and SNS. That’s how just about everyone does backend API services with AWS. You’ll be shocked at how cheap, scalable and bullet-proof it can be.
- cj 4y agoUntil you reach scale, and then you’ll typically end up migrating off of those services onto EC2 where a $10k/yr machine can process many orders of magnitude more requests for the same price. Lambda, etc, just doesn’t scale well financially if you’re doing millions of requests per day.
- taylodl 4y agoThen as the OP said, AWS isn't for you if you have a constant 24/7 compute load. In my case the load is very bursty. I sometimes do millions of requests per day, but I typically don't. We lowered our TCO by 75% by moving from on-prem to AWS and using Lambda. It really comes down to your compute load profile.
- PetahNZ 4y agoUnless your app is doing a lot of compute. We tried moving our workers to lambda, it was 10x the cost vs an EC2 auto scaling group
- icedchai 4y agoThe Lambda "developer experience" is mediocre at best. Performance is often highly variable. And when you reach a certain point, you'll get much better bang for the buck with EC2. Everything can be cheap when you have very little traffic.
- ryanisnan 4y agoUsing Karpenter for AWS has been a game changer. Set your instance family designations, set up a compute savings plan, and let it ride.
- macinjosh 4y agoWhat I don't understand is why anyone would spend, precious and expensive engineering resources on coding to a proprietary API owned by one of the largest companies on the planet to whom you are nothing. Ok so you save money on the monthly bill but what happens when Amazon decides they want to enter your market? What happens if they decide your service is too controversial and they kick you off? If you were deploying your own services to EC2 instead of using AWS's own services you could at least setup shop elsewhere with just a bit of work. To me it is antithetical to building a sustainable product. People just hoping their startup gets bought and then it is someone else's problem.
- pooper 4y ago> To me it is antithetical to building a sustainable product. Continuing what you said, Google uses macOS and Windows for client machines. That is ok because if Apple or Microsoft were to decide to cut off Google altogether, Google would have bigger problems. However, I think from a business point of view, this is similar to how so many businesses use cloudinary. Cloudinary is a software as a service company that provides cloud based image and video management services. What if cloudinary kicks you out? There is a lot of custom code out there to interface with cloudinary API. Where do we draw the line between using Cloudinary is ok but Amazon aws lambda is not?
- macinjosh 4y agoI can't find the quote, but I think it was Joel Spolsky on an old stackoverflow podcast with Jeff Atwood. They were discussing why stackoverflow built their own servers and did not use cloud or other hosting. He said something like companies should fully own and control their product and any direct dependencies thereof. If you think of it as a concentric set of rings you at least want to have full control over your ring and the ring below it. In the terms of a web app it meant the code for your application and the hardware it runs on. To me that seems reasonable.
- RussianCow 4y agoThat doesn't sound reasonable at all to me. Unless you are building your own cloud service or doing something out of the ordinary (for which cloud wouldn't be a good fit anyway), the hardware you run on has absolutely nothing to do with your business. Take the shortest/cheapest path and move on. To be fair to the Stack Overflow guys, AWS had fewer offerings when SO was built, so the comparison wasn't the same then as it is now.
- MajimasEyepatch 4y agoI think that statement about EC2 is a little too strong. You definitely shouldn't be managing individual EC2 instances in most cases, and you probably shouldn't be deploying directly to EC2. But if you're running EKS (Kubernetes) or ECS (non-k8s containers), then you're probably going to get more bang for your buck with EC2 nodes than Fargate nodes, especially if you have a large cluster.
- taylodl 4y agoThat's a good distinction. Maybe instead of saying avoid EC2 what we should be saying is try to utilize AWS' managed services whenever possible.
- MajimasEyepatch 4y agoYup, that's generally true. Otherwise, you really might not be better off with AWS.
- deleted 4y ago[deleted]
- twawaaay 4y agoYeah, you need to do calculation of what you are doing right now vs AWS. If you already have a mature team that is doing well optimising the environment, you have stable demand and no need to develop things rapidly then it is very likely that going cloud is poor choice. As to "cloud agnostic", don't believe this bullshit. In my opinion most projects fare much better by just letting go of this "cloud agnostic" and just getting tied and locked in to the vendor. It is not like there is a good chance Amazon (or Microsoft or Google for that matter) will suddenly pull a significant price hike or another move out of step with other vendors. Spending effort on trying to make your app "cloud agnostic" usually ends up with far higher development costs and a chance of failure for no benefit. Embracing one vendor in this case is usually best way to achieve smaller, leaner app that is using the platform well. It is the same story as with SQL. Trying to use frameworks to keep your app DBMS-agnostic but then nobody ever migrates their apps to another DBMS. And for various good reasons: you hired your staff for their expertise with X, they are used to it, so now going for Y will usually be far higher cost than the benefits.
- pooper 4y ago> It is the same story as with SQL. Trying to use frameworks to keep your app DBMS-agnostic but then nobody ever migrates their apps to another DBMS. A small nit, I think this is partly because we've been burned before. Same idea as backups, if you don't restore from backups, you don't know if you have good backups. Similarly, if you don't use certain code paths, you can't tell if those code paths are sufficiently bug free. I am thinking of Drupal. Pretty much everyone who uses Drupal uses MySQL/MariaDB as far as I know. I think Drupal supports Postgresql but nobody I know uses it because nobody they know uses Drupal with Postgresql. I don't know anyone who uses drupal with sqlite on production either.
- ozim 4y agoCloud agnostic has its place if you have enterprise contract with cloud provider. If you have 100s of projects cloud agnostic infra is good. If for example Amazon buys your competitor and now you get "new contract coming up". That said I agree "most projects fare much better without" - a lot of people don't understand they are not in position where they would benefit from that.
- shepardrtc 4y agoGoing from Alooma (pre-Google acquire) to DMS saved us thousands. I was shocked when I read that the only thing that DMS cost was running a small EC2 instance. It's a fairly good service - it mostly just runs. AWS has so many offerings like that. They really want to make sure you stick with their ecosystem, and it pays to do so.
- bachmeier 4y ago> which makes it very hard to respond to this It's possible that they are not interested in a response. They are saying what worked for them, whether or not others want to agree.
- datalopers 4y agoEC2 is vastly more cost efficient than using all of those managed services unless you only have tiny on-demand usage scenarios.
- andy_ppp 4y agoAre you including the wages of the extra people to support building and managing such services?
- datalopers 4y agoextra people? no because I hire generalists actually capable of building software, not overpaid kids only capable of gluing aws services together.
- etothepii 4y agoHow much of your developer time gets lost to maintaining servers. I used to think this sort of thing was a valuable use of my time but I now have over $200k in annual revenue and we pay less that $5 a month in raw compute (and that's nearly all S3). My Co-founder is always worried about the cost of our AWS but so far we just haven't witnessed it. My mandate has always been the price should be able to scale to 0. So no EC2, has made building some longer running tasks a bit more complicated, but that's just because we didn't know how to do it before we started.
- datalopers 4y agoMaintaining servers? Nah, you deploy a container and don't think about it. ECS is completely free to use. Anyway, you have a tiny on-demand business, as I caveated above. You could run it just fine on a nano ec2 instance if you needed, which is $2-3/mo.
- moonchrome 4y agoThe more I work with cloud the more I see this 'saves time on infrastructure' being a half-truth at best - we still have overwhelmed DevOps people who, unlike managing on-prem services, have 0 insight or control over what goes on inside AWS. And the services require a decent amount of hand holding, proprietary know how, etc. In the end you replaced sysadmin with DevOps and got up charged multiples.
- onlyrealcuzzo 4y agoThis is likely only true until they have enough lock-in on those cloud products to really turn the screws and extract maximum profits from people that are TOTALLY screwed by being completely locked into proprietary AWS services... This is basically the natural progression of SaaS...
- blackoil 4y agoThis is often mentioned scenario but highly unlikely as impractical it is. First, AWS is already highly profitable, they aren't dumping where this step becomes a necessity. Also, any such move would dry up future growth from adding new customers, which is suicidal.
- hotpotamus 4y agoIs AWS profitable enough though?
- dehrmann 4y agoExisting customers will flee as quickly as they can, and new customers will look elsewhere. In reality, they'll never charge more than their public rate card, and that rate card has to be competitive with the competition.
- pwinnski 4y agoYou think AWS doesn't have enough lock-in now? And yet maximum profits come from keeping customers, not driving them away. There's no such thing as a managed service so proprietary that it can't be essentially cloned by another provider. I remember people making the same claims about S3 long ago, and yet there are multiple providers of S3-compatible file storage services now. Microsoft's Azure provides migration tools for people wanting to leave Amazon's AWS, and they are not alone. Amazon tends to be (in my opinion) a few years ahead of everybody else, and different competitors focus on different areas of competition, but migrating away from AWS isn't really as hard as the "proprietary" label might make it seem.
- 4y ago
- outcoldman 4y agoI would assume they also do not include in the cost of 200k - electricity, maintenance and human resources for managing their infrastrucure.
- dinobones 4y agoAll of those services are poisonous. They are awful to develop against, awful to test against, and often times "just work" until they don't.
- hintymad 4y agoAnd likely a company who does not use cloud resorts to Chef/Puppet/TFE and what not to manage their machines. Such scripting tools may work for a small team as the engineers deal with their specific needs day in and day out, but it is expensive to scale out to larger teams. I'd assume only a few engineers would enjoy writing hundreds if not thousands of lines of yaml or the whatever so-called DSLs offered by the aforementioned tools. Plus, it takes effort to implement autoscaling, metadata management, image-building process like AMI, security groups or something similar, availability zones, and etc.
- boltzmann-brain 4y agoThere's a lot of other businesses that blindly do cloud for no good reason at all. I calculated the forecast of aws vs own infrastructure (aws is what was being used) for an ML company doing major compute backfills. I did that at the height of the GPU price craze and the whole move would have still amortized itself after just 6 months. Why people stick to aws for that sort of stuff is beyond me. If you ever need to spin up VMs on aws rather than on your own metal, you can always do it then. It boggles the mind that people want to throw away millions to get worse performance and higher error rates.
- GoblinSlayer 4y agoI bet Amazon doesn't regret that they sold more than the customer needed. Amazon wants to eat.
- deleted 4y ago[deleted]