Azure TIPS
Azure Webサイトをバックアップするには?
Azure Webサイトでは、Webサイトとデータベースをバックアップ/復元するための機能が提供されている。その機能の基本的な使い方を解説する。
Webアプリケーションは、まず、落ちないことが求められる。これは、スケールアウトなどの冗長化設計でカバーするが、同時に有事の際にいかに早く復旧できるかも重要であり、バックアップを取ることは復旧を容易にしてくれる。
Microsoft Azure Web Sites(以下、単に「Webサイト」)にはバックアップ機能が提供されており、Webアプリケーションのファイルおよびデータベースのデータのバックアップが取れる。
バックアップ
今回、バックアップの対象とするサンプルWebサイトでは、図1のようなCRUDアプリケーションが動作している。この段階では、2つのアイテムが登録されている。登録データは、アプリケーションに接続されたデータベースに保存されている。このアプリケーションとSQLデータベースのデータをWebサイトでバックアップする。
バックアップを取るためには、Webサイトのホスティングプランを標準に変更する必要があるため、初めに、[スケール]タブからホスティングプランを変更する(※標準は有料プランで課金対象)。
次に、Webサイトの[バックアップ]タブを開き、ストレージアカウントとバックアップに含めるデータベースを選択し、設定を保存する。バックアップは、設定したストレージアカウントにBLOBとして保存される。
- 1[バックアップ]タブを開く。
- 2任意のストレージアカウントを選択する。
- 3バックアップに含めるデータベースを選択する。[構成]タブの[接続文字列]に登録されているもののみ選択できる。
- 4[保存]ボタンをクリックし、設定を保存する。
最後に、[今すぐバックアップ]ボタンをクリックし、バックアップ処理を開始する。
バックアップ処理は完了するまでに、ある程度の時間を要する。バックアップ完了が通知されることはないが、完了すると図4のように、BLOBストレージの[websitebackups]コンテナーにバックアップファイルが保存されていることを確認できる*1。
- *1 新ポータルサイトでも完了通知は来ないが、バックアップの時刻とファイルサイズがグラフで表示されるため、完了自体を視認することはできる。
バックアップファイルをダウンロードし、ZIPファイルを展開すると、図5のようなバックアップを確認できる。
fsフォルダーには、Webサイトインスタンス内のファイルがコピーされている。.bacpacファイルはSQL Serverで利用されるバックアップパッケージである。このバックアップパッケージにSQLデータベースのデータが保存されている。
また、Webサイトのバックアップでは、自動バックアップのスケジュールを設定できる。これは指定した日数間隔でバックアップを行う。ただし、1日や2日の頻度で設定すると、図6のように、「頻繁にバックアップを行うと、データベースのコストが最大で 100 パーセントずつ増加する可能性があります。」(※トランザクション一貫性を確保するため、いったんデータベースをコピーした上で、そのコピーデータベースから.bacpacファイルを生成するという流れでバックアップ処理が実施される。そのコピーデータベース分の費用が加算されることになるので、毎日バックアップすると費用が最大で2倍になる可能性がある)との警告が出る通り、データベースを同時にバックアップする場合には注意する必要がある。
- 1[自動化されたバックアップ]を[オン]に変更する。
- 2[FREQUENCY]を任意の間隔(日)に変更する。
- 3[開始日]を任意の時刻に変更する。
- 4[保存]ボタンをクリックし、設定を保存する。
復元
復元状況が分かりやすくなるように、復元を行う前に、今回のWebアプリケーションの一部を変更しておこう。具体的には図7のように、3つ目のアイテムを追加し、スタイルを変更した。
ここから復元を開始する。
復元を行うには[バックアップ]タブを開いたページの下部のバーから[今すぐ復元]ボタンをクリックする(図8)。
これによりウィザード形式のダイアログが表示され、今までに取ったバックアップがリスト表示されるので(図9)、復元したい時刻のものを選択する。
ここでは、説明は割愛するが、[ストレージ アカウント ファイル]にチェックすることで、BLOBストレージから任意のバックアップファイルを選択し、他のWebサイトのバックアップファイルなどから復元することも可能である。
- 1[この WEB サイトの前のバックアップ]をチェックする。
- 2復元したい時刻のバックアップを選択する
- 3[→]ボタンをクリックし、次へ進む。
次に、復元先を指定する(図10)。
現在稼働中のWebサイトへ復元することも可能であるが、復元中はWebサイトが一時的に停止状態になる。たいていの場合は、新しいサイトインスタンスを利用した方が安心できる。
また、SQLデータベースまたは、MySQLも同時に復元が可能だ。ただし、SQLデータベースは同じデータベース名を利用して、同じSQLデータベースサーバーに複製を作ることはできず、MySQLは既存のデータベースに上書きされるので注意が必要だ。ここでは、新しくSQLデータベースサーバーを作成している。
データベースを復元する場合、[接続文字列の自動調節]をチェックする。これにより、復元後に接続文字列が新しいデータベースのものに書き換わるため、Webアプリケーションの参照先を変更できる。
- 1[新しい Web サイト インスタンス]にチェックを入れ、必要に応じてインスタンス名を変更する。
- 2データベースの[復元先]を[新しい SQL データベース サーバー]に変更し、必要に応じてデータベース名を変更する。
- 3[接続文字列の自動調節]にチェックを入れる。
- 4[→]ボタンをクリックし、次へ進む。
最後に、新しいデータベースの設定を行い、復元を開始する。
現段階では、復元時の新規データベースで選択できるスケールは、復元のデータベースが[Basic]や[Standard]、[Premium]であっても、[Web]または、[Business]しか選択できないため、復元後、個別に変更する必要がある。
- 1ログイン名を入力する。
- 2パスワードを入力する。
- 3ドロップダウンリストからリージョンを選択する。
- 4[チェック]ボタンをクリックし、復元を開始する。
復元には、多少の時間がかかる。復元中に、新しいWebサイトが作成され、新しく作成されたデータベースへと接続文字列が置き換わる。復元されたWebサイトを参照すると、バックアップを取ったときのスタイルとデータで復元されていることが確認できる(図12)。
また、復元元のWebサイトと新しく作成された復元先のWebサイトの接続文字列を比較すると、新しいデータベースサーバーの新しいデータベースへ変更されていることが確認できる(リスト1)。
Data Source=tcp:cri7dmfje1.database.windows.net,1433;Initial Catalog=backupsample;User Id=backup@cri7dmfje1;Password=xxxxxxx
Data Source=tcp:v9n22f4w2j.database.windows.net,1433;Initial Catalog=backupsABgPct2Fy;User ID=backup@v9n22f4w2j;Password=xxxxxxx
|
1行目が復元元のWebサイトの接続文字列。
2行目が復元先のWebサイトの接続文字列。
まとめ
このようにWebサイトを使用すると、容易にWebアプリケーションとデータのバックアップ、および、その復元が可能だ。
また、Webサイトとデータベースを同時に復元した場合は、復元先のWebサイトの接続文字列を復元先のデータベースへと変更できる。このように、Webサイトが自動的に行ってくれる処理のために、Webサイトへデプロイするアプリケーションはどの言語のアプリケーションであっても積極的に接続文字列を使用することを強く推奨する。
※以下では、本稿の前後を合わせて5回分(第3回~第7回)のみ表示しています。
連載の全タイトルを参照するには、[この記事の連載 INDEX]を参照してください。
3. Azure WebサイトのSite Extensions「DaaS」で各種ログを手軽に収集・解析するには?
“Diagnostic as a Service”(DaaS)を利用して、エラーログ、メモリダンプ、HTTPログを一括で収集し、解析を行う方法を説明する。
4. Azure Webサイトにカスタムドメインを設定するには?
Microsoft Azure Web Sitesで独自ドメイン名を適用する方法を説明する。CNAMEレコードだけでなく、wwwなしのネイキッドドメインが実現可能なAレコード(IPアドレス)も指定できる。
5. 【現在、表示中】≫ Azure Webサイトをバックアップするには?
Azure Webサイトでは、Webサイトとデータベースをバックアップ/復元するための機能が提供されている。その機能の基本的な使い方を解説する。
6. VM Depotを利用して素早く開発環境を構築するには?
LAMP環境やRuby Stackなどの多数のイメージが用意されている「VM Depot」を利用して、Linuxなどの仮想マシン環境を手軽に構築する方法を説明する。
7. Traffic Managerを利用してAzure Webサイトへの負荷を分散するには?
Traffic Managerを使えば、単体のWebサイトのインスタンス数を増やす方法よりも高度な負荷分散が実現できる。3種類の負荷分散方法のうち「パフォーマンス」の方法を説明。