Driving LocalStack with System Initiative

By Paul Stack
10/25/2023

User feedback in System’s Initiative’s GitHub repository requested support for LocalStack. LocalStack is a fully functional local cloud stack allowing you to drive your AWS infrastructure locally. Localstack saves users time and money. Today, we’re happy to announce that the integration is available.

What is LocalStack, and why does it benefit me?

LocalStack emulates a number of the AWS services available and allows you to test out your infrastructure management locally without the need to have an AWS account. This means you can see how System Initiative works as well as being able to start authoring your own System Initiative assets for your own AWS use cases.

How do I get started with System Initiative and LocalStack?

Getting started is easy. You can follow the LocalStack installation guide to get a copy of LocalStack running. Here’s how to do that via a docker container:

$ docker run \
  --name localstack \
  --rm -it \
  -p 4566:4566 \
  -p 4510-4559:4510-4559 \
  localstack/localstack

This will start localStack for you on http://0.0.0.0:4566. You need to get the IP address for the LocalStack instance. You can do this using the docker CLI:

$ docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' localstack

That gives you an IP address of something like 172.17.0.2. You can use LocalStack with the System Initiative Launcher to talk to that Localstack instance. When you start System Initiative (SI) with the launcher, you can provide it with some credentials. You can force the system to configure those credentials using the command:

$ si configure -f

When it prompts you for the AWS Access Key ID and AWS Secret Access Key, you can set a test value, test.

When you launch System Initiative and create some components on the canvas, you can see logs in the LocalStack container as follows:

2023-10-24T13:59:57.212  INFO --- [-functhread6] hypercorn.error            : Running on https://0.0.0.0:4566 (CTRL + C to quit)
2023-10-24T13:59:57.212  INFO --- [-functhread6] hypercorn.error            : Running on https://0.0.0.0:4566 (CTRL + C to quit)
2023-10-24T13:59:57.293  INFO --- [  MainThread] localstack.utils.bootstrap : Execution of "start_runtime_components" took 606.24ms
Ready.
2023-10-24T14:03:53.851  INFO --- [   asgi_gw_0] localstack.request.aws     : AWS ec2.DescribeRegions => 200
2023-10-24T14:07:42.555  INFO --- [   asgi_gw_0] localstack.request.aws     : AWS ec2.DescribeRegions => 200
2023-10-24T14:08:06.007  INFO --- [   asgi_gw_0] localstack.request.aws     : AWS ec2.DescribeRegions => 200
2023-10-24T14:09:29.578  INFO --- [   asgi_gw_0] localstack.request.aws     : AWS ec2.DescribeRegions => 200
2023-10-24T14:12:45.102  INFO --- [   asgi_gw_0] localstack.request.aws     : AWS ec2.DescribeRegions => 200
2023-10-24T14:12:46.602  INFO --- [   asgi_gw_0] localstack.request.aws     : AWS ec2.DescribeRegions => 200
2023-10-24T14:13:10.835  INFO --- [   asgi_gw_0] localstack.request.aws     : AWS ec2.DescribeRegions => 200
2023-10-24T14:13:12.413  INFO --- [   asgi_gw_0] localstack.request.aws     : AWS ec2.DescribeRegions => 200
2023-10-24T14:22:57.309  INFO --- [   asgi_gw_0] localstack.request.aws     : AWS ec2.DescribeRegions => 200
2023-10-24T14:23:14.932  INFO --- [   asgi_gw_0] localstack.request.aws     : AWS ec2.DescribeRegions => 200
2023-10-24T14:42:45.124  INFO --- [   asgi_gw_0] localstack.request.aws     : AWS ec2.DescribeRegions => 200

See It In Action

Summary

In this post, you’ve seen how to create a LocalStack instance and configure a local System Initiative installation to use it. If you have any questions or issues using System Initiative with LocalStack, we invite you to join us on Discord and talk to us there. You can message me there directly at SI_Stack72. We are excited to see all the cool things you do with System Initiative using LocalStack!

Paul Stack, Software Engineer

Paul is an engineer who is passionate about the Continuous Delivery and DevOps movements and how they are critical in helping the business delivery value its customers.

Want to join the second wave of DevOps?

Join us on Discord.