■ はじめに
* 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にファイルをアップロード/同期させる 【3】あれこれ 例1:aws s3コマンドでAmazon S3を操作する 例2:同期を試す
【1】S3関連のAWS CLI
# | コマンド | 説明 |
---|---|---|
1 | aws s3 ls (s3://【S3のバケット名】) | 一覧表示 |
2 | aws s3 cp <コピー元> <コピー先> (--recursive) | コピー(アップロード/ダウンロード) --recursive : ディレクトリまるっとコピー |
3 | aws s3 sync <同期元> <同期先> | 同期 |
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://aws.amazon.com/jp/cli/
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をインストールする
EC2にTera TarmなどのSSHクライアントでログインアクセスし、 以下のコマンドを入力し、既存のAWS CLIを一旦アンインストール ~~~~ sudo yum remove -y 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 CLI でAmazon S3にファイルをアップロード/同期を試す
[4-1] 事前準備をする
EC2にTera TarmなどのSSHクライアントでログインアクセスし、 準備として、以下のコマンドを入力 ~~~~ # 作業用ディレクトリ「sample」を作成する mkdir sample # 作業用ディレクトリ「sample」に移動 cd sample # S3にアップロードするファイル「hello.txt」を作成する echo hello >> hello.txt # hello.txtがあるか確認する ls ~~~~
【3】あれこれ
例1:aws s3コマンドでAmazon S3を操作する
S3内のファイルを一覧表示する
# S3内のファイルを一覧表示する(はじめは何もないはず) aws s3 ls s3://【手順[1-2]のS3のバケット名】
アップロード
# hello.txtをS3内にコピーする(アップロード) aws s3 cp ./hello.txt s3://【手順[1-2]のS3のバケット名】 # S3内のファイルを一覧表示する(「hello.txt」が表示されるはず) aws s3 ls s3://【手順[1-2]のS3のバケット名】
例2:同期を試す
事前準備
# helloworld.txt、helloaws.txtを追記 echo HelloWorld > helloworld.txt echo HelloAWS > helloaws.txt # hello.txtに「World」を追記 echo World >> hello.txt # hello.txtの内容を表示する less hello.txt ------ hello World ------
同期する
# 同期する(同期後、S3内の「hello.txt」を確認してみると「hello<改行>World」) aws s3 sync ./ s3://【手順[1-2]のS3のバケット名】 # hello.txtを削除する rm ./hello.txt # 同期する aws s3 sync --delete ./ s3://【手順[1-2]のS3のバケット名】 # S3内のファイルを一覧表示する(何もないはず) aws s3 ls s3://【手順[1-2]のS3のバケット名】 ~~~~
関連記事
Amazon S3 ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2017/03/06/212734