このドキュメントはバージョン 1 の AWS CLI のみを対象としています。AWS CLI のバージョン 2 に関連するドキュメントについては、バージョン 2 用ユーザーガイドを参照してください。
設定ファイルと認証情報ファイルの設定
頻繁に利用される構成設定および認証情報を AWS CLI が維持するファイルに保存することができます。
ファイルは profiles
に分割されます。デフォルトで、AWS CLI は default
という名前のプロファイルにある設定を使用します。替わりの設定を使用するには、追加のプロファイルを作成して参照できます。プロファイルの詳細については、「AWS CLI の名前付きプロファイル」を参照してください。
サポートされた環境変数のいずれかの設定を使用するか、あるいはコマンドラインパラメータを使用して、個別の設定を上書きすることもできます。構成設定の優先順位の詳細については、「構成設定と優先順位」を参照してください。
構成設定はどこに保存されていますか。
AWS CLI は aws
configure
で指定された機密性の高い認証情報を、ホームディレクトリの
という名前のフォルダにある .aws
credentials
という名前のローカルファイルに保存します。aws configure
で指定された機密性の低い設定オプションは、config
という名前のローカルファイルに保存されるだけでなく、ホームディレクトリの
フォルダにも保存されます。.aws
AWS CLI は config
ファイルから認証情報を読み取ることができるので、すべてのプロファイル設定を 1 つのファイルに保持できます。同じ名前を共有するプロファイルの両方のファイルに認証情報がある場合、認証情報ファイルのキーが優先されます。
また、これらのファイルはさまざまな言語ソフトウェア開発キット (SDK) によっても使用されます。AWS CLI に加えて SDK のいずれかを使用する場合は、認証情報を独自のファイルに保存する必要があるかどうかを確認します。
ホームディレクトリの場所はオペレーティングシステムによって異なりますが、環境変数 %UserProfile%
(Windows の場合) および $HOME
またはチルド ~
(Unix ベースのシステムの場合) を使用して参照されます。AWS_CONFIG_FILE
と AWS_SHARED_CREDENTIALS_FILE
の環境変数を別のローカルパスに設定することで、ファイルの場所をデフォルト以外の場所に指定できます。詳細については、「AWS CLI を設定する環境変数」を参照してください。
例えば、aws configure
で設定されたデフォルトプロファイルの AWS CLI によって生成されたファイルは、次のようになります。
~/.aws/credentials
[default] aws_access_key_id=AKIAIOSFODNN7EXAMPLE aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
~/.aws/config
[default] region=us-west-2 output=json
複数の名前付きプロファイルを含むファイルの例については、「AWS CLI の名前付きプロファイル」を参照してください。
AWS Identity and Access Management (IAM) ロールを指定する共有プロファイルを使用する場合、AWS CLI は AWS STS AssumeRole
オペレーションを呼び出して一時的な認証情報を取得します。その後、これらの認証情報は
に保存されます。それ以降の AWS CLI コマンドは、このキャッシュされた一時的な認証情報を有効期限が切れるまで使用します。有効期限が切れると、そこで AWS CLI によって自動的に認証情報が更新されます。~/.aws/cli/cache
構成設定の設定および表示
ファイルの構成設定を表示および設定する方法は複数あります。
Credentials
およびconfig
ファイル-
テキストエディタで
config
ファイルおよびcredentials
ファイルを直接編集して、設定を表示および編集します。詳細については、「構成設定はどこに保存されていますか。」を参照してください。設定を削除するには、
config
ファイルおよびcredentials
ファイルの対応する設定を削除します。 aws configure
-
このコマンドを実行すると、認証情報、リージョン、出力形式をすばやく設定および表示できます。次の例は、サンプル値を示しています。
$
aws configure
AWS Access Key ID [None]:
AWS Secret Access Key [None]:AKIAIOSFODNN7EXAMPLE
Default region name [None]:wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
Default output format [None]:us-west-2
json
詳細については、「aws configure を使用したクイック設定」を参照してください。
aws configure set
-
aws configure set
を使用して、任意の認証情報または構成設定を設定できます。--profile
設定で表示または変更するプロファイルを指定します。例えば、次のコマンドは
region
という名前のプロファイル内のinteg
を設定します。$
aws configure set region
us-west-2
--profileinteg
設定を削除するには、値として空の文字列を使用するか、テキストエディタで
config
ファイルおよびcredentials
ファイルの設定を手動で削除します。$
aws configure set cli_pager "" --profile
integ
aws configure get
-
aws configure get
を使用して設定した認証情報または構成設定を取得できます。--profile
設定で表示または変更するプロファイルを指定します。例えば、次のコマンドは
region
という名前のプロファイル内のinteg
設定を取得します。$
aws configure get
region
--profileinteg
us-west-2
出力が空の場合にはその設定は明示的に構成されず、デフォルトの値が使用されます。
aws configure list
-
すべての設定データを一覧表示するには、
aws configure list
コマンドを使用します。このコマンドは、設定したすべての設定の AWS CLIの 名前、その値、および設定を取得した場所を表示します。$
aws configure list
Name Value Type Location ---- ----- ---- -------- profile <not set> None None access_key ****************ABCD shared-credentials-file secret_key ****************ABCD shared-credentials-file region us-west-2 env AWS_DEFAULT_REGION
サポートされる config
ファイル設定
config
ファイルでは、以下の設定がサポートされます。同名の環境変数があること、または同名のコマンドラインオプションによって上書きされる場合を除き、指定された (またはデフォルトの) プロファイルにリストされる値が使用されます。優先する順序設定の詳細については、「構成設定と優先順位」を参照してください。
[Global settings (グローバル設定)]
api_versions
-
一部の AWS サービスでは、下位互換性をサポートするために複数の API バージョンを維持します。デフォルトで、AWS CLI コマンドは最新の API バージョンを使用します。
config
ファイル内のapi_versions
設定に含むプロファイルに使用する API ファイルを指定することができます。これは、それぞれが使用する AWS サービスと使用する API バージョンを識別する 1 つ以上のインデントされた行に適用される「ネストされた」設定です。どの API バージョンが利用可能を判断するには、各サービスのドキュメントを参照してください。
次の例は、2 つの AWS サービスに API バージョンを指定する方法を示しています。これらの API バージョンは、この設定を含むプロファイルで実行するコマンドにのみ使用されます。
api_versions = ec2 = 2015-03-01 cloudfront = 2015-09-017
この設定には、環境変数やコマンドラインパラメータに相当するものはありません。
-
aws_access_key_id
-
コマンドリクエストを認証するための認証情報の一部として使用する AWS アクセスキーを指定します。これを
config
ファイルに保存することもできますが、credentials
ファイルに保存することが推奨されます。AWS_ACCESS_KEY_ID
環境変数で上書きすることができます。アクセスキー ID をコマンドラインオプションとして指定することはできません。aws_access_key_id =
AKIAIOSFODNN7EXAMPLE
aws_secret_access_key
-
コマンドリクエストを認証するための認証情報の一部として使用する AWS シークレットキーを指定します。これを
config
ファイルに保存することもできますが、credentials
ファイルに保存することが推奨されます。AWS_SECRET_ACCESS_KEY
環境変数で上書きすることができます。シークレットアクセスキーをコマンドラインオプションとして指定することはできません。aws_secret_access_key =
wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
aws_session_token
-
AWS セッショントークンを指定します。セッショントークンは、一時的なセキュリティ認証情報を手動で指定する場合にのみ必要です。これを
config
ファイルに保存することもできますが、credentials
ファイルに保存することが推奨されます。AWS_SESSION_TOKEN
環境変数で上書きすることができます。セッショントークンをコマンドラインオプションとして指定することはできません。aws_session_token =
AQoEXAMPLEH4aoAH0gNCAPyJxz4BlCFFxWNE1OPTgk5TthT+FvwqnKwRcOIfrRh3c/LTo6UDdyJwOOvEVPvLXCrrrUtdnniCEXAMPLE/IvU1dYUg2RVAJBanLiHb4IgRmpRV3zrkuWJOgQs8IZZaIv2BXIa2R4Olgk
ca_bundle
-
SSL 証明書を検証するために使用される CA 証明書バンドル (
.pem
拡張子があるファイル) を指定します。AWS_CA_BUNDLE
環境変数あるいは--ca-bundle
コマンドラインオプションで上書きできます。ca_bundle =
dev/apps/ca-certs/cabundle-2019mar05.pem
cli_follow_urlparam
-
AWS CLI が、
http://
またはhttps://
で始まるコマンドラインパラメータの URL リンクに従おうとするかどうかを指定します。これを有効にすると、取得されたコンテンツは URL の代わりにパラメータ値として使用されます。-
true - これはデフォルト値です。指定すると、
http://
またはhttps://
で始まるすべての文字列パラメータが取得され、ダウンロードされたすべてのコンテンツはコマンドのパラメータ値として使用されます。 -
false – これを指定した場合、AWS CLI は
http://
またはhttps://
で始まるパラメータ文字列値を他の文字列と同じように扱います。
このエントリには同等の環境変数あるいはコマンドラインオプションがありません。
cli_follow_urlparam = false
-
cli_history
-
デフォルトでは無効になっています。この設定により、AWS CLI のコマンド履歴が有効になります。この設定を有効にすると、AWS CLI は
aws
コマンドの履歴を記録します。cli_history = enabled
aws history list
コマンドを使用すると履歴を一覧表示でき、そこから得られた command_id をaws history show
コマンドに使用すると詳細を確認できます。詳細については、AWS CLI リファレンスガイドの「aws history
」を参照してください。 cli_timestamp_format
-
出力に含まれるタイムスタンプの形式を指定します。次の値のいずれかを指定できます。
-
iso8601 – AWS CLI バージョン 2 のデフォルト値。指定すると、AWS CLI は、ISO 8601
に従ってすべてのタイムスタンプを再フォーマットします。 ISO 8601 形式のタイムスタンプは、次の例のようになります。最初の例は、時刻を UTC (協定世界時)
で表し、時刻の後に Z
を含めます。日付と時刻はT
で区切られます。2019-10-31T22:21:41Z
別のタイムゾーンを指定するには、
Z
ではなく、+
または-
を指定し、目的のタイムゾーンが UTC より進んでいるまたは遅れている時間数を 2 桁の値として指定します。次の例では、前の例と同じ時刻を示していますが、UTC から 8 時間遅れている太平洋標準時刻に調整されています。2019-10-31T14:21:41-08
-
wire – AWS CLI バージョン 1 のデフォルト値。指定すると、AWS CLI は、HTTP クエリレスポンスで受信したとおりにすべてのタイムスタンプ値を表示します。
このエントリには同等の環境変数あるいはコマンドラインオプションがありません。
cli_timestamp_format = iso8601
-
credential_process
-
このコマンドに使用する認証情報を生成あるいは取得するために AWS CLI が実行する外部のコマンドを指定します。このコマンドは、特定の形式で認証情報を返す必要があります。この設定を使用する方法の詳細については、「外部プロセスを使用した認証情報の調達」を参照してください。
このエントリには同等の環境変数あるいはコマンドラインオプションがありません。
credential_process =
/opt/bin/awscreds-retriever --username susan
credential_source
-
Amazon EC2 インスタンスまたは EC2 コンテナ内で使用され、
role_arn
パラメータで指定したロールを引き受けるために使用する認証情報を AWS CLI が検索できる場所を指定します。source_profile
とcredential_source
の両方を同じプロファイルで指定することはできません。このパラメータには、次の 3 つの値のいずれかを指定できます。
-
Environment – AWS CLI が環境変数からソース認証情報を取得することを指定します。
-
EC2InstanceMetadata – AWS CLI が EC2 インスタンスプロファイルにアタッチされた IAM ロールを使用してソースの認証情報を取得することを指定します。
-
EcsContainer – AWS CLI が ECS コンテナにアタッチされた IAM ロールをソースの認証情報として使用することを指定します。
credential_source = Ec2InstanceMetadata
-
duration_seconds
-
ロールセッションの最大期間を秒単位で指定します。この値は 900 秒 (15 分) からロールの最大セッション期間設定 (上限は 43200) までの範囲を指定できます。これはオプションのパラメータであり、デフォルトでは 3600 秒に設定されています。
external_id
-
お客様のアカウントでサードパーティーがロールを引き受けるために使用される独自の識別子を指定します。これは
ExternalId
オペレーションのAssumeRole
パラメータにマップします。このパラメータは、ロールの信頼ポリシーでExternalId
の値が指定されている場合にのみ必要です。詳細については、IAM ユーザーガイドの「AWS リソースへのアクセスをサードパーティーに付与するときに外部ゲートウェイを使用する方法」を参照してください。 max_attempts
-
AWS CLI 再試行ハンドラが使用する最大再試行回数を指定します。ここで最初の呼び出しは、指定した
max_attempts
値に対してカウントされます。環境変数
AWS_MAX_ATTEMPTS
を使用して、この値を上書きできます。max_attempts =
3
mfa_serial
-
ロールを引き受けるときに使用する MFA デバイスの ID 番号。これは、引き受けるロールの信頼ポリシーに MFA 認証を必要とする条件が含まれている場合にのみ必須です。値には、ハードウェアデバイスのシリアルナンバー (
GAHT12345678
など) または仮想 MFA デバイス (arn:aws:iam::123456789012:mfa/
など) の Amazon リソースネーム (ARN) のいずれか指定できます。user
output
-
このプロファイルを使用してリクエストするコマンドのデフォルトの出力形式を指定します。次の値のいずれかを指定できます。
AWS_DEFAULT_OUTPUT
環境変数あるいは--output
コマンドラインオプションで上書きできます。output =
table
parameter_validation
-
AWS CLI サービスエンドポイントに送信する前に、AWS クライアントがパラメータの検証を試行するかどうかを指定します。
-
true - これはデフォルト値です。これを指定すると、AWS CLI がコマンドラインパラメータのローカル検証を実行します。
-
false – これを指定すると、AWS CLI は、コマンドラインパラメータを AWS サービスエンドポイントに送信する前に、それらの検証を行いません。
このエントリには同等の環境変数あるいはコマンドラインオプションがありません。
parameter_validation = false
-
region
-
このプロファイルを使用してリクエストされたコマンドへのリクエストを送信するための AWS リージョン リージョンを指定します。
-
Amazon Web Services 全般リファレンスの「AWS リージョンとエンドポイント」に記載されているように、選択したサービスで使用できるリージョンコードを指定できます。
-
aws_global
では、AWS Security Token Service (AWS STS) や Amazon Simple Storage Service (Amazon S3) などのリージョンのエンドポイントに加えて、グローバルエンドポイントをサポートするサービスのグローバルエンドポイントを指定できます。
AWS_DEFAULT_REGION
環境変数または--region
コマンドラインオプションを使用して、この値を上書きできます。region =
us-west-2
-
retry_mode
-
AWS CLI が使用する再試行モードを指定します。再試行モードには、レガシー (デフォルト)、標準、アダプティブの 3 つがあります。再試行の詳細については、「AWS CLI の再試行」を参照してください。
環境変数
AWS_RETRY_MODE
を使用して、この値を上書きできます。retry_mode =
standard
role_arn
-
AWS CLI コマンドの実行に使用する IAM ロールの Amazon リソースネーム (ARN) を指定します。また、以下のいずれかのパラメータを指定して、このロールを引き受けるアクセス権限を持つ認証情報を特定する必要があります。
-
source_profile
-
credential_source
role_arn = arn:aws:iam::
123456789012
:role/role-name
環境変数 AWS_ROLE_ARN により、この設定が上書きされます。
ウェブ ID の使用の詳細については、「ウェブ ID を使用したロールの継承」を参照してください。
-
role_session_name
-
ロールセッションにアタッチする名前を指定します。この値は、
RoleSessionName
が AWS CLI オペレーションを呼び出す場合にAssumeRole
パラメータに提供され、引き受けたロールユーザー ARNarn:aws:sts::
の一部になります。このパラメータはオプションです。この値を指定しない場合、セッション名は自動的に生成されます。この名前は、このセッションに関連付けられたエントリの AWS CloudTrail ログに表示されます。123456789012
:assumed-role/role_name
/role_session_name
role_session_name =
maria_garcia_role
環境変数 AWS_ROLE_SESSION_NAME により、この設定が上書きされます。
ウェブ ID の使用の詳細については、「ウェブ ID を使用したロールの継承」を参照してください。
source_profile
-
AWS CLI パラメータで指定したロールを引き受けるために
role_arn
が使用できる、長期的な認証情報を持つ名前付きプロファイルを指定します。source_profile
とcredential_source
の両方を同じプロファイルで指定することはできません。source_profile =
production-profile
sts_regional_endpoints
-
AWS CLI クライアントが AWS (AWS CLI) と通信するために使用する AWS Security Token Service サービスエンドポイントを AWS STS が判別する方法を指定します。AWS CLI バージョン 1 のデフォルト値は
legacy
です。次の 2 つの値のいずれかを指定できます。
-
legacy
–ap-northeast-1
、ap-south-1
、ap-southeast-1
、ap-southeast-2
、aws-global
、ca-central-1
、eu-central-1
、eu-north-1
、eu-west-1
、eu-west-2
、eu-west-3
、sa-east-1
、us-east-1
、us-east-2
、us-west-1
、およびus-west-2
の各 AWS リージョンリージョンにグローバル STS エンドポイントsts.amazonaws.com
を使用します。他のすべてのリージョンでは、それぞれのリージョンエンドポイントが自動的に使用されます。 -
regional
– AWS CLI は常に、現在設定されているリージョンに AWS STS エンドポイントを使用します。例えば、クライアントがus-west-2
を使用するように設定されている場合、AWS STS へのすべてのコールは、グローバルsts.amazonaws.com
エンドポイントではなく、リージョンエンドポイントsts.us-west-2.amazonaws.com
に対して行われます。この設定が有効なときにグローバルエンドポイントにリクエストを送信するには、リージョンをaws-global
に設定します。
この設定は、
AWS_STS_REGIONAL_ENDPOINTS
環境変数を使用して上書きできます。この値をコマンドラインパラメータとして設定することはできません。 -
web_identity_token_file
-
OAuth 2.0 アクセストークンまたは ID プロバイダーによって提供される OpenID Connect ID トークンを含むファイルへのパスを指定します。AWS CLI はこのファイルの内容をロードし、
WebIdentityToken
引数としてAssumeRoleWithWebIdentity
オペレーションに渡します。環境変数 AWS_WEB_IDENTITY_TOKEN_FILE により、この設定が上書きされます。
ウェブ ID の使用の詳細については、「ウェブ ID を使用したロールの継承」を参照してください。
tcp_keepalive
-
AWS CLI クライアントが TCP キープアライブパケットを使用するかどうかを指定します。
このエントリには同等の環境変数あるいはコマンドラインオプションがありません。
tcp_keepalive = false
S3 カスタマーコマンド設定
Amazon S3 は、AWS CLI がどのように Amazon S3 オペレーションを実行するかを設定する複数の設定をサポートします。一部は、s3api
および s3
名前空間の両方のすべての S3 コマンドに適用されます。それ以外は、一般的なオペレーションを抽象化する S3 の「カスタム」コマンド専用となり、API オペレーションで 1 対 1 のマッピング以上に機能します。aws s3
は cp
、sync
、mv
を転送し、rm
には S3 転送に使用できる追加の設定があります。
これらすべてのオプションは、config
ファイル内のネストされた s3
設定を指定することで構成できます。各設定は、それぞれの行にインデントされます。
これらの設定はすべてオプションです。これらの設定を一切構成せずに、aws s3
転送コマンドを正しく使用できることが必要です。これらの設定は、パフォーマンスを調整したり、上述の aws
s3
コマンドを実行する特定の環境に対応したりできるように用意されています。
次の s3
プロファイルの例に示すように、これらの設定はすべて、config
ファイルの上位レベル development
キーで設定します。
[profile development] s3 = max_concurrent_requests = 20 max_queue_size = 10000 multipart_threshold = 64MB multipart_chunksize = 16MB max_bandwidth = 50MB/s use_accelerate_endpoint = true addressing_style = path
次の設定は、s3
あるいは s3api
名前空間内の任意の S3 コマンドに適用されます。
addressing_style
-
使用するアドレス形式を指定します。バケット名がホスト名にあるか、または URL の一部にあるかを制御します。有効な値は、
path
、virtual
、auto
です。デフォルト値はauto
です。Amazon S3 エンドポイントを構成するには 2 つのスタイルがあります。1 つ目は
virtual
と呼ばれ、ホスト名の一部としてバケット名が含まれています。例:https://
。また、bucketname
.s3.amazonaws.compath
スタイルでは、バケット名を URI 内のパスとして扱います (例:https://s3.amazonaws.com/
)。CLI におけるデフォルト値では、できる範囲ではbucketname
virtual
スタイルを使用し、必要に応じてpath
に戻るauto
を使用します。例えば、バケット名に DNS との互換性がない場合い、このバケット名はホスト名の一部にならず、パス内にする必要があります。auto
を使用すると、CLI はこの条件を検出し、ユーザーに代わって自動的にpath
に切り替えます。アドレス形式をpath
に設定する場合、AWS で設定した AWS CLI リージョンがバケットのリージョンと一致していることを確認する必要があります。 payload_signing_enabled
-
SHA256 が sigv4 ペイロードを署名するかどうかを指定します。デフォルトでは、HTTPS 使用時のストリーミングアップロード (
UploadPart
およびPutObject
) にはこれが無効化されています。デフォルトでは、ContentMD5
があり (デフォルトで生成されます)、エンドポイントが HTTPS を使用する場合にのみ、これはストリーミングアップロード (UploadPart
およびPutObject
) 用にfalse
に設定されます。true に設定すると、S3 は SHA256 チェックサム形式 (自動的に計算されてリクエスト署名に追加) で追加のコンテンツ検証の受信をリクエストします。false に設定すると、チェックサムは計算されません。これを無効にすると、チェックサム計算によって生じるパフォーマンスのオーバーヘッドの減少に役立ちます。
use_dualstack_endpoint
-
s3
およびs3api
のすべてのコマンドに対して、Amazon S3 デュアル IPv4/IPv6 エンドポイントを使用します。デフォルト値は false です。これはuse_accelerate_endpoint
設定と相互に排他的となります。true に設定すると、AWS CLI は、設定されているリージョンのデュアル IPv4 / IPv6 エンドポイントにすべての Amazon S3 リクエストを送信します。
use_accelerate_endpoint
-
s3
およびs3api
のすべてのコマンドに対して Amazon S3 アクセラレートエンドポイントを使用します。デフォルト値は false です。これはuse_dualstack_endpoint
設定と相互に排他的となります。true に設定すると、AWS CLI は、
s3-accelerate.amazonaws.com
のS3 Accelerate
エンドポイントにすべての Amazon S3 リクエストを送信します。このエンドポイントを使用するには、S3 Accelerate
を使用するようにバケットを有効化する必要があります。リクエストはすべて、仮想形式のバケットのアドレス指定 (
) を使用して送信されます。いずれのmy-bucket
.s3-accelerate.amazonaws.comListBuckets
、CreateBucket
、DeleteBucket
リクエストも、S3 高速化エンドポイントには送信されません。高速化エンドポイントでは、これらのオペレーションをサポートしていないためです。また、--endpoint-url
またはhttps://s3-accelerate.amazonaws.com
コマンドのいずれかにhttp://s3-accelerate.amazonaws.com
パラメータがs3
あるいはs3api
に設定されている場合には、この動作を実行できます。
以下の設定は、s3
名前空間コマンドセット内のコマンドのみに適用されます。
max_bandwidth
-
Amazon S3 との間でデータをアップロードおよびダウンロードするために消費できる最大帯域幅を指定します。デフォルトは無制限です。
これにより、S3 コマンドが Amazon S3 との間でデータを転送するために使用できる最大帯域幅が制限されます。この値は、アップロードとダウンロードのみに適用され、コピーや削除には適用されません。この値は 1 秒あたりのバイト数で示されます。この値は次のように指定できます。
-
整数。例えば、
1048576
は 1 秒あたりの 1 メガバイトの最大帯域幅使用を設定します。 -
整数に続くレートサフィックス。
KB/s
、MB/s
、あるいはGB/s
を使用して、レートサフィックスを指定できます。例えば、300KB/s
や10MB/s
などです。
一般的には、まず、
max_concurrent_requests
を低くして、低い帯域幅の消費を試してみることが推奨されます。必要なレートの帯域幅消費を十分に制限できない場合には、max_bandwidth
設定を使用して、さらに帯域幅消費を制限できます。これは、max_concurrent_requests
が現在実行中のスレッド数を制御できるためです。代わりに、まずmax_bandwidth
を低くしながらmax_concurrent_requests
設定を高くすると、スレッドが不必要に待機する結果が生じることがあります。これにより、余分なリソースの消費と接続タイムアウトにつながる可能性があります。 -
max_concurrent_requests
-
同時リクエストの最大数を指定します。デフォルト値は 10 です。
aws s3
転送コマンドはマルチスレッドです。いつでも、複数の Amazon S3 リクエストを実行できます。例えば、コマンドaws s3 cp localdir s3://bucket/ --recursive
を使用して S3 バケットにファイルをアップロードする場合、AWS CLI はlocaldir/file1
、localdir/file2
、localdir/file3
ファイルを並行してアップロードできます。max_concurrent_requests
の設定は、同時に実行できる転送オペレーションの最大数を指定します。この値を変更する必要には、いくつかの理由が考えられます。
-
この値を下げる - 環境によっては、デフォルトの 10 個の同時要求がシステムに過負荷になる場合があります。これによって接続タイムアウトやシステムの応答性の低下が見られる場合があります。この値を小さくすると、S3 転送コマンドのリソース消費が減少します。その代わり、S3 転送の完了により長くかかる可能性があります。帯域幅を制限するツールを使用する場合、この値を低めに抑える必要が生じることがあります。
-
この値を増やす – シナリオによっては、必要なだけのネットワーク帯域幅を使用して、Amazon S3 転送をできるだけ早く完了させることができます。このシナリオでは、利用できるすべてのネットワーク帯域幅を使用するためにデフォルトの同時リクエスト数が十分でないことがあります。この値を大きくすると、Amazon S3 転送が完了する時間を短縮できます。
-
max_queue_size
-
タスクキューのタスクの最大数を指定します。デフォルト値は 1000 です。
AWS CLI は Amazon S3 タスクをキューに入れるモデルを内部で使用し、これらのタスクはその後、
max_concurrent_requests
によって数が制限されているコンシューマーによって実行されます。タスクは通常の場合、単一の Amazon S3 オペレーションをマッピングします。例えば、タスクはPutObjectTask
、GetObjectTask
、またはUploadPartTask
にできます。タスクがキューに追加される率は、コンシューマーがタスクを終了する率よりも早くなることがあります。無限の拡大を回避するには、タスクキューのサイズを指定するサイズに抑えます。この設定は、タスクキューの最大数値を変更します。一般的には、この設定を変更する必要はありません。この設定は、AWS CLI が実行される必要性を認識しているタスクの数にも対応します。つまり、AWS CLI はデフォルトで、その先の 1,000 個のタスクしか認識できないことを意味します。この値を大きくすると、AWS CLI は必要なタスクの合計数をより迅速に把握できることになります (クエリ速度がタスクの完了速度よりも速いと仮定した場合)。その代わり、より大きな max_queue_size はより多くのメモリを必要とします。
multipart_chunksize
-
個別ファイルのマルチパート転送用に AWS CLI が使用するチャンクのサイズを指定します。デフォルト値は 8 MB、最小は 5 MB です。
ファイル転送が
multipart_threshold
を超えると、AWS CLI はファイルをこのサイズのチャンクに分割します。multipart_threshold
と同じ構文をバイト数あるいは整数として使用するか、またはサイズとサフィックスを使用して、この値を指定することができます。 multipart_threshold
-
個別ファイルのマルチパート転送用に AWS CLI が使用するしきい値のサイズを指定します。デフォルト値は 8 MB です。
ファイルのアップロード、ダウンロードやコピーを行うとき、Amazon S3 コマンドは、ファイルがこのサイズを超える場合に、マルチパートオペレーションに切り替わります。この値は、次の 2 つのいずれかに指定します。
-
ファイルサイズ (バイト単位)。例えば、
1048576
です。 -
サイズのサフィックスを使用したファイルサイズ。
KB
、MB
、GB
、あるいはTB
を使用できます。例:10MB
、1GB
。注記 S3 は、マルチパートオペレーションに使用できる有効値に制約を課すことができます。詳細については、 Amazon Simple Storage Service デベロッパーガイドのS3 マルチパートアップロードのドキュメントを参照してください。
-