Live data from Hacker News

Does anyone else finds AWS and other Amazon services overly complicated?

news.ycombinator.com

141–148 of 148 posts

Re: Does anyone else finds AWS and other Amazon services overly complicated?

#141

Earlier quoted context omitted.

Sorry, how do you propose to transmit a signature over the wire such that if it were compromised, the blast radius is limited to only the called service within the called region within a finite time window?

Is the signature even necessary? As I said, an opaque bearer token is considerably simpler. Generate as many as you need for whatever services you're running to limit the damage of a leak. Set server-side policies for expiration or whatever else.

This would compromise on security (for this scheme, time window will presumably be longer, many more keys that can be compromised) and would create an explosion of keys for the user to manage, effectively offloading that work to your customers. I don't know that it would present a simpler experience to force your customers to have a different key for every service for every region.

Anyway, this is from the perspective of a large service provider. For side projects or smaller services, yeah simple can be good. But it really depends on your security requirements, threat model, customer requirements, etc.

Re: Does anyone else finds AWS and other Amazon services overly complicated?

#142
post #58

Earlier quoted context omitted.

Have you looked at ECS Fargate? That should manage the instances for you transparently. It’s been around for probably five years or so.

I think I'd rather take the 12 hour hit and get it working on EC2 then paying the ongoing convenience fee charged for Fargate.

Unless your time is free, you have to run a ton of containers to break even, especially because Fargate avoids paying for EC2 capacity which can’t fit a container. It’s certainly possible to save money but my experience has been that people save less than expected once they account for ops time.

Re: Does anyone else finds AWS and other Amazon services overly complicated?

#143
post #10

Earlier quoted context omitted.

Are you aware of the AWS CDK? Doing that in Infra as Code shouldn't take two days IMO.

Yes. CDK is just another way of expressing the same things as terraform and cloudfront but using a framework which is opaque. Plus it's slow as fuck, buggy and difficult to debug when it goes wrong. Every attempt keeps trying to solve the same problems with a new abstraction but the problem is the underlying abstraction not the tools.

Hi, I work on (part) of the CDK at the moment. If you've found bugs, we'd love to hear about them with an appropriate reproduction over on github[0].

Thus ends my corp-speak. The following is my opinion alone:

The thing that is hard for a lot of people to understand, it feels like, is that the CDK is both a library (nee runtime) and CI system in one. The runtime produces, at the end of the day, a CloudFormation template that gets shoved into the right places. The CDK happens to make generating those easier.

One of the core issues with working with CloudFormation is that it's limited in what the services support it doing. Services introduced before CloudFormation was really launched have the worst, but it wasn't until 2015 or so that most services really had "OK" support for CFN. CloudFormation is also brittle, and this causes a lot of headaches.

CloudFormation can't handle serial operations that require "create & permute" sequences -- where two things have to be set up in order, then glued together later after some kind of configuration. The way the CDK does this is by deploying lambdas that get invoked after your stack is shipped out that make the relevant API calls. Terraform does this by having the code that Terraform runs make the API call. The difference here gets to be that the CDK can synthesize a change long before it is actually effected, allowing for things like second order permutations. Terraform does everything in-situ, standing up infrastructure and taking the place of both the CDK and CloudFormation.

This has upsides and downsides on both, but a large upside (IMO, again) of the CDK approach is that you can code-wise validate certain things ahead of time before they're deployed, whereas with Terraform it's a little harder. Terraform's big upside is that it handles things that are Hard to do with CloudFormation alone by letting you figure out how to actually create/destroy that bit of infrastructure and hook up the relevant parts as one action in one codebase, rather than having to write Lambda handlers (the CDK calls these handlers "Custom Resource", which are different from Constructs) that get deployed and called when you need to setup/teardown/change the relevant parts.

Both Terraform and the CDK are opaque wrappers around AWS as a whole, the difference being that Terraform wrote their own DSL to describe things that gets then attached to their own SDK (which appears to be JS?) with varying levels of integration, whereas the CDK allows you to use whatever language you're already using to build the primary structure of your application, but where you have fully atomic (not just rollback-able) changes via CloudFormation.

[0]github.com/aws/aws-cdk/issues/new

Re: Does anyone else finds AWS and other Amazon services overly complicated?

#145
post #122

Earlier quoted context omitted.

Have you ever tried to import the AWS SDK into a front end client? It's huge. Last time I tried it, it added multi MB of JS to my SPA, so I could do a relatively "simple" call using it. Yuck. It did not tree shake cleanly with my build system and I eventually ended up just yanking AWS from the stack entirely.

Did you import the entire SDK, or only the SDK for the service you actually needed?

Only way I could figure out was using the core SDK. There was no service-only option that I could find. I just spent 5 minutes looking, just now, to see if another option exists. I got nothing.

So... if it is out there, it's complicated enough I couldn't find my miss-steps then or now.

Re: Does anyone else finds AWS and other Amazon services overly complicated?

#146
post #122

Earlier quoted context omitted.

Did you import the entire SDK, or only the SDK for the service you actually needed?

Only way I could figure out was using the core SDK. There was no service-only option that I could find. I just spent 5 minutes looking, just now, to see if another option exists. I got nothing. So... if it is out there, it's complicated enough I couldn't find my miss-steps then or now.

There are individual packages for clients? https://www.npmjs.com/search?q=%40aws-sdk%2Fclient-

https://www.npmjs.com/package/@aws-sdk/client-secrets-manage... for example

Re: Does anyone else finds AWS and other Amazon services overly complicated?

#147
post #146

Earlier quoted context omitted.

Only way I could figure out was using the core SDK. There was no service-only option that I could find. I just spent 5 minutes looking, just now, to see if another option exists. I got nothing. So... if it is out there, it's complicated enough I couldn't find my miss-steps then or now.

There are individual packages for clients? https://www.npmjs.com/search?q=%40aws-sdk%2Fclient- https://www.npmjs.com/package/@aws-sdk/client-secrets-manage... for example

That's a good bit of info. Excellent, I'll tuck that one away for the future.
Post reply on HN