AWSをローカル環境で動かせるモック/テスト用フレームワークとして、LoalStackがあります。
Lambda, S3, DynamoDB, API Gatewayなど使えるサービスが豊富にあり、便利なので使い方をご紹介します。
Localstackのインストール
$ python -m venv venv
$ source venv/bin/activate
$ pip install localstack
$ TMPDIR=/private$TMPDIR localstack start --docker
$ source venv/bin/activate
$ git clone https://github.com/localstack/localstack.git
$ cd localstack
$ TMPDIR=/private$TMPDIR docker-compose up
※MacOSをお使いの場合は、起動時にTMPDIR=/private$TMPDIRをつける必要があります。
LocalstackでS3を試してみる
$ pip install awscli
$ aws configure
AWS Access Key ID [None]: access-key-id
AWS Secret Access Key [None]: secret-access-key
Default region name [None]: ap-northeast-1
Default output format [None]: json
# S3にBucketを作成
$ aws --endpoint-url=http://172.17.0.2:4572 s3 mb s3://localstack-bucket
# ファイルをアップロード
$ echo 'S3 data on Localstack' > file.txt
$ aws --endpoint-url=http://172.17.0.2:4572 s3 cp file.txt s3://localstack-bucket
# S3上のデータを確認
$ aws --endpoint-url=http://172.17.0.2:4572 s3 ls localstack-bucket
# S3上のファイルをダウンロード
$ aws --endpoint-url=http://172.17.0.2:4572 s3 cp s3://localstack-bucket/file.txt download.txt
$ cat download.txt
ダッシュボードを見る
ダッシュボード (http://localhost:8080)
作成したS3情報を見ることができます。
ありがとうございました。