[HN Gopher] LocalStack and AWS Parity Explained
___________________________________________________________________
LocalStack and AWS Parity Explained
Author : _harshcasper
Score : 74 points
Date : 2022-08-04 14:43 UTC (8 hours ago)
(HTM) web link (localstack.cloud)
(TXT) w3m dump (localstack.cloud)
| simonw wrote:
| This is really impressive.
|
| I've been running a scraper against the output of the "aws
| --help" CLI commands for a few months, to try and get a better
| feel for how often AWS changes - I call this "help scraping". The
| answer is it changes a LOT - there are updates to their APIs
| every single day.
|
| Here's the commit log of changes I've tracked so far:
| https://github.com/simonw/help-scraper/commits/main/aws
| mdaniel wrote:
| https://awsapichanges.info/ will interest you, as might
|
| * https://github.com/z0ph/MAMIP#readme
|
| * https://github.com/SummitRoute/aws_breaking_changes#readme
|
| I thought there was a backing github repo for
| AwsApiChanges.info but I was unable to readily locate it
| locusofself wrote:
| The scope of this project is very impressive. I don't have a need
| for it myself at this point, but kudos for having even a
| semblance of parity with AWS for local development.
| xwowsersx wrote:
| Does LocalStack allow me to actually mimic my entire
| infrastructure and services on AWS? Say I have a VPC with
| public/private subnets, a NATGW, ECS on EC2, ELBs, etc -- can I
| mimic this infra in its entirety on LocalStack?
| thrauat wrote:
| You can definitely emulate parts of this. For example
| LocalStack can spawn ECS tasks using Docker, or EC2 VMs using
| something like VirtualBox. Load balancers are also emulated, so
| you can test load balancing configurations with IP address or
| Lambda targets. LocalStack is currently not emulating all of
| the VPC network configuration, so although you can make the API
| calls to create VPCs subnet groups and so on, LocalStack
| currently wouldn't enforce these on a network level.
| nobleach wrote:
| I used LocalStack quite a bit at my last gig. It sure is nice to
| be able to use Terraform to spin up the same infra on my laptop,
| and test against that. It reduced the number of developer
| sandboxes we needed to have in AWS. I sure do wish AWS would go
| the GCP route and offer an emulator. I prefer to use that in E2E
| automation that's run in CI/CD pipelines.
| chrsig wrote:
| they provide a local dynamodb implementation...i dream of a day
| when they offer the rest.
| afandian wrote:
| What's the difference between what localstack provides and an
| emulator as you describe? Just support, or do they do different
| things?
| nobleach wrote:
| LocalStack is a third party that has a free and paid version
| of their product. I'm certainly NOT against anyone trying to
| make a living off of their own hard work but, Google provides
| their emulator free of charge. Supposedly this can drive
| greater adoption.
| thrauat wrote:
| GCP emulators cover only a very small portion of their
| services though. AWS also has emulators for some services
| they provide free of charge. LocalStack adds more than just
| emulation though, it has a bunch of developer tools that
| enables local cloud dev much more broadly.
| asdffasdf1234 wrote:
| any chance you can point to a good overview on how to do this?
| im new to terraform and i'm trying to figure out the best way
| to co about local/sandbox testing
| nobleach wrote:
| Really, all the skills of Terraform will apply. LocalStack's
| docs should be able to get you started:
| https://docs.localstack.cloud/integrations/terraform/
| mmastrac wrote:
| LocalStack is cool, but don't forget that you always have an
| alternative to build mock infrastructure in front of your AWS
| deps. Don't call S3 deps directly - implement a higher
| abstraction using only the APIs you actually call and back it
| with your local filesystem (for example).
|
| It's not a _lot_ of work, and making your dev/prod differences
| more explicit can make debugging much easier.
| no_wizard wrote:
| How does LocalStack compare to something like serverless[0],
| which lets you also have locally run abstractions over services?
|
| While I realize the most obvious difference being that serverless
| is also a deploy framework that "abstracts" the cloud, I think
| one of its primary benefits of adoption is that it also does a
| good job (in my experience, but I have not yet impelemented
| things deeply with it) emulates services very well where needed,
| for instance, DynamoDB[1]
|
| If it was without that, I think it would be a lot less useful and
| way less easier to adopt, so I think its just as important to the
| story.
|
| Why on earth AWS doesn't have their own first party emulators for
| everything I still don't understand to this day. I credit that
| for why Firebase & GCP are easier to use, because they have a
| good local development story for alot of their services (Firebase
| in particular has an emulator suite for nearly all their
| services)
|
| [0]: https://www.serverless.com/
|
| [1]: https://www.serverless.com/guides/dynamodb
| NotTameAntelope wrote:
| Localstack is _super_ useful for local (or CI build)
| development of tech that would be deployed into the cloud. I
| would definitely not recommend using Localstack for anything in
| production. I don 't think serverless has anything quite as
| fully featured as what Localstack is able to provide, 1:1
| parity across most of AWS's offerings.
|
| I use it for stuff like SecretsManager and Cognito testing (as
| well as for S3). I _don 't_ use it for RDS emulation at all,
| and just stick a stock postgres container in that spot to
| achieve local development.
| cle wrote:
| > I think one of its primary benefits of adoption is that it
| also does a good job [...] emulates services very well where
| needed, for instance, DynamoDB[1]
|
| Under the hood, serverless uses DynamoDB Local which is the
| same AWS-provided DynamoDB emulator that LocalStack uses.
| whummer wrote:
| Great point. Fully agree that providing a first-class local
| development experience is critical to the overall story of
| application development frameworks.
|
| I guess the main difference is that frameworks like Serverless
| provide a great experience if you fully buy into their way of
| doing things (i.e., implement your application assets in the
| Serverless YAML DSL, etc), whereas LocalStack is a generic
| platform that works on the API emulation level, hence easily
| integrates with most tooling out of the box.
|
| Making the switch from Serverless to, say, AWS CDK, or AWS SAM,
| or Architect framwork may not be as seamless - however, for
| each of these frameworks you can always run the local emulation
| natively on LocalStack. This can help reduce the overall vendor
| lock-in effect that a lot of application development frameworks
| come with.
|
| In fact, LocalStack also provides an integration with
| Serverless [0] - among many other tools [1].
|
| [0] https://github.com/localstack/serverless-localstack
|
| [1] https://docs.localstack.cloud/integrations
| jayair wrote:
| I'm biased but for local development, I prefer to emulate the
| least amount of AWS services. You don't have to deal with any
| gotchas while going to prod.
|
| Some background, with SST we connect your local environment
| to the services deployed to AWS and just run the Lambda
| functions locally: https://docs.sst.dev/live-lambda-
| development
| chops415 wrote:
| SST has been a breath of fresh air. Very excellent devex
| for companies using serverless.
___________________________________________________________________
(page generated 2022-08-04 23:01 UTC)