御成門プログラマーの技術日記

Microsoft AzureやAngularなどの技術情報を発信します

Azure Blob Storage を Azure Backup コンテナーを使用してバックアップする

Azure Blob Storage の Azure Backup を使ったバックアップ方法について紹介します。

Azure Backup の種類と対象リソースについて

Azure Backup と言ってもいろいろ種類があるので混乱しますよね。
Microsoft の Japan CSS ABRS Support Blog !! で分かりやすく説明されていたのでそちらの説明を引用します。

Recovery Services コンテナーとバックアップ コンテナーはバックアップ対象(バックアップソリューション)の違いにより使い分ける必要がございます。 また、バックアップセンターは サブスクリプション内の Recovery Services コンテナーやバックアップ コンテナー (およびそれぞれのコンテナーでバックアップしているバックアップアイテム) を統合管理するための管理画面です。

jpabrs-scem.github.io

とても分かりやすい説明でした。Japan CSS ABRS Support Blog に掲載されていた「バックアップソリューションとコンテナー、およびデータ保存先の比較表」がとても便利なのでご参照ください。

というわけで今回は「Azure Blob Storage」のバックアップということになるので、利用するコンテナーは「バックアップコンテナ」を使用します。Blobストレージのバックアップは「運用バックアップ」と「保管済みバックアップ」の2種類が存在するため、次の章で紹介します。

運用バックアップと保管済みバックアップ

前章で紹介したとおり、バックアップコンテナには「運用バックアップ」と「保管済みバックアップ」という2種類のバックアップ方法が存在します。

運用バックアップ 保管済みバックアップ
保存先 Blobストレージ バックアップコンテナ
バックアップ方法 バージョン管理、論理的な削除、削除ロックなどを駆使してポイントタイムリストアを可能にする バックアップコンテナにデータをバックアップする
復元先 バックアップ元となるストレージアカウントのみ 元ストレージとは別のストレージアカウントのみ
復旧ポイント 日付と時刻単位で選択 バックアップを行った時点の作成された復元ポイントのみ
サポート対象 Standard 汎用 v2 ストレージ アカウントのブロック BLOBのみ Standard 汎用 v2 ストレージ アカウントのブロック BLOBのみ

つまり、「運用バックアップ」はBlobのバージョン管理機能や論理的な削除機能を利用して、過去のとある状態に戻す機能。「保管済みバックアップ」はバックアップコンテナに保管して別のストレージに復旧する機能となります。
その他それぞれ制限事項がありますので詳細は下記ページをご覧ください。
Azure BLOB バックアップのサポート マトリックス - Azure Backup | Microsoft Learn

Azure Backup コンテナーを使用した Azure Blob ストレージのバックアップを試してみた

それでは実際に Azure Blob ストレージのバックアップを構成してみようと思います。
手順はこちらのMS公式Learnページの手順に沿って進めていけば大丈夫だと思います。
learn.microsoft.com

順番としては下記のような手順になります。

  1. バックアップ対象となるストレージアカウントを作成する。
  2. バックアップコンテナを作成する。
  3. ストレージアカウントのアクセス制御で「Storage Account Backup Contributor」ロールをバックアップコンテナに付与する
  4. バックアップセンターでポリシーを作成する。
  5. バックアップセンターでバックアップを構成する。

バックアップ対象となるストレージアカウントを作成する

ストレージアカウントを作成して構成します。
注意すべきはStandard 汎用 v2 ストレージ アカウントのブロック BLOBのみという点だけご注意ください。

バックアップコンテナを作成する

続いてバックアップコンテナを作成します。
検索欄に「バックアップコンテナ」を入力し、選択します。出てきた一覧にある「作成」ボタンを押下します。
バックアップコンテナ名、リージョン、冗長性などを選択して「作成」します。
ちなみにバックアップコンテナのMicrosoft おすすめ命名規則は「bvault-」プレフィックスです。

ストレージアカウントのアクセス制御で「Storage Account Backup Contributor」ロールをバックアップコンテナに付与する

バックアップ対象のストレージアカウントにバックアップコンテナがアクセスできるようにするため「Storage Account Backup Contributor」ロールをバックアップコンテナに付与します。

ちなみにMS Learn の日本語ページの手順によると「ストレージ アカウント バックアップの共同作成者」と書いてありますが、日本語だと検索しても出てこないので注意です。自分は似てる「バックアップ共同作成者」を付与したらあとでエラーになりました。

バックアップコンテナにロールを付与。

バックアップセンターでポリシーを作成する

続いてバックアップセンターでポリシーを作成します。
検索窓からバックアップセンタを検索、選択します。

バックアップセンター自身はバックアップは集中的に管理する画面のようなものなので個別にリソースとして作成は行いません。ポリシーを選択。

データソースの種類を「Azure Blob(Azure Storage)」にして続行します。

ポリシー名を入力して「コンテナを選択」します。

先ほど作成して権限付与したバックアップコンテナを選択します。

次に「スケジュールと保持期間」タブでバックアップの方式選択とリテンション期間(バックアップ保持期間)の設定を行います。

「運用バックアップ」ではいつまで復旧させられるようにしておくか期間を設定します。

「保管済みバックアップ」はいつバックアップを行い、それをどのくらい保持しておくか設定します。

「スケジュールと保持期間」の設定が終わったら、確認画面で設定内容を確認して作成します。
これでポリシーの作成は完了です。

バックアップセンターでバックアップを構成する

最後にバックアップを構成して準備は完了です。
バックアップセンターから「+バックアップ」ボタンを押下します。

データソースの種類で「Azure Blob」を選択して続行です。

次に作成したバックアップコンテナを選択します。

その次は作成したバックアップポリシーの選択。

次に実際にバックアップを行うデータソースの選択を行います。

バックアップする対象のストレージアカウントとコンテナを選択します。

もとのページに戻って再検証ボタンを押すと、現在の設定内容が正しいかどうかを検証してくれます。設定方法が間違っている場合や最初に説明したバックアップコンテナからBlobストレージへのロールの権限がたりない場合はエラーになります。

検証が完了したら、確認画面で「バックアップの構成」を選択して、これでバックアップの設定は完了となります。

バックアップ状況の確認方法

バックアップの設定や設定状況はバックアップセンターで確認できます。
設定したバックアップが失敗している....

エラーコード「UserErrorCrossTenantOrsPolicyDisabled」で調べたら出てきますね。
BLOB のバックアップと復元に関する問題のトラブルシューティング - Azure Backup | Microsoft Learn
バックアップ対象ストレージアカウントの「オブジェクト レプリケーション」→「詳細設定」→「クロステナント レプリケーション」のチェックボックスをONにすれば良いそうです。

数日後、バックアップが正しく動くようになったことが確認できました。

これでAzure Blob Storage を Azure Backup コンテナーを使用してバックアップする手順は以上です。

復元方法

復元方法は公式ページをご参照ください。
learn.microsoft.com

費用感

Blobストレージのバックアップということで大容量のデータをバックアップすることになるのでコスト感も気になるところですよね。世代数やバックアップ期間が長くなったときにどのくらい伸びるか。
こちらに関しては作成してすぐには、出なそうなのでわかり次第、追記します。

参考ページ

zenn.dev

jpabrs-scem.github.io

learn.microsoft.com

learn.microsoft.com

learn.microsoft.com