S3、 – Simple Storage Service-は、クラウド上でファイルやフォルダーを保存および取得するための安全でスケーラブルで信頼性の高い方法をITチームに提供するAmazonのストレージサービスです。 S3は、データが必要なときに利用可能であり、需要の増加に応じてスケーラブルであることを確認することで、データを最大限に活用するのに役立ちます。
従来、S3には、AWSアカウントにサインインした後にWebブラウザーからアクセスします。これは、s3cmdと呼ばれる気の利いたツールを使用してコマンドラインで実行することもできます。 s3cmd ユーティリティは、S3サービスにアクセスして管理できるオープンソースのコマンドラインツールです。バケットの作成/削除、ファイルとフォルダーの追加/削除、S3バケットのコンテンツの一覧表示が可能です。
このガイドは、Linuxにs3cmdをインストールし、それを最大限に活用してS3アカウントを管理するのに役立つことを目的としています。
Linuxにs3cmdをインストールする方法
Ubuntu、CentOS、RHELなどの主要なLinuxディストリビューションにs3cmdをインストールするのは、非常に簡単です。これは、s3cmdパッケージがリポジトリで利用できるためです。
さまざまなディストリビューションにs3cmdをインストールする方法を確認しましょう:
Ubuntu/Debianフレーバーの場合
Debian / Ubuntuディストリビューションの場合、次のようにAPTパッケージ管理を使用します。
$ sudo apt install s3cmd
CentOS 8 /RHEL8の場合
CentOS / RHELディストリビューションでは、以下のコマンドを使用してs3cmdをインストールします。
$ sudo dnf install s3cmd
SUSELinuxの場合
SUSE Enterpriseサーバーの場合、リポジトリを追加し、 zypperを使用することから始めます。 図のようなコマンドラインツール。
$ sudo zypper addrepo http://s3tools.org/repo/SLE_11/s3tools.repo
$ zypper install s3cmd
ソースからのインストール
Linuxディストリビューションが上記にリストされていない場合でも、心配しないでください。すべてのディストリビューションで機能するソースからインストールできます。
まず、最新のs3cmdバージョンのzipファイルをダウンロードします。この時点ではs3cmd2.1.0です。
$ wget https://sourceforge.net/projects/s3tools/files/s3cmd/2.1.0/s3cmd-2.1.0.zip
ホームディレクトリに、 s3cmd-2.1.0.zipが表示されます。 zipファイル。
次に、ファイルを解凍します。
$ unzip s3cmd-2.1.0
非圧縮フォルダに移動します
$ cd s3cmd-2.1.0
そして、ソースからインストールするために示されているコマンドを実行します。
$ sudo python3 setup.py install
s3cmd環境のセットアップ
Amazon S3とのやり取りを開始する前に、アカウントへのアクセスキーやシークレットアクセスなどの必要なクレデンシャルを提供して、s3cmdツールを設定する必要があります。したがって、以下のコマンドを実行してs3cmd環境を構成します。
$ s3cmd --configure
以下のスクリーンショットに示すように、アクセスキー、シークレットアクセス、リージョン、および暗号化パスワードを入力します。
セキュリティを強化するために、必ずHTTPSプロトコルを使用してください。
s3バケットを一覧表示する
s3cmdツールの設定に成功し、AmazonS3とのやり取りを開始できるようになりました。 S3とのやり取りを開始する前に、AWSのユーザーがAmazonS3IAMロールで設定されていることを確認してください。
アカウントにある既存のS3バケットを一覧表示するには、次のコマンドを実行します。
$ s3cmd ls
これまでのところ、始めたばかりなので何もありません。
作成しましょう🙂
S3バケットを作成する
新しいS3バケットを作成するには、示されているコマンドを実行します。以下のコマンドは、S3にlinuxwaysと呼ばれるバケットを作成します。
$ s3cmd mb s3://linuxways
AWSアカウントにアクセスして、バケットが次のように作成されていることを確認できます。
ファイルをS3バケットにアップロードする
通常のファイルをバケットにアップロードするには、 putを呼び出します オプションの後にファイルとS3バケットへのパスが続きます。以下のコマンドは、ファイル hello.shをアップロードします S3へ。
$ s3cmd put hello.sh s3://linuxways/
ディレクトリをS3バケットにアップロードする
ディレクトリをアップロードするには、 -rを使用します ディレクトリをその内容と一緒に再帰的に追加するためのフラグ。先頭の/を追加しないように注意してください。これにより、ディレクトリの内容のみが追加され、ディレクトリ自体は追加されません。
ここでは、写真をアップロードしています JPG画像ファイルを含むディレクトリ。
$ s3cmd put -r Pictures s3://linuxways/
S3バケットのコンテンツを一覧表示する
S3バケットに含まれるものを表示または表示するには、コマンドを実行します。
$ s3cmd ls s3://linuxways/
S3バケットからファイルまたはディレクトリを削除します
不要になったファイルを削除または削除する場合は、 delを使用してください 示されているオプション。
$ s3cmd del s3://linuxways/hello.sh
ディレクトリを削除するには、次と同じ構文を使用します。ただし、これはディレクトリが空の場合にのみ機能します。
$ s3cmd del s3://linuxways/Pictures
ディレクトリが空でない場合は、 -rを使用します 示されているように、そのすべてのコンテンツを再帰的に削除するオプション。
$ s3cmd del -r s3://linuxways/Pictures/
S3からバケットを削除します
バケットが不要になった場合は、次のように削除できます。
$ s3cmd rb s3://linuxways
バケットにまだいくつかのファイルとフォルダが含まれている場合は、バケットが空ではないことを通知する以下のエラーが発生します。
解決策は、戻ってバケット内のすべてのファイルとディレクトリを削除し、再試行することです。
まとめ
これは、s3cmdコマンドラインツールの概要と、それを使用してAmazonS3ストレージ機能を管理する方法の概要です。