アプリケーションの復元方法(バックアップとリストア)

Sqale にはコンテナの状態を保存する手段を 2012/10 時点には提供していません。そのため、ある時点のアプリケーションを丸ごとバックアップし、復元するということを行う事ができません。しかし、一度削除したアプリケーションを削除前と DB を同じ状態で復元することは可能です。

バックアップ手順

この節では Sqale が提供している共有 DB のバックアップを保存する方法を紹介します。

MySQL をご利用の場合


mysqldump を用いた DB のダンプデータの作成

任意のコンテナにログイン後、DB の接続情報を用いて mysqldump を実行します。

mysqldump -u [ユーザー名] -h [ホスト名] -p [データベース名] > mysql.dump

例えば、以下のように置き換えて実行します。

mysqldump -u sqale_aba67f5679 -h mysql002.sqale.jp -p sqale_aba67f5679 > mysql.dump

コマンド実行後に DB のパスワードの入力を促されるので、ダッシュボードで表示されるパスワードを入力します。接続情報が正しい場合、mysql.dump にデータベースの内容が出力されます。

外部のサーバーに保存する場合は、以下のようにコマンドを入力して実行してください。

mysqldump -u [ユーザー名] -h [ホスト名] -p [データベース名] --password=[データベースのパスワード] | ssh -p [ポート番号] [外部サーバーのホスト名] 'cat > ~/mysql.dump'

例えば、以下のように置き換えて実行します。

mysqldump -u sqale_aba67f5679 -h mysql002.sqale.jp -p sqale_aba67f5679 --password=12345678901234567890 | ssh -p 2222 hogehoge@ssh000.heteml.jp 'cat > ~/mysql.dump'


s3cmd を用いたダンプデータのバックアップ

Sqale ではコンテナから外部へデータを転送する手段として、s3cmd を提供しています。s3cmd は Amazon Web Service が提供する S3 を CUI から操作可能にするコマンドです。s3cmd を利用するにはまず最初に s3 の API キー情報を設定する必要があります。

下記コマンド実行後にアクセスキー、シークレットキーなどを入力します。

s3cmd --configure

s3cmd の初期設定完了後に以下のコマンドを実行して S3 にダンプデータをアップロードします。

s3cmd mb s3://sqale-backup
s3cmd put mysql.dump s3://sqale-backup/mysql.dump

S3 にアップロード後に、S3の管理画面よりダウンロードURLを発行し、お手元のPC等にダウンロードしてください。

リストア手順

この節では、アプリケーションを作成後、または既存のアプリケーションに、外部で作成した DB のバックアップデータをリストアする方法を紹介します。


wget を用いたダンプデータのダウンロード

コンテナに外部のデータを渡すには、コンテナにログイン後に wget を用いてダウンロードする必要があります。例えば Dropbox の個別リンクや、S3 の制限時間つきダウンロードURLなどを生成し、コンテナから以下のようなコマンドを実行します。

wget "https://s3.amazonaws.com/sqale-backup/mysql.dump?AWSAccess...." -O mysql.dump


mysql を用いたダンプデータのリストア

コンテナの中にダウンロードした mysql.dump ファイルを開いて、以下のデータベース名の情報 2 箇所を利用中の共有 DB 名に変更します。

CREATE DATABASE /*!32312 IF NOT EXISTS*/ `sqale_aba67f5679` /*!40100 DEFAULT CHARACTER SET utf8 */;

USE `sqale_aba67f5679`;

データベース名の修正後に以下のコマンドを実行して共有 DB にダンプデータをリストアします。

mysql -u sqale_aba67f5679 -h mysql002.sqale.jp -p < mysql.dump 

コマンド実行後にパスワードの入力が促されますので、パスワードを入力します。DB 接続情報が正しい場合、ダンプデータの内容が DB へと反映されます。

データリストア後にアプリケーションを再起動します。

/etc/init.d/app restart

以上でデータのリストアは完了です。

SQLite をご利用の場合


s3cmd を用いたデータベースファイルのバックアップ

Sqale ではコンテナから外部へデータを転送する手段として、s3cmd を提供しています。s3cmd は Amazon Web Service が提供する S3 を CUI から操作可能にするコマンドです。s3cmd を利用するにはまず最初に s3 の API キー情報を設定する必要があります。

下記コマンド実行後にアクセスキー、シークレットキーなどを入力します。s3cmd の初期設定完了後に以下のコマンドを実行して S3 にダンプデータをアップロードします。

s3cmd --configure

S3 にアップロード後に、S3の管理画面よりダウンロードURLを発行し、お手元のPC等にダウンロードしてください。

s3cmd mb s3://sqale-backup
s3cmd put production.sqlite3 s3://sqale-backup/production.sqlite3


wget を用いたデータベースファイルのダウンロード

コンテナに外部のデータを渡すには、コンテナにログイン後に wget を用いてダウンロードする必要があります。例えば Dropbox の個別リンクや、S3 の制限時間つきダウンロードURLなどを生成し、コンテナから以下のようなコマンドを実行します。

wget "https://s3.amazonaws.com/sqale-backup/production.sqlite3?AWSAccess...." -O production.sqlite3