awsコマンドとは、ターミナルなどを使って、コマンドラインからAWSの機能を利用するためのプログラムです。
今回は、ファイル1つ1つをアップロードするのに手間がかかるため、awsコマンドを利用して作業を簡略化させることにしました。
目次
実現する手順
- macでawsコマンドをインストール
- awsコマンドを利用して、特定のフォルダとs3のバケットを同期
1.macでawsコマンドをインストールする方法
ここでは、macにawsコマンドをインストールする方法を説明します。基本的には、macにはpython3/pip3がインストールされているので、それを使って、次のコマンドでインストールします。
# pip3 install awscli
次に、コマンドを利用してAWSのサービスを利用するためには、awsのアクセス権を設定する必要があります。まず、ブラウザでAWSコンソールへログインして、IAMで適切な権限を持ったアカウントを作成し、そのアクセスキーなど認証情報を取得します。
そして、次のコマンドを実行して、それらのアカウント情報を登録します。
# aws configure AWS Access Key ID [****************xxxx]: xxxxxxxxxx AWS Secret Access Key [****************yyyy]: yyyyyyyy Default region name [ap-northeast-1]: ap-northeast-1 Default output format [json]: json
ここで「xxxxxxxx」、「yyyyyyyy」は取得したアクセスキーとシークレットアクセスキーを設定してください。
設定の確認方法
今回はs3へのバケットの読み込み権限があるかを次のように確認しました。コマンドを実行した時に、バケットの作成日時と名前のリストが表示されれば、インストール成功です。
# aws s3 ls 2018-02-20 21:12:22 sample-bucket 2018-03-20 10:01:03 sample-bucket2
もし、表示されない場合は、アクセスキーが正しく設定されていないか、設定したアカウントにs3のバケットの読み出し権限がついていない可能性があります。
参考サイト
2.awsコマンドを利用して、ローカルフォルダとs3バケットを同期
次にawsコマンドを利用して、ローカルのフォルダとs3バケットを同期する方法を説明します。まず、AWSコンソール画面にログインし、適切な名前のバケットを作成します。ここでは、「sample-bucket」とします。
また、同期するローカルフォルダの場所を「/Users/default/code/sample」とします。そして、s3にフォルダを同期するには、次のコマンドを実行します。
# aws s3 sync /Users/default/code/sample s3://sample-bucket/
ブラウザでコンソール画面に入り、フォルダとファイルが作成されていることが確認できれば、正しく設定ができています。