AWS CLI S3 Syncをカスタマイズする

AWS
Other AWS aws cli

はじめに

このブログをアップデートする際、AWS S3 Syncの処理が遅い。 色々と原因があるけど、下の参考に、AWS CLIの設定を変えると良くなるようなのでメモ。

https://docs.aws.amazon.com/cli/latest/topic/s3-config.html#cli-aws-help-s3-config

設定

cliのprofile defaultは普段用、s3ex_defaultはsyncを速くしたい。

aws credentials

Terminal window
[default]
aws_access_key_id=AKIXXXXXXXXXXXXXXXXX
aws_secret_access_key=YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY
[s3ex_default]
aws_access_key_id=AKIXXXXXXXXXXXXXXXXX
aws_secret_access_key=YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY

aws config

Terminal window
[default]
region=ap-northeast-1
output=json
# https://docs.aws.amazon.com/cli/latest/topic/s3-config.html#cli-aws-help-s3-config
[profile s3ex_default]
region=ap-northeast-1
output=json
s3 =
max_concurrent_requests = 20
max_queue_size = 10000
multipart_threshold = 64MB
multipart_chunksize = 16MB
max_bandwidth = 50MB/s

config値の確認

コマンド

Terminal window
echo "A"
aws configure get default.s3.max_concurrent_requests
echo "B"
aws configure get s3ex_default.s3.max_concurrent_requests
echo "C"
aws configure get default.s3.max_concurrent_requests --profile=default
echo "D"
aws configure get s3ex_default.s3.max_concurrent_requests --profile=default
echo "E"
aws configure get default.s3.max_concurrent_requests --profile=s3ex_default
echo "F"
aws configure get s3ex_default.s3.max_concurrent_requests --profile=s3ex_default
echo "G"
aws configure get s3.max_concurrent_requests --profile=default
echo "H"
aws configure get s3.max_concurrent_requests --profile=s3ex_default

結果

Terminal window
[f_prg@blog.star-flare.com] $ echo "A"
aws configure get default.s3.max_concurrent_requests
echo "B"
aws configure get s3ex_default.s3.max_concurrent_requests
echo "C"
aws configure get default.s3.max_concurrent_requests --profile=default
echo "D"
aws configure get s3ex_default.s3.max_concurrent_requests --profile=default
echo "E"
aws configure get default.s3.max_concurrent_requests --profile=s3ex_default
echo "F"
aws configure get s3ex_default.s3.max_concurrent_requests --profile=s3ex_default
echo "G"
aws configure get s3.max_concurrent_requests --profile=default
echo "H"
aws configure get s3.max_concurrent_requests --profile=s3ex_default
A
B
20
C
D
20
E
F
20
G
H
20

s3ex_defaultを指定した時、s3.max_concurrent_requestsが変わるのが 確認できました。

まとめ

これからアプデしやすくなるでしょう。