Hacker News new | past | comments | ask | show | jobs | submit login

That's true to varying degrees. Sure you're locked in when you use ALB, but it's not too hard to replace that with HAProxy. Same with RDS to Postgres or Fargate to just running an app on your own server.

In general, if you build apps with open source runtimes, use open source dbs, and avoid the proprietary data services cloud providers really stick you to, you can move around pretty easily. And you still reap most of the benefits.

The real problem with the special AWS services is you end up having to hire AWS ops people or expensive consultants to architect around them and run them for you. So it's proprietary AND eating up salaries.




What benefit do you get out of going to a cloud provider instead of a cheap VPS solution or a colo if you’re not using any of their managed services?


They have managed services that are relatively easy to replace and managed services that are entirely proprietary. Many of them map to reasonable OSS tools. ALB/RDS/Fargate and even just ec2 + vpcs are super powerful, and replacing them is a known quantity.

But stuff like SQS and (to a lesser extent) Lambda is really hard to replace because it's thoroughly baked into an application architecture.

As an example, we (fly.io) have a tool that'll hoist a Fargate app into our infrastructure and let you run it all over the world. We even have people tunneling back into their VPCs to access other AWS services. But that only works because we're both somewhat standard, Fargate takes a Docker image and runs it, Fly takes a Docker image and runs it, the app inside doesn't care about either of us.


So now what happens when you need to migrate a massive amount of data while keeping everything online? Let’s say you want to trigger some code to run when a file gets dropped on S3. Are you going to spend Developer time trying to come up with a bespoke solution or are you just going to trigger a lambda on S3? Are you going to host your own highly available queueing and messaging system and have to run them on EC2? Sure it’s “easy” to replace your entire networking infrastructure and run it on another provider, but how many man hours is that going to take?

Have you actually costed out how much a large migration would take?

As far as using Lambda for an API, you can literally add three or four lines of code and use “proxy integration” to deploy your entire Node/Express, Python/Flask/Django, C#/WebAPI app on lambda and without changing any code, deploy it anywhere else as you would any other API.

Here is a Node Express example.

https://github.com/awslabs/aws-serverless-express


Yeah I'm going to do all that because it's helpful to avoid AWS lock in, especially for a SaaS that wants to make any kind of margins. Companies do this all the time, and I don't think (for the most part) the proprietary AWS services add much value.


How many man hours are spent trying to avoid lock in and how much would the cost delta have to be between your current cloud provider and a new provider to make a migration make sense? How many fewer employees could you have if you depended on managed services? How much time could your employees spend on creating features that could help you acquire customers or get your current customers to give you more money?


I feel like you have this a little backwards. Surely AWS has done the work to show the savings from their services vs rolling your own. It's a little silly to just assume proprietary AWS services are an overall cost savings and ask for proof that it's not true.

And, most of what you're talking about doesn't really affect margins for a SaaS. Every AWS service hits margins, one time migration costs and even R&D time to build products does not. The marginal cost of using AWS underneath interesting features is very high.


People cost money. You can buy a lot of services on any of the cloud providers if you can save the fully allocated cost of one employee - say $180K. That’s just looking around in any major city in the US, not west coast salaries.

Every dollar you spend on R&D or migrations you have to consider whether that dollar could be better invested somewhere else and whether it adds business value to have the expertise in house or to outsource it.

Dropbox and Backblaze for instance decided that storage was a core competency. Dropbox moved away from AWS and backblaze knew from day one not to get on it.

On the other hand Netflix went the other way and is now AWS’s largest customer.


All of that == add four lines of code?

Here is the sum total of how much “work” you have to do.

  const awsServerlessExpress = require('aws-serverless-express')
  const app =require('./app')
  const server = awsServerlessExpress.createServer(app)

  exports.handler = (event, context) => {  awsServerlessExpress.proxy(server, event, context) }
How much time do you spend babysitting infrastructure and how much money is it making your company or saving your company? How many of your customers care about your valiant efforts at “avoiding lock in”?


It's not skipping managed services but using the managed services which are relatively interchangeable: e.g. if you use AWS RDS Postgres or MySQL, ALBs, ECS containers, etc. you get the security and ops benefits, along with being able to use tools like Terraform to manage it, but if you ever had to switch you haven't built semantics into your application which aren't provably available elsewhere.

If you build the app around e.g. Lambda and DynamoDB, in contrast, you're going to have a harder time both because you need to restructure the code but also verify that what you switched to doesn't have key differences in how things operate.


Lambdas are pretty easy to move away from in my experience. It's "just a function", and functions can be really easily moved into a shim for another FaaS or even dedicated instance.

Dynamo is tough. At the same time, it's really really good.


The main thing I think you hit with Lambda is if you’re heavily calling other services. The API contract is definitely defined in a manageable fashion.


> What benefit do you get out of going to a cloud provider instead of a cheap VPS solution or a colo if you’re not using any of their managed services?

It's impossible to use a cloud provider without using any of their managed services; if you are using EC2 or a similar IaaS as if it were just a basic VPS, you'd probably be better off (cost for the use) with a basic VPS, but you'd also probably be better off with Amazon LightSail, which more closely approximates a basic VPS service.


> if you are using EC2 or a similar IaaS as if it were just a basic VPS

What more is EC2 than a virtual machine? Sure you have it tied into IAM that's tied into firewalls and whatnot, but that's doesn't make it radically different from a VPS.


You can't not use any of the AWS services. The basics of AWS are VPC, EBS, S3. Unlimited instantly-available managed storage and networking.

A cheap VPS provider or a colo do not give you storage and networking. There is no cheap and no open source solutions to do any of that.




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: