
【保存版】AWS CLIを使って、S3を操作してみよう!
こんにちは、CryptoGamesの高橋です。
クリスペというサービスを行っている会社です。
本日は、CLI(コマンドラインインターフェース)を使って、S3を操作してみましょう。
0 料金の確認を行う
事前に料金を確認した上で進む事を推奨します。
1 AWS CLIをインストールしよう
次の公式を参考に、CLIをインストールしていきましょう。
私の場合はmacなので、ここから実施しました。

※以下は実施した時の参考です。
実際に行うときは、上の公式に沿ってやってみてください。
1)ファイルのダウンロード
curl "https://awscli.amazonaws.com/AWSCLIV2.pkg" -o "AWSCLIV2.pkg"
まずは、ファイルをダウンロードします。

2)installerプログラムの実行
sudo installer -pkg ./AWSCLIV2.pkg -target /
下のように、インストーラーが実行されました。

3)インストール確認
which aws
aws --version
下のようにバージョンの確認までできれば完了です。

2 IAMユーザーを作成する
操作を行うためのIAMユーザーを作成しましょう。

次に任意のユーザー名を入力し、「アクセスキー-プログラムによるアクセス」にチェックを入れて進みます。

「既存のポリシーを直接アタッチ」で下のように行います。
今回はテストで「S3FullAccess」を使っていますが、本番時などには必要な権限だけを設定して下さい。

今回はタグは特につけずに進みます。

ついているアクセス権限を確認して、「ユーザーの作成」

これで、「アクセスキー」と「シークレットアクセスキー」ができました。
大きく書きましたが、非常に重要な情報なので、他の人には見せず、漏洩には十分気をつけて保管してください。

3 ローカルに認証情報を登録する
IAMができたので、aws configureコマンドで、アクセスキーIDなどのcredentialの内容を登録します。
--profile(名前付きプロファイル)を用いることで、複数のプロファイルを登録できます。
aws configure --profile <任意のプロファイル名>
なお、regionは関東の場合はap-northeast-1になると思います。

では、登録できたかを確認してみましょう。
aws configure --profile <任意のプロファイル名>
下の「:」の後にEnterを押していくと、このように設定した内容が出てきます。

ちなみに、この登録した内容は、ホームディレクトリの「.aws」フォルダに格納されています。

機密性の高い情報:「credentials」
機密性の低い情報:「config」
に登録されています。
4 CLIでS3を操作してみよう
では、CLIでS3を操作してみましょう。
4ー1 バケットを作る
バケットを作るときはmake bucketの「mb」を使います。
aws s3 mb s3://<バケット名> --profile <プロファイル名>
下のように、第3章で作ったプロファイルも指定します。

このようにバケットが作られました!

4ー2 バケットリストを取得する
では、下のようにして、バケットリストも抽出しましょう。
aws s3 ls --profile <プロファイル名>
下のように出てきました。
(一つしか作っていないので、一つだけです。)

4ー3 ローカルのデータをS3にアップロードする
では、ローカルのデータをS3にアップロードしてみましょう。
aws s3 cp <コピー元> <コピー先> --profile <プロファイル名>

このようにアップロードがされていました。

4ー4 バケットを空にする
では、バケットを空にしてみましょう。(全部削除)
CLIでは、バージョニングが有効化されていない場合のみ実行ができます。
「バージョニングって何?」という場合は、下記ご参照ください。
では、次のように実行してみましょう。
aws s3 rm s3://<バケット名> --recursive --profile <プロファイル名>
--recursiveというオプションをつけることになります。

無事に空になりました!

4ー5 バケットを削除する
では、最後にバケットを削除しましょう。
aws s3 rb s3://<バケット名> --profile <プロファイル名>
こんな感じです。

このように削除されていました。

なお、このコマンドはバケットが空でないとエラーになります。

5 クリーンアップをしよう
では、最後にクリーンアップを行いましょう。
S3にまだ残っている場合は、不要な場合は削除を行いましょう。
今回使った、IAMも不要なら削除を行いましょう。

内容を確認し、問題なければ「削除」

このように、削除が完了しました。

ホームディレクトリの「.aws」フォルダの「config」、「credeitials」についても、今回作成したprofileの分を十分確認の上、削除しましょう。
特に、それ以外にもprofileを設定している場合は、他のものも消さないように、十分ご注意ください。

今回は以上です。
最後までありがとうございました。
いいなと思ったら応援しよう!
