Localstackの環境構築と基本的なアクセス方法
環境準備
リポジトリのダウンロードと実行 & 環境設定ファイルの作成
事前にawsコマンドのインストールが必要です.
git clone https://github.com/localstack/localstack.git
cd localstack/
# pro版は使用しないので削除しておく
rm docker-compose-pro.yml
docker-compose up -d
aws configure --profile=localstack
AWS Access Key ID [None]: dummy
AWS Secret Access Key [None]: dummy
Default region name [None]: ap-northeast-1
Default output format [None]: json
各種アクセス環境
サービス | サービス名 | エンドポイント |
---|---|---|
API Gateway | apigateway | http://localhost:4567 |
Kinesis | kinesis | http://localhost:4568 |
DynamoDB | dynamodb | http://localhost:4569 |
DynamoDB Streams | dynamodbstreams | http://localhost:4570 |
Elasticsearch | elasticsearch | http://localhost:4571 |
S3 | s3 | http://localhost:4572 |
Firehose | firehose | http://localhost:4573 |
Lambda | lambda | http://localhost:4574 |
SNS | sns | http://localhost:4575 |
SQS | sqs | http://localhost:4576 |
Redshift | redshift | http://localhost:4577 |
ES(Elasticsearch Service) | es | http://localhost:4578 |
SES | ses | http://localhost:4579 |
Route53 | route53 | http://localhost:4580 |
CloudFormation | cloudformation | http://localhost:4581 |
CloudWatch | cloudwatch | http://localhost:4582 |
SSM | ssm | http://localhost:4583 |
SecretsManager | secretsmanager | http://localhost:4584 |
StepFunctions | stepfunctions | http://localhost:4585 |
CloudWatch | logs | http://localhost:4586 |
STS | sts | http://localhost:4592 |
IAM | iam | http://localhost:4593 |
EC2 | ec2 | http://localhost:4597 |
各種環境にアクセス
S3のアクセスとファイルの保存
touch test.txt
aws s3 mb s3://test-bucket --profile=localstack --endpoint-url=http://localhost:4566
aws s3 mv test.txt s3://test-bucket/ --profile=localstack --endpoint-url=http://localhost:4566
aws s3 ls --profile=localstack --endpoint-url=http://localhost:4566
2024-02-02 07:25:19 test-bucket
aws s3 ls s3://test-bucket/ --profile=localstack --endpoint-url=http://localhost:4566
2024-02-02 08:38:31 0 test.txt
Dynamoのテーブル作成と表示
# テーブルの作成
aws dynamodb create-table --table-name test --attribute-definitions AttributeName=id,AttributeType=S AttributeName=name,AttributeType=S --key-schema AttributeName=id,KeyType=HASH AttributeName=name,KeyType=RANGE --billing-mode PAY_PER_REQUEST --profile=localstack --endpoint-url=http://localhost:4566
# テーブルの参照
aws dynamodb describe-table --table-name test --profile=localstack --endpoint-url=http://localhost:4566
# テーブルへのINSERT
aws dynamodb put-item --table-name test --item '{"id": {"S": "1"}, "name": {"S": "user1"}, "title": {"S": "title1"}, "contents": {"S": "contents1"}, "status": {"N": "0"}}' --profile=localstack --endpoint-url=http://localhost:4566
# データの取り出し
aws dynamodb scan --table-name test --profile=localstack --endpoint-url=http://localhost:4566
## テーブル削除
aws dynamodb delete-table --table-name test --profile=localstack --endpoint-url=http://localhost:4566
SQSの実行
キュー作成
aws sqs create-queue --queue-name test-queue --profile=localstack --endpoint-url=http://localhost:4566
キューの確認
aws sqs list-queues --profile=localstack --endpoint-url=http://localhost:4566
指定してキューの確認
aws sqs get-queue-attributes --queue-url http://localhost:4566/000000000000/test-queue --attribute-names All --profile=localstack --endpoint-url=http://localhost:4566
キューの送信
aws sqs send-message --queue-url "http://localhost:4566/000000000000/test-queue" --message-body "hello sqs" --profile=localstack --endpoint-url=http://localhost:4566
件数の確認
aws sqs get-queue-attributes --queue-url 'http://localhost:4566/000000000000/test-queue' --attribute-names ApproximateNumberOfMessages --query 'Attributes.ApproximateNumberOfMessages' --profile=localstack --endpoint-url=http://localhost:4566
キューの消費
aws sqs receive-message --queue-url 'http://localhost:4566/000000000000/test-queue' --profile=localstack --endpoint-url=http://localhost:4566
キューの削除
# メッセージ削除
aws sqs delete-message --queue-url 'http://localhost:4566/000000000000/test-queue' --receipt-handle "Yzk1MTVlMzktNmUwMy00NTY4LTk2MzYtMjNmNzc3YjQ5MTgxIGFybjphd3M6c3FzOmFwLW5vcnRoZWFzdC0xOjAwMDAwMDAwMDAwMDp0ZXN0LXF1ZXVlIGViZTY1OWY4LTM1ODgtNGQ0OC05MjUxLTRlYThmNmJhZjVjYyAxNzA2ODQ5Mjg0LjI4NTQ4MzY=" --profile=localstack --endpoint-url=http://localhost:4566
# メッセージ数確認
aws sqs get-queue-attributes --queue-url 'http://localhost:4566/000000000000/test-queue' --attribute-names ApproximateNumberOfMessages --query 'Attributes.ApproximateNumberOfMessages' --profile=localstack --endpoint-url=http://localhost:4566
まとめ
- LocalstackはDockerでの構築は簡単にできる
- 基本的なサービスはあるのでとりあえず試したいならこちらの方が楽