こんにちは、建山です。

今回ご紹介するのは、Amazonが提供するWebサービスであるAmazonWebService(通称AWS)を使用した、自動定期バックアップの方法を書かせていただきます。

今回の記事は「タグを利用したEC2のバックアップ(AMI取得)と世代管理」のブログ記事を参考にさせていただきました。
 

以下の方はご覧になってください

・AWSのサーバを運用している方

・AWSで自動定期バックアップを行いたい方
 

以下の条件はすでに満たしている事

・AWSにEC2インスタンスを立ち上げている事。

・EC2インスタンスにターミナルでログインできる環境がある事。(LINUXの基礎知識がある事)

・AWSマネジメントコンソールにてEC2インスタンスに対しての操作が出来る事。
 

今回の使用環境

・クライアントOS:WindowsXP

・SSHクライアントソフト:Putty

・サーバOS:AmazonLinux32bit
 

概要図

EC2バックアップ
 

説明

AWSコンソール画面にあるEC2インスタンスに対しての「タグ機能」を利用します。

コンソール画面からバックアップする世代数を設定し(今回は2世代)、その設定値にしたがってバックアップを実行するPHPスクリプトをインスタンス内部で実行します。

その結果、最大2世代分のAMI、EBSスナップショットを保持します。
 

手順

■EC2インスタンスのタグを作成する
 
「Add/EDIT Tags」をクリックします。
タグを作成1
 

Keyに「Backup-Generation」「Name」、Valueに世代数、インスタンスの名前(自由)を設定します。
タグを作成2
 EC2インスタンスにタグが作成されます。
タグを作成3 
 

■PHPスクリプトを配置

EC2インスタンス内にバックアップを実行するPHPスクリプトを配置します。今回は/opt/aws/php/backup/
aws-backup.phpで配置します。aws-backup.phpの部分は自由にお名前をお付け下さい。PHPスクリプトと仕様と内容はこちらををご覧ください。
PHPスクリプト内の“ACCESS KEY”、”SECRET KEY”はご自分のに書き換えてください。
 
(“ACCESS KEY”、”SECRET KEY”は、AWSのホーム画面のセキュリティ証明書から確認できます。)

AWSホーム

  

■PHP用AWS SDKを配置

AWSの機能をPHPスクリプトから使用するため、PHP用AWS SDKをダウンロードし配置します。
ダウンロードしたらsdk-1.5.15 のような名前のフォルダになっていますので、今回はフォルダ名をdefaultに変え、/opt/aws/php/defaultとして配置します。

PHP 用 AWS SDKダウンロードはこちら
 

■PHPファイルを実行しバックアップする。

PHPスクリプトを実行してバックアップしてみます。

/usr/bin/php /opt/aws/php /backup/aws-backup.php

/usr/binについては、PHPがインストールされている環境によって場所が違うかもしれません。
 

■AMI、EBSスナップショットが作成されるのを確認

EC2のAMI、EBSスナップショットが以下のようにバックアップされていることを確認します。

【AMI】
AMIバックアップ

【EBSスナップショット】

EBSスナップショット

 
■定期処理に登録する。

PHPスクリプトを実行するのを定期処理にします。定期処理にはLinuxのcron機能を使用します。 

・ルートユーザ権限でcron情報を設定します。

sudo crontab –e

・指定した時間にPHPスクリプトを実行するように設定します。今回ログファイルも残すようにするため、/opt/aws/php/backup/logフォルダをあらかじめ作成してください。
以下のように設定すると、毎日22:00にバックアップが実行され、logフォルダに年月日時分秒月のファイルが作成されます。
 

0 22 * * * /usr/bin/php /opt/aws/php/backup/aws-backup.php &>  /opt/aws/php/backup/log/aws-backup-`date +\%Y\%m\%d\%H\%M\%S`.log

まとめ

今回のバックアップ処理を導入することで、EC2インスタンスになにかあって使えなくっても、バックアップから戻すことが可能となります。バックアップを残す世代数もAWSコンソール画面から自由に設定できるので、運用も楽になるとおもいます。もし、導入される際は、テストを十分にして自己責任でお願いいたします。

このブログを書いた人

S・T・K
皆さんの喜ぶ情報を投稿していきます。ご期待ください。
この人のすべてのブログを見る