こんにちは、ITエンジニアのz_a_k_iです!^^
今回はAmazon S3から一括でファイルをダウンロードする方法を記載します。
Amazon S3は、データのバックアップやアーカイブ、ウェブサイトのコンテンツ配信など、多岐にわたる用途で利用されています。しかし、多くのファイルを一度にダウンロードする必要がある場合、マネジメントコンソールだと1ファイルずつしかダウンロードできないため不便です。
今回は、AWS CLIを使用してS3バケットから複数のファイルをダウンロードする方法と、AWS CLIの設定方法、さらにMFAを設定している場合のコマンド実行方法をご紹介します。
AWS CLIとは
AWS CLIは、Amazon Web Services(AWS)のサービスをコマンドラインから操作するためのツールです。
これを使用することで、GUIを介さずに迅速にAWSのリソース管理が可能になります。
S3からファイルをダウンロードするコマンド
S3バケットからファイルをダウンロードする基本的なコマンドは次のとおりです。
aws s3 cp s3://バケット名/ファイルパス ./ローカルディレクトリ --recursive
このコマンドは、指定したバケット内のすべてのファイルを再帰的にダウンロードします。--recursive
オプションを付けることで、サブディレクトリ内のファイルも含めてダウンロードすることができます。
特定のファイルタイプのみをダウンロードしたい場合は、--include
オプションを使用してファイルタイプを指定することができます。例えば、テキストファイルのみをダウンロードするには、次のようにします。
aws s3 cp s3://バケット名/ファイルパス ./ローカルディレクトリ --exclude "*" --include "*.txt" --recursive
AWS CLIの設定方法
AWS CLIを使用する前に、aws configure
コマンドを実行して、アクセスキー、シークレットキー、リージョン、出力形式の設定が必要です。
この設定により、AWSのリソースに安全にアクセスするための認証情報が設定されます。
$ aws configure
AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE
AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
Default region name [None]: us-west-2
Default output format [None]: json
上記のコマンド例の各項目に利用者毎の情報を入力します。AWSのIAMコンソールで作成したIAMユーザーの認証情報から取得できます。
MFAを設定している場合のAWS CLIコマンドの実行方法
認証でMFAを設定している場合、AWS CLIを使用してリソースとやり取りするには、一時セッションを作成する必要があります。
以下は、MFAデバイスを使用して一時セッションを作成するための手順です。
aws sts get-session-token
コマンドを実行して、一時認証情報を取得します。
$ aws sts get-session-token --serial-number arn-of-the-mfa-device --token-code code-from-token
返ってきたJSONの中に含まれるAccessKeyId
, SecretAccessKey
, SessionToken
を使用して、環境変数をセットします。
$ export AWS_ACCESS_KEY_ID=example-access-key-id
$ export AWS_SECRET_ACCESS_KEY=example-secret-access-key
$ export AWS_SESSION_TOKEN=example-session-token
この一時認証情報を使用することで、AWS CLIコマンドを実行してAWSのサービスにアクセスすることができます。
一時認証情報の有効期限はデフォルトで12時間ですが、--duration-seconds
オプションを使用して、有効期間を指定することもできます。
まとめ
AWS CLIは、S3バケットからのファイルダウンロードを簡単かつ効率的に行うための強力なツールです。
また、MFAを設定している場合でも、一時セッションを作成することで安全にAWSリソースを操作できます。
本記事が皆様の参考となりましたら幸いです。
コメント