AWS Localstackを使ってみた

投稿者: | 7月 26, 2022

面白いツールを発見。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コストに結構お金を払っているならこの選択肢もありかと。

カテゴリー: AWS

コメントを残す