面白いツールを発見。AWSのサービスがローカルで動作するらしい。
必要なもの
- python3
- pip3
- docker
- aws cli
DockerはWindowsでも動くのでほぼほぼプラットフォームの制限はなさそう。
Ubuntu 20.04.4 amd64とMacOS (arm)で動作確認をしてみた。
コマンドライン版のインストール
localstackのインストール
ぱっと試すならコマンドライン版で十分。Proを使うなら、Docker-Compose版のほうがいいかも。
python3 -m pip install localstack
Macならhomebrewでもインストールが可能。dockerや、docker compose、kubernetes + helmでも起動ができるらしい。
https://docs.localstack.cloud/get-started/
localstackの起動
事前にdockerが起動していることを確認してから、以下を実行。
localstack start -d
こんなメッセージが出てくればOK
__ _______ __ __
/ / ____ _________ _/ / ___// /_____ ______/ /__
/ / / __ \/ ___/ __ `/ /\__ \/ __/ __ `/ ___/ //_/
/ /___/ /_/ / /__/ /_/ / /___/ / /_/ /_/ / /__/ ,<
/_____/\____/\___/\__,_/_//____/\__/\__,_/\___/_/|_|
💻 LocalStack CLI 1.0.1
[10:18:54] starting LocalStack in Docker mode 🐳 localstack.py:140
preparing environment bootstrap.py:667
configuring container bootstrap.py:675
starting container bootstrap.py:681
[10:18:55] detaching
実際はdockerが起動している。
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7b255da64940 localstack/localstack "docker-entrypoint.sh" 5 minutes ago Up 5 minutes (healthy) 127.0.0.1:4510-4559->4510-4559/tcp, 127.0.0.1:4566->4566/tcp, 127.0.0.1:4571->4571/tcp, 127.0.0.1:12121->12121/tcp, 5678/tcp localstack_main
docker-compose版のインストール
Local stack proを使う人はこっちがベター
curl -OL https://raw.githubusercontent.com/localstack/localstack/master/docker-compose.yml
docker-compose up -d
Proを使う人はLOCALSTACK_API_KEYにAPIキーを入れる
サービスの確認
localstack status services
┏━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━┓
┃ Service ┃ Status ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━┩
│ acm │ ✔ available │
│ apigateway │ ✔ available │
│ cloudformation │ ✔ available │
│ cloudwatch │ ✔ available │
│ config │ ✔ available │
│ dynamodb │ ✔ available │
│ dynamodbstreams │ ✔ available │
│ ec2 │ ✔ available │
│ es │ ✔ available │
│ events │ ✔ available │
│ firehose │ ✔ available │
│ iam │ ✔ available │
│ kinesis │ ✔ available │
│ kms │ ✔ available │
│ lambda │ ✔ available │
│ logs │ ✔ available │
│ opensearch │ ✔ available │
│ redshift │ ✔ available │
│ resource-groups │ ✔ available │
│ resourcegroupstaggingapi │ ✔ available │
│ route53 │ ✔ available │
│ route53resolver │ ✔ available │
│ s3 │ ✔ available │
│ s3control │ ✔ available │
│ secretsmanager │ ✔ available │
│ ses │ ✔ available │
│ sns │ ✔ available │
│ sqs │ ✔ available │
│ ssm │ ✔ available │
│ stepfunctions │ ✔ available │
│ sts │ ✔ available │
│ support │ ✔ available │
│ swf │ ✔ available │
└──────────────────────────┴─────────────┘
実際に利用できるサービスは以下
https://docs.localstack.cloud/aws/feature-coverage/
いくつかの機能はProがいる。
localstackのコマンドライン向けインストール
pip3 install awscli-local
aws -> awslocalとすることで、profileやendpointを指定しなくてもコマンド実行が可能
例
aws –endpoint-url=http://localhost:4566 –profile localstack s3api create-bucket –bucket test-bucket
awslocal s3api create-bucket –bucket test-bucket
AWSコストに結構お金を払っているならこの選択肢もありかと。