Azure BLOB Storageでオブジェクト レプリケーションを設定から確認までやってみた
Azure Storage自体ではGRSやGZRSと言った冗長機能が提供されています。
Azure Storage の冗長性(マイクロソフト社公式)
Azure Storage自体の冗長性とは別にブロックBLOBではファイルを非同期にコピーするオブジェクト レプリケーション機能が提供されています。
ブロック BLOB のオブジェクト レプリケーション(マイクロソフト社公式)
オブジェクト レプリケーション機能を使うとストレージ アカウント間でブロック BLOB を非同期にコピーする事ができます。非同期とは言ってますが1日1回とかではなく随時コピーされます。
-
- Azure Storageの冗長性と比べた時のオブジェクト レプリケーションの特徴
- 複数の宛先(コンテナー)へレプリケーション可能。別リージョンへのレプリケーションも可能
- ユーザーロケーションから近いストレージアカウントへのアクセスが可能
- コストを安く抑える事が可能
- コンテナー単位でレプリケーション設定が可能
- レプリケーション先でライフ サイクル管理ポリシーを使ってアーカイブ層にファイルを移行する事ででコストを抑えたレプリケーションが可能
- BLOBコンテナーのみが対象になる
- 複数の宛先(コンテナー)へレプリケーション可能。別リージョンへのレプリケーションも可能
- Azure Storageの冗長性と比べた時のオブジェクト レプリケーションの特徴
読み取りアクセス geo 冗長ストレージ (RA-GRS) または読み取りアクセス geo ゾーン冗長ストレージ (RA-GZRS)を個別に設定して使うイメージに近いのかなぁと思ってます。
今回は、Azureストレージアカウントを3つ使いオブジェクト レプリケーション機能の設定からファイルのアップロードをして同期状態の確認までをやってみました。
Azureストレージアカウントでオブジェクトレプリケーション設定してみる
今回のストレージアカウント設定
ストレージアカウントを3つ(objectreplicationtest001-03)作成しています。今回は検証ですのでそれ以外はデフォルト値にしています。ネットワークもパブリックからのアクセス許可をしています。
設定項目 | 設定値 |
アカウントの種類 | StorageV2 (汎用 v2) |
レプリケーション | ローカル冗長ストレージ (LRS) |
今回作成したストレージアアカウント名、リージョンおよびBlobコンテナー名です。Blobコンテナーのパブリックアクセスレベルはプライベートで作成しています。
ストレージアカウント名 | リージョン | BLOBコンテナー名 |
objectreplicationtest001 | 米国東部2 | st-01 |
objectreplicationtest002 | 東日本 | st-02 |
objectreplicationtest003 | 西日本 | st-03 |
オブジェクトレプリケーション設定
オブジェクトレプリケーション設定を2種類設定しています。フィルターの有無での挙動を確認しています。
レプリケーション元 | レプリケーション先 | 設定 | ||
objectreplicationtest001 | st-01 | objectreplicationtest002 | st-02 |
上書きコピー:すべて |
objectreplicationtest001 | st-02 | objectreplicationtest003 | st-03 |
上書きコピー:新しいファイルのみ |
オブジェクトレプリケーション設定をしてみる
オブジェクトレプリケーション設定してみます。ストレージアカウント、BLOBコンテナーは作成済みの状態で実施します。
なおこちらに記載がありますが、ストレージアカウントに対して共同作成者以上の権限が必要になります。
データ保護のBLOB のバージョン管理やBLOB の変更フィードの設定が前提条件になっていますが、オブジェクトレプリケーションの設定した時点で自動で有効になります。
ファイルをアップロードしてオブジェクトレプリケーションを確認してみる
コンテナーにファイルをアップロードしてみる
今回はsample.txtとtest.txtと言う2つのファイルをアップロードします。
BLOBコンテナーでファイルアップロード | |
コンテナーでファイルを選択しアップロードします。 | |
コンテナーst-01で2つのファイルがアップロードされている事が分かります。 |
レプリケーション先のコンテナーを確認する
レプリケーション先のコンテナーでファイルを確認してみます。st-03へのレプリケーションではフィルター設定をしています。
コンテナーでファイルを削除してみる
レプリケーション元のコンテナーでファイルを削除してみます。test.txtのみを削除してみました。
レプリケーションの確認 | |
st-02のコンテナーを確認してみます。st-01で削除したtest.txtがなくなりsamle.txtのみがレプリケーションされている事が分かります。 |
|
st-03のコンテナーを確認してみます。st-01で削除したtest.txtがなくなったためすべてのファイルが消えている事が分かります。 |
非常にお手軽に設定できるため、使い勝手の良い機能かと思いました。
Premium(ブロックBLOB)でも利用できるのも良いかと思います。(2021年10月上旬ではプレビュー)
Azureストレージのライフルサイクル管理についてはこちらで試しています。
Azure Blobストレージを使ったNFS共有の作成はこちらでやっています。
Azure Backup Vaultを使ったAzure BLOB Storageのコンテナーバックアップリストアはこちら。