9バケットとデータを管理するための例を含むAWSS3コマンド

公開: 2022-03-15

データの制御と管理は大変な作業になる可能性があります。 これらのAWSS3コマンドは、AWSS3バケットとデータを迅速かつ効率的に管理するのに役立ちます。

AWS S3は、AWSが提供するオブジェクトストレージサービスです。 これは、事実上無限の量のデータを保持できるAWSで最も広く使用されているストレージサービスです。 可用性が高く、耐久性があり、他のいくつかのAWSサービスと簡単に統合できます。

AWS S3は、モバイル/ウェブアプリケーションストレージ、ビッグデータストレージ、機械学習データストレージ、静的ウェブサイトのホスティングなど、あらゆる要件を持つ人々が使用できます。

プロジェクトでS3を使用している場合、膨大なストレージ容量を考えると、これらのバケット内の数百のバケットとテラバイトのデータの管理は困難な作業になる可能性があることをご存知でしょう。 AWSS3バケットとデータを効率的に管理するために使用できる例を含むAWSS3コマンドのリストがあります。

AWSCLIセットアップ

AWS CLIを正常にダウンロードしてインストールしたら、AWSアカウントとサービスにアクセスできるようにAWSクレデンシャルを設定する必要があります。 AWSCLIを構成する方法を簡単に説明します。

最初のステップは、AWSアカウントへのプログラムによるアクセス権を持つユーザーを作成することです。 AWS CLIのユーザーを作成するときは、このチェックボックスをオンにすることを忘れないでください。

権限を与えてユーザーを作成します。 このユーザーを正常に作成した後の最後の画面で、このユーザーのアクセスキーIDとシークレットアクセスキーをコピーします。 これらのクレデンシャルを使用して、AWSCLIを介してログインします。

次に、選択したターミナルに移動して、次のコマンドを実行します。

 aws configure

プロンプトが表示されたら、アクセスキーIDとシークレットアクセスキーを入力します。 選択したAWSリージョンとコマンド出力形式を選択します。 私は個人的にJSON形式を使用することを好みます。 これは大したことではなく、後でいつでもこれらの値を変更できます。

これで、コンソールで任意のAWSCLIコマンドを実行できます。 ここで、AWSS3コマンドを見ていきましょう。

cp

cpコマンドは、S3バケットとの間でデータをコピーするだけです。 ローカルからS3へ、S3からローカルへ、および2つのS3バケット間でファイルをコピーするために使用できます。 コマンドで指定できるパラメーターは他にもたくさんあります。

たとえば、コマンドをテストするための-dryrunパラメーター、S3でデータのストレージクラスを指定するための–storage-classパラメーター、暗号化を設定するための他のパラメーターなどです。 cpコマンドを使用すると、S3でデータセキュリティを構成する方法を完全に制御できます。

使用法

aws s3 cp <SOURCE> <DESTINATION> [--options]

ローカルからS3にデータをコピーします

aws s3 cp file_name.txt s3://bucket_name/file_name_2.txt

S3からローカルにデータをコピーする

aws s3 cp s3://bucket_name/file_name_2.txt file_name.txt

S3バケット間でデータをコピーする

aws s3 cp s3://bucket_name/file_name.txt s3://bucket_name_2/file_name_2.txt

ローカルからS3–IAにデータをコピーします

aws s3 cp file_name.txt s3://bucket_name/file_name_2.txt --storage-class STANDARD_IA

すべてのデータをローカルフォルダからS3にコピーします

aws s3 cp ./local_folder s3://bucket_name --recursive

ls

lsコマンドは、バケットまたはバケットの内容を一覧表示するために使用されます。 したがって、バケットまたはこれらのバケット内のデータに関する情報を表示したいだけの場合は、lsコマンドを使用できます。

使用法:

 aws s3lsNONEまたは<BUCKET_NAME>[--options]

アカウント内のすべてのバケットを一覧表示します

aws s3 ls

出力:
2022-02-02 18:20:14 BUCKET_NAME_1
2022-03-20 13:12:43 BUCKET_NAME_2
2022-03-29 10:52:33 BUCKET_NAME_3

このコマンドは、アカウント内のすべてのバケットをバケット作成日とともに一覧表示します。

バケット内のすべてのトップレベルオブジェクトを一覧表示します

aws s3 ls BUCKET_NAME_1またはs3:// BUCKET_NAME_1 

出力:
                           PRE samplePrefix /
2021-12-09 12:23:20 8754 file_1.png
2021-12-09 12:23:21 1290 file_2.json
2021-12-09 12:23:21 3088 file_3.html

このコマンドは、S3バケット内のすべての最上位オブジェクトを一覧表示します。 ここでは、接頭辞samplePrefix /が付いたオブジェクトは、最上位のオブジェクトのみに表示されていないことに注意してください。

バケット内のすべてのオブジェクトを一覧表示します

aws s3 ls BUCKET_NAME_1またはs3:// BUCKET_NAME_1 --recursive

出力:
2021-12-09 12:23:20 8754 file_1.png
2021-12-09 12:23:21 1290 file_2.json
2021-12-09 12:23:21 3088 file_3.html
2021-12-09 12:23:20 16328 samplePrefix / file_1.txt
2021-12-09 12:23:20 29325 samplePrefix / sampleSubPrefix / file_1.css

このコマンドは、S3バケット内のすべてのオブジェクトを一覧表示します。 ここで、プレフィックスsamplePrefix/とすべてのサブプレフィックスを持つオブジェクトも表示されることに注意してください。

mb

mbコマンドは、単に新しいS3バケットを作成するために使用されます。 これは非常に単純なコマンドですが、新しいバケットを作成するには、新しいバケットの名前がす​​べてのS3バケットで一意である必要があります。

使用法

aws s3 mb <BUCKET_NAME>

特定の地域に新しいバケットを作成する

aws s3 mb myUniqueBucketName --region eu-west-1

mv

mvコマンドは、データをS3バケットとの間で移動するだけです。 cpコマンドと同様に、mvコマンドは、データをローカルからS3に、S3からローカルに、または2つのS3バケット間で移動するために使用されます。

mvコマンドとcpコマンドの唯一の違いは、mvコマンドを使用すると、ファイルがソースから削除されることです。 AWSはこのファイルを宛先に移動します。 コマンドで指定できるオプションはたくさんあります。

使用法

aws s3 mv <SOURCE> <DESTINATION> [--options]

ローカルからS3にデータを移動する

aws s3 mv file_name.txt s3://bucket_name/file_name_2.txt

S3からローカルにデータを移動する

aws s3 mv s3://bucket_name/file_name_2.txt file_name.txt

S3バケット間でデータを移動する

aws s3 mv s3://bucket_name/file_name.txt s3://bucket_name_2/file_name_2.txt

ローカルからS3–IAにデータを移動する

aws s3 mv file_name.txt s3://bucket_name/file_name_2.txt --storage-class STANDARD_IA

S3のプレフィックスからローカルフォルダにすべてのデータを移動します。

 aws s3 mv s3://bucket_name/somePrefix ./localFolder --recursive

事前署名

presignコマンドは、S3バケット内のキーの事前署名されたURLを生成します。 このコマンドを使用して、指定されたS3バケットキー内のファイルにアクセスするために他のユーザーが使用できるURLを生成できます。

使用法

aws s3 presign <OBJECT_KEY> –expires-in <TIME_IN_SECONDS>

バケット内のオブジェクトに対して1時間有効な事前署名されたURLを生成します。

 aws s3 presign s3://bucket_name/samplePrefix/file_name.png --expires-in 3600

出力:
https://s3.ap-south-1.amazonaws.com/bucket_name/samplePrefix/file_name.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIA4MCZT73PAX7ZMVFW%2F20220314%2Fap-south-1% 2Fs3%2Faws4_request&X-Amz-Date = 20220314T054113Z&X-Amz-Expires = 3600&X-Amz-SignedHeaders = host&X-Amz-Signature = f14608bbf3e1f9f8d215eb5b439b87e167b1055bcd7a45c13

rb

rbコマンドは、S3バケットを削除するために使用されます。

使用法

aws rb <BUCKET_NAME>

S3バケットを削除します。

 aws s3 mb myBucketName
#このバケットにデータがある場合、このコマンドは失敗します。

S3バケット内のデータと一緒にS3バケットを削除します。

 aws s3 mb myBucketName --force

rm

rmコマンドは、S3バケット内のオブジェクトを削除するために使用されます。

使用法

aws s3 rm <S3Uri_To_The_File>

S3バケットから1つのファイルを削除します。

 aws s3 rm s3://bucket_name/sample_prefix/file_name_2.txt

S3バケット内の特定のプレフィックスを持つすべてのファイルを削除します。

 aws s3 rm s3://bucket_name/sample_prefix --recursive

S3バケット内のすべてのファイルを削除します。

 aws s3 rm s3://bucket_name--再帰

同期

syncコマンドは、cpコマンドと同じように、ソースから宛先にファイルをコピーして更新します。 cpコマンドとsyncコマンドの違いを理解することが重要です。 cpを使用すると、データが宛先にすでに存在している場合でも、ソースから宛先にデータがコピーされます。

また、ソースからファイルが削除された場合、宛先からファイルは削除されません。 ただし、syncはデータをコピーする前に宛先を確認し、新しいファイルと更新されたファイルのみをコピーします。 syncコマンドは、gitのリモートブランチへの変更のコミットとプッシュに似ています。 syncコマンドには、コマンドをカスタマイズするための多くのオプションがあります。

使用法

aws s3 sync <SOURCE> <DESTINATION> [--options]

ローカルフォルダをS3に同期する

aws s3 sync ./local_folder s3://bucket_name

S3データをローカルフォルダーに同期する

aws s3 sync s3://bucket_name./local_folder

2つのS3バケット間でデータを同期する

aws s3 sync s3://bucket_name s3://bucket_name_2

すべての.txtファイルを除く2つのS3バケット間でデータを移動する

aws s3 sync s3://bucket_name s3://bucket_name_2 --exclude "* .txt

Webサイト

S3バケットを使用して静的Webサイトをホストできます。 websiteコマンドは、バケットのS3静的Webサイトホスティングを設定するために使用されます。

インデックスとエラーファイルを指定すると、S3はファイルを表示できるURLを提供します。

使用法

awss3ウェブサイト<S3_URI>[--options]

例:

S3バケットの静的ホスティングを設定し、インデックスファイルとエラーファイルを指定します

aws s3ウェブサイトs3://bucket_name --index-document index.html --error-document error.html

結論

上記で、バケットを管理するために頻繁に使用されるAWSS3コマンドのいくつかについてのアイデアが得られることを願っています。 詳細については、AWS認定の詳細をご覧ください。