Why should it be? is Linux easy? Is Windows? AWS (as is GCP and Azure) can basically be thought of as an entire operating system, with extremely low level concepts (VPCs, EC2 machines), mid-level (Lambda, StepFunctions, EventBridge), and high-level (Translate, Comprehend, Rekognition, etc) I am not sure if this library helps. It presents its own opinionated flavour of AWS but doesn't really hide enough of the details…
100% agreed "Piloting a passenger plane should be easy" "Performing brain surgery should be easy" None of that should be easy. AWS is not meant to be focused on ease of use in the first place. It offers brutal power to those who know how to operate it and brutal ways to fuck up if you don’t. The shipping of applications mentioned by the comment in this thread is not a valid statement either.. there are countless serv…
Libaws: A simpler way to declare AWS infrastructure
41–50 of 93 posts
Re: Libaws: A simpler way to declare AWS infrastructure
#42I am convinced that AWS is intentionally obtuse in order to promote job security for engineers and thus be the preferred platform
It really needs some love from a higher level thinker who's not steeped in the solution, but in the problem. Presumably this is a PM but there's just not a lot of good ones in the org to be frank. They're almost not worth consulting.
Re: Libaws: A simpler way to declare AWS infrastructure
#43IMO, this is seeing everything as a nail when you're a hammer. AWS provides extreme flexibility. This really only becomes valuable once you hit a scale that you can optimize your infrastructure around the shape of your needs. * Need some heavy workload to run in the most cost effective data center at the most cost effective time. Yep, AWS is great for that. * Need a specialized GPU set. Yep, AWS is great for that. *…
You get something working in a docker, push to your AWS repo, and App Runner grabs it and goes.
Re: Libaws: A simpler way to declare AWS infrastructure
#44This project seems to be a collection of pre-assembled lego parts, that can eventually be put together in the form of a robot monkey. But I think all of us actually just want the robot monkey, not several clumps of legos. We should have more feature-complete projects that we can push a button and it pops up for you. But that's very different than saying AWS should be easy.
I think we should stop obsessing over "code", and start focusing on robot monkeys. In other words, stop thinking you need more and more and more abstractions around calling AWS APIs, and focus more on publishing a complete working solution for a specific problem.
I don't give a shit about SQS queues and CloudWatch alerts and Lambdas and IAM role policies! I give a shit about a file-upload-website that automatically triggers a python program to process a file and deliver the result into an S3 bucket or Postgres database. That complete thing is the robot monkey. That's what we should be publishing; not a million lines of boilerplate that I still have to spend time and energy cobbling together into a robot monkey. I have built the same robot monkey over and over and over again in 5 different abstractions. I don't care what the abstraction is, I just want the robot monkey!
I think the reason we don't have more robot monkeys is that they're built within companies out of "code", and so we aren't allowed to open-source them, because it's "intellectual property". We need a new abstraction that is not code, and is not considered super secret proprietary information, so we can publish it as open source without thinking.
For example: what if you could point a tool at some part of your AWS account, and it exports a declarative configuration file that is a snapshot of how everything is plumbed together? The tool could strip out any "literals" and anonymize all strings, so that there is nothing proprietary in the end result except a lot of API calls to functions with random names. The end result would essentially be an unlabeled architectural diagram that you could execute. You could then publish that on the Robot Monkey Database with a description of what it does.
Re: Libaws: A simpler way to declare AWS infrastructure
#45I do sympathize with the idea though, as I was recently trying to deploy a container for a small project, and didn't want to deal with all the complexities a fully featured cloud provider has. I found AWS Lightsail, GCP Cloud Run, and later settled on fly.io. It's hard for me to imagine using this tool from the beginning, or even graduating to this tool instead of upgrading to plain AWS and maybe Terraform.
Re: Libaws: A simpler way to declare AWS infrastructure
#46As stated earlier this week, AWS's CF is your opportunity . Seriously, there is a business opportunity here. Make a multi-cloud interface that is easy to use, prevents lock-in, has reasonable defaults ... please?
Re: Libaws: A simpler way to declare AWS infrastructure
#47AWS is a low-level tool, and that's okay.
Re: Libaws: A simpler way to declare AWS infrastructure
#48Earlier quoted context omitted.
Agreed, trial & error with YAML sucks. People hated it so much that Amazon created CDK, a tool that basically generates/executes Cloudformation templates.
Using a proper programming language seems to be the obvious end-game of configuration. Everything as code. Not quite sure why we keep trying and failing to use non-Turing complete configuration languages.
Re: Libaws: A simpler way to declare AWS infrastructure
#49Terraform modules? In particular, https://github.com/terraform-aws-modules/ is a better solution for anyone looking for this IMO. (Yes there is a comparison to 'terraform' in the Readme - I'm not convinced it's considering modules, versus just using the AWS provider directly. Another bonus of using tf modules over this: you can eventually realise you need to graduate to using the AWS provider directly, and do so quit…
The AWS CDK has higher level "constructs"[1] that are really nice to use.
How does that compare to the state of the world for things like Pulumi or Terraform these days?
0: https://github.com/lunasec-io/lunasec/tree/master/lunatrace/...
Any of these files represents the infrastructure. The "bin" folder is the actual entry point.
1: https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_...
We're using this as well as the Fargate SQS worker one to scale up backend job processing. Lambda is a pain and this works quite magically.
Re: Libaws: A simpler way to declare AWS infrastructure
#50Is this IaC "light" for purposes of setting up and tearing down small applications for experiments or demos?
Obviously a lot of effort spent. Of course, once you know AWS well enough to "make it easy", by that time, you've found the need for tooling which supports the harder stuff. And, frankly, someone new to AWS needs a lot of context just to understand the canonical ways to wire stuff together in AWS to even comprehend which pattern will be useful.
For example, S3 events are really backed by SQS under the covers, with implied retries on failure, but no DLQ support, and a lambda that triggers on an arriving S3 event may need to account for "duplicate" events, etc. That's just one wrinkle that even a simplified configuration might require more complex understanding of the underlying AWS ecosystem.