macOS、Python 3.10にてLocalStackをセットアップしたメモ。
https://github.com/localstack/localstack
この辺の記載だけだとよくわからなかったため
インストールはこれだけ
pip install localstack
インストールできたら、起動も簡単。
localstack start -d
初回起動はDockerのイメージダウンロードとかが入るから時間がかかるが、しばらく待ってると、ドキュメント通りに起動した。以下のコマンドで動作を確認できる。
localstack status services
また、こちらの記事に書いてあるように、 http://localhost:4566/healthにアクセスすれば、JSONで情報が取得できる。
{"features": {"initScripts": "initialized"}, "services": {"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": "running", "s3control": "available", "secretsmanager": "available", "ses": "available", "sns": "available", "sqs": "available", "ssm": "available", "stepfunctions": "available", "sts": "available", "support": "available", "swf": "available"}, "version": "1.0.2.dev"}
このことから、4566ポートでサービスがアクセス可能なこともわかった。ここまではドキュメントの通り。その後、awslocal
なるコマンドを使えと書いてあるが、localstackのインストールだけではインストールされなかったので、別途インストールが必要だった。
参考: https://github.com/localstack/awscli-local
pip install awscli-local
そうしたら、たとえばS3のバケットは簡単に作れる。
awslocal s3api create-bucket --bucket sample-bucket
awslocal
は、こちらの記事に書いてある方法で、aws
で、--endpoint-url=http://localhost:4566
を指定するのと同じ
aws --endpoint-url=http://localhost:4566 --profile localstack s3api list-buckets