スポンサーリンク

AWS S3をコンテンツのバックアップとして活用するための云々

AWS S3に指定ディレクトリのバックアップをアップロードするために必要な作業のメモです。

AWSコンソール外からS3にアクセスできるユーザーの作成

AWS管理画面にログインし以下のような手順でユーザーを作成。

awscli1
Identity & Access Management(以下IAM)をクリック

awscli2
新規ユーザーの作成ボタンをクリック

awscli3
任意のユーザー名を入力して作成ボタンをクリック。今回はS3へのアクセスのみ許可するユーザーを作成するため「s3user」と入力。AWS上で表示される名前なので用途がわかる程度でOK。

awscli4
認証情報のダウンロードボタンをクリックするとCSV形式のファイルがダウンロードできます。

awscli5
IAMの管理画面トップからユーザータブをクリックし、先ほど作成したユーザーの詳細画面を開きます。詳細画面のアクセス許可タブをクリックし、ポリシーのアタッチボタンをクリック。

awscli6
条件入力欄にS3と入力するなどして、AmazonS3FullAccessにチェックを入れ、ポリシーのアタッチボタンをクリック。アッタチ?(´・ー・`)?

AWSコマンドラインインターフェイスをインストール

コマンドラインからawsにアクセスできるようにAWSコマンドラインインターフェイス(以下awscli)をインストール。

# curl "https://bootstrap.pypa.io/get-pip.py" -o "get-pip.py"
# python get-pip.py
# pip install awscli

awscliのインストールにはpipというのが必要なので、そちらを先にインストール。

# aws --version
aws-cli/1.10.31 Python/2.6.6 Linux/2.6.32-504.1.3.el6.x86_64 botocore/1.4.21

インストールされてるかの確認

# aws configure --profile s3backup
AWS Access Key ID [None]: (AWS管理画面でダウンロードした認証情報のAccess Key Id列の値を入力)
AWS Secret Access Key [None]: (AWS管理画面でダウンロードした認証情報のSecret Access Key列の値を入力)
Default region name [None]: ap-northeast-1
Default output format [None]: json

aws configureコマンドで先ほどAWS管理画面で作成したユーザーのアクセス情報を設定。
profileオプションを付けない場合はデフォルトユーザーで作成されます。今回は後のバックアップシェルの過程でプロファイル名を指定するため「s3backup」と設定しています。

コンテンツバックアップシェルの作成

コンテンツのバックアップを取得し、S3にアップロードするスクリプトを作成します。

#!/bin/sh

# バックアップファイル名
BACKUP_FILENAME=`date "+%Y%m%d"`_filebackup.tar.gz

# tmpディレクトリにバックアップを作成
tar -czf /tmp/${BACKUP_FILENAME} -C /var test

# S3にアップロード
aws --profile s3backup s3 cp /tmp/${BACKUP_FILENAME} s3://tests3bucket >/dev/null 2>&1

# tmpディレクトリのバックアップを削除
rm -f /tmp/${BACKUP_FILENAME}

上記シェルを実行すると/varディレクトリに存在するtestディレクトリのバックアップが作成され、tests3bucketという名前のS3バケットにアップロードされます。
最後に上記シェルをcronに登録することで毎日指定時間にs3にバックアップがアップロードされるようになります。

タイトルとURLをコピーしました