Azureでの仮想マシンの障害復旧に有用なサービスには、「Azure Site Recovery(ASR)」と「Azure Backup」がある(図1)。どちらも、DR(災害復旧)サービス群の「Recovery Services vaults」に含まれる。
前者のASRは、仮想マシンのイメージを別のリージョンにレプリケートしておき、仮想マシンの障害が発生したときにそれを停止させてイメージを基に仮想マシンを新規作成する――という一連の復旧作業を半自動化する。
ASRはもともと、オンプレミス(自社所有)環境で障害が起きたときに、Azureやオンプレミスの別データセンターでサーバーを復旧させるためのサービスである(図2)。つまり、オンプレミス環境のサーバーを対象とした障害復旧サービスだった。
2017年5月の機能拡張で、Azureで稼働する仮想マシンが対象に加わった(2017年8月時点でプレビュー)。これによりAzure仮想マシンの障害発生時に、別リージョンで復旧させることが可能になった。
後者のAzure Backupは、仮想マシンのイメージ単位、またはファイル・フォルダーといったデータファイル単位のバックアップを、Azure Blob Storage(BLOB)上に取るもの。バックアップ元として、Azureの仮想マシンに加え、オンプレミス環境の物理サーバー、Hyper-VやVMwareの仮想マシンもサポートする。
ASRはコールドスタンバイ
どちらのサービスもオンプレミス環境とAzureの両方を対象にしている。ここからは、Azure上で仮想マシンを稼働させているケースを前提にして、二つのサービスをもう少し詳しく見ていこう。
ASRは、リージョンを横断したコールドスタンバイを実現するサービスと考えてよい。具体的には、対象の仮想マシンのイメージをフェールオーバー先のリージョンにレプリケートしておき、障害発生時には対象の仮想マシンを停止させ、フェールオーバー先のリージョンで新規作成し起動させるためのサービスだ。
レプリケートは、対象の仮想マシンでデータの変更があるたびに行うので、基本的なデータは全て同一となる。
ASRでフェールオーバーを実行した場合、リージョンや仮想ネットワークが変更される。そのためフェールオーバーを実行したあと、変更された新しい環境でシステムが正しく動作するように、環境準備や設定が必要になる。
取得単位が2方式あるBackup
Azure Backupは前述の通り、データファイル単位のバックアップと、仮想マシンイメージ単位のバックアップがある。どちらでも、あらかじめバックアップの保存先リージョンにRecovery Service vaultsのインスタンスを作成する。
データファイル単位のバックアップを行う場合は、Azure Backupのエージェントおよび管理ツールを、対象の仮想マシンにインストールして動作させる。
この管理ツールでバックアップ対象ファイルの選択、取得日時、保持期間を設定すると、バックアップが開始される。
復旧の際には、Azure Backup管理ツールで復旧対象のファイル・フォルダーと復旧ポイントの日時を選択する。エクスプローラー画面で復旧対象のファイル・フォルダーが表示されるので、そこから選ぶだけだ。
注意点として、Windows OSにしか対応していないこと、バックアップができるのはエージェントがインストールされた仮想マシンにマウントされ、CドライブやDドライブといったドライブレターが割り当てられているドライブ領域に限られることが挙げられる。仮想マシンからネットワーク経由で参照するサーバーのデータファイルなどはバックアップできない。
イメージ単位のバックアップについては、Azure上の仮想マシンのイメージを取得する。その際、バックアップ取得日時や保持期間の設定を含むバックアップポリシーを適用できる。ポリシーは一度作成すれば、ほかの仮想マシンにも適用できる。
2017年8月時点でプレビューではあるが、イメージ単位で取得したバックアップからイメージ内のファイルをリストアする機能が提供されている。このリストアは、データファイル単位のバックアップより若干手間が掛かるが、イメージ単位のバックアップだけで済むので便利だ。
イメージ単位のバックアップの注意点は、復旧時には取得したイメージと合わせて、ネットワークインタフェースやパブリックIPアドレスなど、仮想マシンに関連するリソースも新たに設定する必要があること。そのため、復旧時の作業を確認しておくとよい。
特性が異なるデータファイル単位とイメージ単位のバックアップをどう使い分けたらよいか。
データファイル単位のバックアップは、ログやDBダンプファイルなど特定のデータについてリージョンを横断したバックアップを取る場合や、ファイルサーバー上のファイルを誤って消したときGUIで迅速かつ簡単にファイルをリストアしたい場合などに向く。
一方、イメージ単位のバックアップは、仮想マシン全体のバックアップをスナップショットのように取得したい場合や、復旧時にスナップショットからの復旧時間が許容できるような場合に使う。稼働頻度の少ない業務アプリケーションサーバーのバックアップを別リージョンに取得しておくケースなどは、最適な用途といえる。