[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)