ニュース&ブログ
AWSCLIで運用検討中の人必見!AWSCLIを使用したS3へのファイルコピー
この記事は最終更新から10年以上経過しています。内容が古くなっている可能性があります。
投稿日:2014/12/2

AWSCLIとは
AWS コマンドラインインターフェイス(CLI)は、AWSサービスを管理する統合ツールです。手動で管理していた作業を、コマンドラインからAWSサービスを制御し、スクリプトで自動化することができるツールです。
AWSCLIコマンドラインについてはAWSが提供しているマニュアルを参照して下さい。
http://aws.amazon.com/jp/cli/
AWSCLIコマンドライン リリースノート
https://aws.amazon.com/releasenotes/CLI?browse=1
制御可能なAWSサービスのリストは、各リリースノートの「Supported API Versions」に記載があります。
AWSCLI ユーザガイド
http://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html
AWSCLI ユーザガイド Installing the AWS Command Line Interface
http://docs.aws.amazon.com/cli/latest/userguide/installing.html
AWSCLI ユーザガイド Configuring the AWS Command Line Interface
http://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html
AWSCLI コマンドライン リファレンス
http://docs.aws.amazon.com/cli/latest/reference/
検証で使用する環境と実施する内容
検証で使用する環境を紹介します。AWS上にEC2インスタンスを一つ作成し、S3にファイルをコピーします。EC2インスタンスにはAWSCLIに必要なパッケージをインストールします。作業は検証環境上のクライアント端末から接続します。
図1:検証環境の構成

EC2インスタンスとS3バケットが作成されているものとします。
① Python環境確認
② python-pip インストール
③ AWSCLIインストール
④ AWSCLI設定
⑤ S3へファイルコピー
では検証結果を見ていきます。
① Python環境確認
(1)インストール済みPythonのバージョン確認今回はPipというツールを使用しawscliをインストールします。PipはPythonベースのツールになり、Python 2.6.3以降がPipを使用したawscliのインストール要件となります。
[root@ip-10-0-0-XX ~]# python --version
Python 2.6.6
(2)Pythonインストール
インストール済みの場合、Pythonのアップデートと依存性のあるパッケージのアップデートが実施されます。
「Is this ok [y/N]:」と表示されたら「y」を入力しエンターを押します。
[root@ip-10-0-0-XX ~]# yum install python
Loaded plugins: amazon-id, refresh-packagekit, rhui-lb, security
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package python.x86_64 0:2.6.6-37.el6_4 will be updated
(中略)
Dependencies Resolved
=============================================================================
Package Arch Version Repository Size
=============================================================================
Updating:
python x86_64 2.6.6-52.el6 rhui-REGION-rhel-server-releases 74 k
Updating for dependencies:
openssl x86_64 1.0.1e-30.el6_6.4 rhui-REGION-rhel-server-releases 1.5 M
python-libs x86_64 2.6.6-52.el6 rhui-REGION-rhel-server-releases 5.3 M
Transaction Summary
=============================================================================
Upgrade 3 Package(s)
Total download size: 6.9 M
Is this ok [y/N]: y
Downloading Packages:
(中略)
Updated:
python.x86_64 0:2.6.6-52.el6
Dependency Updated:
openssl.x86_64 0:1.0.1e-30.el6_6.4 python-libs.x86_64 0:2.6.6-52.el6
Complete!
[root@ip-10-0-0-XX ~]#
② Python-Pipインストール
(1)PipインストールPythonアップデート後、Pipをインストールします。
[root@ip-10-0-0-XX ~]# easy_install pip
Searching for pip
Reading http://pypi.python.org/simple/pip/
Best match: pip 1.5.6
Downloading https://pypi.python.org/packages/source/p/pip/pip-1.5.6.tar.gz#md5=01026f87978932060cc86c1dc527903e
Processing pip-1.5.6.tar.gz
Running pip-1.5.6/setup.py -q bdist_egg --dist-dir /tmp/easy_install-vuBjAo/pip-1.5.6/egg-dist-tmp-asn64K
warning: no files found matching 'pip/cacert.pem'
warning: no files found matching '*.html' under directory 'docs'
warning: no previously-included files matching '*.rst' found under directory 'docs/_build'
no previously-included directories found matching 'docs/_build/_sources'
Adding pip 1.5.6 to easy-install.pth file
Installing pip script to /usr/bin
Installing pip2.6 script to /usr/bin
Installing pip2 script to /usr/bin
Installed /usr/lib/python2.6/site-packages/pip-1.5.6-py2.6.egg
Processing dependencies for pip
Finished processing dependencies for pip
[root@ip-10-0-0-XX ~]#
③ AWSCLIインストール
引き続きAWSCLIをインストールします。(1)Pipツールを使用したAWSCLIインストール
[root@ip-10-0-0-XX ~]# pip install awscli
Downloading/unpacking awscli
Downloading awscli-1.5.6.tar.gz (255kB):
Downloading awscli-1.5.6.tar.gz (255kB): 1% 4.1kB
Downloading awscli-1.5.6.tar.gz (255kB): 3% 8.2kB
(中略)
Running setup.py install for awscli
changing mode of build/scripts-2.6/aws from 644 to 755
changing mode of build/scripts-2.6/aws.cmd from 644 to 755
(中略)
Running setup.py install for pyasn1
Successfully installed awscli botocore bcdoc six colorama docutils rsa jmespath python-dateutil ordereddict simplejson pyasn1
Cleaning up...
[root@ip-10-0-0-XX ~]# echo $?
0
[root@ip-10-0-0-XX ~]#
(2)AWSCLI確認
AWSCLIが正しくインストールされたことを確認します。
[root@ip-10-0-0-XX ~]# which aws
/usr/bin/aws
[root@ip-10-0-0-XX ~]# aws --version
aws-cli/1.5.6 Python/2.6.6 Linux/2.6.32-358.14.1.el6.x86_64
④ AWSCLI設定
AWSサービスに接続するためにはクレデンシャル情報を設定する必要があります。AWSCLI設定により、セキュリティクレデンシャル・デフォルトリージョン・出力フォーマットを設定します。
クレデンシャルの確認方法については、以下を参照してください。
RDS for Oracleのバックアップ検討中の人注目! CLIを使用した手動バックアップ
(1)AWSCLI設定
以下のコマンドを実行し、AWSCLI設定を行います。
(AWSCLIを使用するユーザ毎に実施するか、設定ファイルに記載します。)
AWSCLI ユーザガイド Configuring the AWS Command Line Interface
http://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html
設定項目
・AWS Access Key ID [None]: (クレデンシャルを確認し入力)
・AWS Secret Access Key [None]: (クレデンシャルを確認し入力)
・Default region name [None]: ap-northeast-1 (東京リージョン)
・Default output format [None]: text(出力フォーマット:テキスト)
[root@ip-10-0-0-XX ~]# aws configure
AWS Access Key ID [None]: ********************
AWS Secret Access Key [None]: ******************************
Default region name [None]: ap-northeast-1
Default output format [None]: text
[root@ip-10-0-0-XX ~]#
(2)AWSCLIコマンド確認
以下のコマンドを実行し、AWSCLIコマンドが正しく動作することを確認します。
aws ec2 describe-instances:EC2インスタンスの情報取得コマンド
[root@ip-10-0-0-XX ~]# aws ec2 describe-instances
(出力結果省略)
⑤ S3へファイルコピー
それでは、EC2からS3へファイルコピーをしてみます。(1)S3バケットのディレクトリ参照
S3 バケットのディレクトリを確認します。
aws s3 ls s3://<bucket_name>/<directory_name>/
例として、以下のように出力されます。
(下記はディレクトリにファイルがない場合の表示です。)
[root@ip-10-0-0-XX ~]# aws s3 ls s3://mybucket/mydirectory/
2014-10-24 00:02:46 0
(2)S3へファイルコピー
以下のコマンドを実行し、指定ディレクトリの全てのファイルをコピーします。
aws s3 cp <directory>/*.* s3://<bucket_name>/<directory_name>/
例として、以下のように出力されます。
[root@ip-10-0-0-XX ~]# aws s3 cp /test/directory/*.* s3://mybucket/mydirectory/
upload: ./201410221630.txt to s3://mybucket/mydirectory/201410221630.txt
(3)S3バケットのディレクトリ参照
S3 バケットのディレクトリを確認します。
aws s3 ls s3://<bucket_name>/<directory_name>/
例として、以下のように出力されます。
[root@ip-10-0-0-XX ~]# aws s3 ls s3://mybucket/mydirectory/
2014-10-24 00:02:46 0
2014-10-24 00:32:34 139527 201410221630.txt
(以下省略)
AWSコンソールでS3バケットを確認しますと、例として以下のように表示されます。
図2:AWSマネジメントコンソールS3バケット

