【AWS】Amazon S3 ~ AWS CLI ~

■ はじめに

EC2からAWS コマンドラインインターフェイス (AWS CLI) により、
Amazon S3にデータ更新、同期を行う

https://dk521123.hatenablog.com/entry/2017/03/06/212734

目次

【1】S3関連のAWS CLI
 1)サンプル
 2)公式サイト
 3)その他のコマンド
【2】ハンズオン
 1)S3 バケットの作成 
 2)IAMを設定する
 3)EC2に最新の AWS CLIをインストールする
 4)AWS CLI でAmazon S3にファイルをアップロード/同期させる
 5)S3内のファイルを一覧表示する
 6)アップロード

【1】S3関連のAWS CLI

# コマンド 説明
1 aws s3 ls (s3://【S3のバケット名】) 一覧表示
2 aws s3 cp <コピー元> <コピー先> (--recursive) コピー(アップロード/ダウンロード) --recursive : ディレクトリまるっとコピー
3 aws s3 sync <同期元> <同期先> 同期

Amazon S3AWS CLI / aws s3 ls ~
https://dk521123.hatenablog.com/entry/2024/10/07/152215
Amazon S3AWS CLI / aws s3 sync ~
https://dk521123.hatenablog.com/entry/2024/06/06/203209

1)サンプル

$ aws s3 ls s3://your-bucket

# アップロード
$ aws s3 cp s3://your-bucket/sample ./  --recursive

# 別の AWS アカウントのS3にアップロード
# https://aws.amazon.com/jp/premiumsupport/knowledge-center/s3-bucket-owner-access/  
$ aws s3 cp s3://your-bucket/sample/hello.txt s3://other-bucket/world.txt --acl bucket-owner-full-control

$ aws s3 sync s3://your-bucket/hello ./hello

2)公式サイト

 * AWS CLIについて、以下の公式サイトを参照のこと。

https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/cli-services-s3-commands.html

3)その他のコマンド

その他のコマンドは以下のサイトを参照のこと 

http://www.task-notes.com/entry/20150904/1441335600

 【2】ハンズオン

 * Hello World的なことを行ってみる

 概要

1)S3 バケットの作成 
2)IAMを設定する
3)EC2に最新の AWS CLIをインストールする
4)AWS CLI でAmazon S3にファイルをアップロード/同期させる

 前提条件

 * EC2(Amazon Linux)が作成されていること(以下の関連記事を参照のこと)

https://dk521123.hatenablog.com/entry/2017/03/06/212734

1)S3 バケットの作成

[1-1] [S3]-[バケット作成]を選択

AWSログイン後に [S3]-[バケット作成]を選択

[1-2] バケット名入力

以下を入力し、「作成」ボタン押下
  + バケット名:任意
 (!!注意!!「グローバルでユニーク」である文字列を入力すること)
  + リージョン:アジアパシフィック(東京)

2)IAMを設定する

AWS Identity and Access Management (IAM) について、以下の関連記事を参照のこと。 

https://dk521123.hatenablog.com/entry/2017/02/26/231046

[2-1] [IAM]-[ユーザー]-[ユーザーを追加]を選択

AWSログイン後に [IAM]-[ユーザー]-[ユーザーを追加]を選択

[2-2] 「次のステップ:アクセス権限」ボタン押下

「ユーザーを追加」で以下を入力すると、「次のステップ:アクセス権限」ボタン押下
 + ユーザー名:任意のユーザー名
 + アクセス種類:「プログラムによるアクセス」にチェック入れる

[2-3] IAMロールの追加

 IAMユーザー名のアクセス権限において、
「ポリシータイプ」に「AmazonS3」を入力しEnterキー押下し、
「AmazonS3FullAccess」にチェックを入れ、
「次のステップ:確認」ボタン押下

[2-4] ユーザ作成実行

「ユーザーの作成」ボタン押下

[2-5] 閉じる

 「表示」リンク押下で
「アクセスキーID」「シークレットアクセスキー」を
コピーしたりして取っておき、「閉じる」ボタン押下(後で使う)

3)EC2に最新の AWS CLIをインストールする

[3-1] 既存のAWS CLIをクリアにする

EC2にTera TarmなどのSSHクライアントでログインアクセスし、
以下のコマンドを入力し、既存のAWS CLIを一旦アンインストール
~~~~
sudo yum remove -y aws-cli
~~~~

[3-2] 最新AWS CLIをインストール

以下のコマンドを入力し、最新のAWS CLIをインストール
~~~~
sudo pip install awscli
~~~~

[3-3] 設定する

 「aws configure」コマンドで入力し、
手順[2-4]で表示された「アクセスキーID」「シークレットアクセスキー」
などを入力する
~~~~
aws configure

AWS Access Key ID [None]: [アクセスキーIDを入力]
AWS Secret Access Key [None]: [シークレットアクセスキーを入力]
Default region name [None]: ap-northeast-1 (東京リージョン)
Default output format [None]: [(何も入力せずに)Enterキー押下]
~~~~

4)AWS CLIAmazon S3にファイルをアップロード/同期を試す

[4-1] 事前準備をする

EC2にTera TarmなどのSSHクライアントでログインアクセスし、
準備として、以下のコマンドを入力
~~~~
# 作業用ディレクトリ「sample」を作成する
mkdir sample

# 作業用ディレクトリ「sample」に移動
cd sample

# S3にアップロードするファイル「hello.txt」を作成する
echo hello >> hello.txt

# hello.txtがあるか確認する
ls
~~~~

5)S3内のファイルを一覧表示する

# S3内のファイルを一覧表示する(はじめは何もないはず)
aws s3 ls s3://【手順[1-2]のS3のバケット名】

6)アップロード

# hello.txtをS3内にコピーする(アップロード)
aws s3 cp ./hello.txt s3://【手順[1-2]のS3のバケット名】

# S3内のファイルを一覧表示する(「hello.txt」が表示されるはず)
aws s3 ls s3://【手順[1-2]のS3のバケット名】

関連記事

Amazon S3 ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2017/03/06/212734
Amazon S3aws s3api ~
https://dk521123.hatenablog.com/entry/2024/05/22/235922
Amazon S3AWS CLI / aws s3 ls ~
https://dk521123.hatenablog.com/entry/2024/10/07/152215
Amazon S3AWS CLI / aws s3 sync ~
https://dk521123.hatenablog.com/entry/2024/06/06/203209
S3権限周りのトラブルシュート
https://dk521123.hatenablog.com/entry/2024/01/04/000000