AWS S3のローカル開発環境を擬似的に用意できる「Minio」を使用してDockerで環境構築をします。
「Minio」を使用するとS3ライクなストレージが扱えます。
コンテナ作成
以下のdocker-compose.ymlを作り、コンテナを作成します。
version: '3'
services:
minio:
image: minio/minio:latest
ports:
- 19000:9000
environment:
MINIO_ACCESS_KEY: MINIO_ACCESS_KEY
MINIO_SECRET_KEY: MINIO_SECRET_KEY
command: server /export
dokcer-compose up -dで起動
docker-compose up -d
Minio用のアクセス情報を追加
AWSのアクセスキーとシークレットキー同様に、Minio用のものを設定します。
aws configure --profile minio
...
--profile minioのminioは任意の名前でOKです。(awsのプロファイル選択に使用するIDのようなもの)
AWS Access Key IDとAWS Secret Access Keyはdocker-compose.yml内で指定した値にしてください。
S3コマンドの実行
これで環境の準備は整ったのでS3のコマンドを実行します。
- バケット作成
aws --endpoint-url http://127.0.0.1:19000 --profile minio s3 mb s3://first_bucket
- オブジェクトのコピー
aws --endpoint-url http://127.0.0.1:19000 --profile minio s3 cp ./example.txt s3://first_bucket
- オブジェクトの確認
aws --endpoint-url http://127.0.0.1:19000 --profile minio s3 ls s3://first_bucket
--endpoint:http://127.0.0.1:19000(ymlで指定したポート番号) --profile:上記aws configure --profileで指定した任意の名前
ブラウザで確認
最後にブラウザで確認してみます。
http://127.0.0.1:19000
上記にアクセスすると、Minioの管理画面が起動します。 IDとパスワードはymlにて指定したものを入力すればOKです。うまくいっていればバケットとアップロードしたオブジェクトが表示されます!!