Help us understand the problem. What is going on with this article?

【Win10】AWS CLIでS3にファイルをアップロード & バックアップ用のバッチファイルを作成する

概要

本書ではWindows10にAWS CLIをインストールし、S3にローカルのファイルをアップロードします。またAWS CLIとS3を利用したバックアップ用のバッチファイルを作成します。

0. 前提条件

  • AWS S3のバケットを作成していること。
  • IAMユーザーを作成し、AWS S3のIAMロールを適用していること。
  • 作成したIAMユーザーのアクセスキーID,シークレットアクセスキーを生成していること。
  • <注意>AWSを不正に利用されないために、アクセスキーIDとシークレットアクセスキーの取り扱いに十分気を付けてください。
  • 本書ではWindows10 Proを使用します。

1. AWS CLIのインストール

  1. https://aws.amazon.com/jp/cli/ に移動し、Windows用のAWS CLIをダウンロードする。
    001.JPG

  2. ダウンロードした「AWSCLI64PY3.msi」を起動する。
    008.JPG

  3. 「Next」をクリックする。
    002.JPG

  4. 「I accept terms in the License Agreement」にチェックを入れ、「Next」をクリックする。
    003.JPG

  5. インストール先を指定し、「Next」をクリックする。
    004.JPG

  6. 「Install」をクリックする。
    005JPG.JPG

  7. インストールが完了するまで待機する。
    006.JPG

  8. 「Completed the AWS Command Line Interface Setup Wizard」と表示されることを確認し、「Finish」をクリックする。
    007.JPG

2. AWS CLIの初期設定

  1. コマンドプロンプトを起動する。

  2. AWS CLIのインストール確認のため、AWS CLIのバージョンを表示する。

    > aws --version
    aws-cli/1.16.292 Python/3.6.0 Windows/10 botocore/1.13.28
    
  3. AWS CLIに作成したIAMユーザーを紐づける。

    > aws configure
    AWS Access Key ID [None]: アクセスキーID
    AWS Secret Access Key [None]: シークレットアクセスキー
    Default region name [None]: リージョン(東京の場合はap-northeast-1)
    Default output format [None]: json
    
  4. AWS CLIにIAMユーザーが紐づいたことを確認する。

    > aws sts get-caller-identity
    {
        "UserId": "xxxxxxxxxxxxxxxxxxxxx",
        "Account": "xxxxxxxxxxxx",
        "Arn": "arn:aws:iam::xxxxxxxxxxxx:user/xxxxxxx"
    }
    

3. S3にローカルのファイルをアップロード

  1. 作成したAWS S3のバケットを表示する。

    > aws s3 ls
    2019-12-01 19:44:02 バケット名
    
  2. ローカルのファイルを作成したバケットにコピーする。

    > aws s3 cp "C:\tmp\test_windows10.txt" s3://バケット名
    


    ※ファイルをバケットに移動する際はaws s3 mv "ローカルのファイル" s3://バケット名を実行する。

  3. バケットにファイルがコピーされたことを確認する。

    > aws s3 ls s3://バケット名
    2019-12-01 20:27:23          8 test_windows10.txt
    

4. バックアップ用のバッチファイルを作成する

作成例

〇バッチファイル

@echo off
rem Declaring the folder to be backed up.
set backup_folder="C:\tmp\

rem Generate the backup date (YYMMDD format) when the batch file was executed.
set datefile=%date%
set datefile=%datefile:/=%

rem Harden the folder to be backed up into a zip file.
powershell Compress-Archive -Path %backup_folder% -DestinationPath D:\backup-%datefile%.zip

rem Upload backup target zip folder to AWS S3 bucket.
aws s3 mv "D:\backup-%datefile%.zip" s3://バケット名/

rem View files in an AWS S3 bucket.
aws s3 ls s3://バケット名

pause

exit 0

〇実行結果

move: D:\backup-20191201.zip to s3://バケット名/backup-20191201.zip
2019-12-01 21:19:35        349 backup-20191201.zip
続行するには何かキーを押してください . . .      

作成例の流れ

本書で作成しましたバックアップ用のバッチファイルの流れを下記に記載します。

  1. 「backup_folder」変数にバックアップ対象のフォルダを指定する。

    set backup_folder="C:\tmp\
    
  2. 「datefile」変数にバックアップ日(YYMMDD形式)を生成する。

    set datefile=%date%
    set datefile=%datefile:/=%
    
  3. バックアップ対象のフォルダをzipファイルに固める。

    powershell Compress-Archive -Path %backup_folder% -DestinationPath D:\backup-%datefile%.zip
    
  4. バックアップ対象のzipファイルをS3バケットに移動する。

    aws s3 mv "D:\backup-%datefile%.zip" s3://バケット名/
    
  5. バケットに保存されているファイルを表示する。

    aws s3 ls s3://バケット名
    
  6. バックアップ結果を確認するため、一時停止する。

    pause
    

最後に

AWS CLIを利用することでAWSマネジメントコンソールを開かずにS3にファイルをアップロードすることができます。またS3を利用したバックアップ用のバッチファイルを作成することで、AWSマネジメントコンソールを経由せずにバックアップ対象のファイルをS3にアップロードすることができます。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away