3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Azure Storage の Private Endpoint 上でのコピーブロブのサポートを試しました

Last updated at Posted at 2021-02-09

1 月末に、プライベートエンドポイントを使用して保護されているストレージ アカウント間のデータコピーができるようになりました。以下がそのアップデート情報です。

参考:Generally available: Copy Blob support over private endpoints in Azure Storage

Azure Storage では、一方または両方のアカウントがプライベートエンドポイントを使用して保護されているストレージ アカウント間でデータをコピーできるようになりました。これには、Copy Blob や AzCopy over Private Endpoints などのユーティリティのサポートが含まれます。この機能は、一方のアカウントがプライベートエンドポイントを使用し、もう一方がサービスエンドポイントを使用するストレージアカウント間でデータをコピーすることもできます。Azure Storage は、データのコピーを許可する前に、クライアントがソースとデスティネーションの両方のストレージアカウントにアクセスできることを検証します。

この機能を実際にどのように使用すればいいのか試してみました。

ストレージ アカウントを用意

まず、以下の方法で接続できるストレージ アカウントを用意します。

  1. プライベート エンドポイント
  2. パブリック エンドポイント (選択されたネットワーク ※サービス エンドポイント)
  3. パブリック エンドポイント (すべてのネットワーク)

以下のドキュメントを参考に各 Azure リソースを作成します。
※1.と2.については、インターネット経由からのアクセスを遮断します。こちらをご参考ください。

参考:チュートリアル:Azure プライベート エンドポイントを使用してストレージ アカウントに接続する
参考:チュートリアル: Azure Portal を使用して仮想ネットワーク サービス エンドポイントで PaaS リソースへのネットワーク アクセスを制限する
参考:Azure portal を使用してサービス エンドポイント ポリシーを作成、変更、または削除する

検証環境の紹介

検証するために以下のような環境を作成しました。

image.png

仮想マシン (demo-vm) から各ストレージアカウントのエンドポイント (FQDN) に対して「nslookup」を実行して IP アドレスを確認します。実行結果は以下のとおりです。

image.png

Private Endpoint を設置したストレージ アカウントからは、仮想ネットワーク上のプライベート IP アドレスが返されます。また、Service Endpoint を構成したストレージ アカウントとパブリックなストレージアカウントからは、パブリック IP アドレスが返されます。

検証してみよう

AzCopy で検証

以下のドキュメントから AzCopy をダウンロードして、任意のフォルダーに解凍しましょう。
また操作方法もこのドキュメントを参考にします。

参考:AzCopy v10 を使用して Azure Storage にデータをコピーまたは移動する

以降からの検証では Azure ポータルで SAS トークンを生成して、各ストレージ アカウントにアクセスします。

image.png

生成された SAS トークンは忘れずにメモっておきましょう。

image.png

使用時にはリソース URL にメモっておいた SAS トークンを含めます。

https://privatesto1.blob.core.windows.net/test1/aaaaa.txt?sv=<SAS トークン>

参考:Shared Access Signatures (SAS) を使用して Azure Storage リソースへの制限付きアクセスを許可する

ストレージ 間での Blob コピー

ストレージ 間で Blob のコピーを以下のパターンで検証しています。

  1. Private Endpoint ⇔ Private Endpoint (privatesto1 ⇔ privatesto2)
  2. Private Endpoint ⇔ Service Endpoint (privatesto1/2 ⇔ publicsto3)
  3. Private Endpoint ⇔ Public Endpoint (privatesto1/2 ⇔ publicsto4)
  4. Service Endpoint ⇔ Public Endpoint (publicsto3 ⇔ publicsto4)

参考:AzCopy v10 を使用して Azure ストレージ アカウント間で BLOB をコピーする

1. Private Endpoint ⇔ Private Endpoint

Private Endpoint 間の Blob コピーは成功しました。:ok_woman_tone1:

  • privatesto1 (Private Endpoint) → privatesto2 (Private Endpoint)

image.png

image.png

2. Private Endpoint ⇔ Service Endpoint

Private Endpoint と Service Endpoint との間の Blob コピーは双方向とも成功しました。:ok_woman_tone1:

  • privatesto2 (Private Endpoint) → publicsto3 (Service Endpoint)

image.png

image.png

  • publicsto3 (Service Endpoint) → privatesto2 (Private Endpoint)

image.png

image.png

3. Private Endpoint ⇔ Public Endpoint

Private Endpoint と Public Endpoint との間の BloB コピーは双方向とも成功しました。:ok_woman_tone1:

  • privatesto1 (Private Endpoint) → publicsto4 (Public Endpoint)

image.png

image.png

  • publicsto4 (Public Endpoint) → privatesto1 (Private Endpoint)

image.png

image.png

4. Service Endpoint ⇔ Public Endpoint

Service Endpoint と Public Endpoint との間の BloB コピーは双方向とも成功しました。:ok_woman_tone1:

  • publicsto3 (Service Endpoint) → publicsto4 (Public Endpoint)

image.png

image.png

  • publicsto4 (Public Endpoint) → publicsto3 (Service Endpoint)

image.png

image.png

Azure Storage Explorer で検証

Azure Storage Explorer でも操作を検証します。

参考:Azure Storage Explorer の概要
参考:クイック スタート:Azure Storage Explorer を使用して BLOB を作成する

ストレージ アカウントへ接続

Private Endpoint を経由してストレージ アカウントに接続する場合、以前は「接続文字列」を指定して接続していたと思います。
※勘違いだったらゴメンナサイ。
今回は Azure アカウントで接続しています。

image.png

はい。すべて問題なく接続できました。:ok_woman_tone1:

image.png

ストレージ 間での Blob コピー

AzCopy と同じように、ストレージ 間で Blob のコピーを以下のパターンで検証しています。

  1. Private Endpoint ⇔ Private Endpoint (privatesto1 ⇔ privatesto2)
  2. Private Endpoint ⇔ Service Endpoint (privatesto1/2 ⇔ publicsto3)
  3. Private Endpoint ⇔ Public Endpoint (privatesto1/2 ⇔ publicsto4)
  4. Service Endpoint ⇔ Public Endpoint (publicsto3 ⇔ publicsto4)

1. Private Endpoint ⇔ Private Endpoint

Private Endpoint 間の Blob コピーは成功しました。:ok_woman_tone1:

  • privatesto1 (Private Endpoint) → privatesto2 (Private Endpoint)

image.png

2. Private Endpoint ⇔ Service Endpoint

Private Endpoint と Service Endpoint との間の Blob コピーは双方向とも成功しました。:ok_woman_tone1:

  • privatesto2 (Private Endpoint) → publicsto3 (Service Endpoint)

image.png

  • publicsto3 (Service Endpoint) → privatesto2 (Private Endpoint)

image.png

3. Private Endpoint ⇔ Public Endpoint

Private Endpoint と Public Endpoint との間の BloB コピーは双方向とも成功しました。:ok_woman_tone1:

  • privatesto1 (Private Endpoint) → publicsto4 (Public Endpoint)

image.png

  • publicsto4 (Public Endpoint) → privatesto1 (Private Endpoint)

image.png

4. Service Endpoint ⇔ Public Endpoint

Service Endpoint と Public Endpoint との間の BloB コピーは双方向とも成功しました。:ok_woman_tone1:

  • publicsto3 (Service Endpoint) → publicsto4 (Public Endpoint)

image.png

  • publicsto4 (Public Endpoint) → publicsto3 (Service Endpoint)

image.png

まとめ

試してみた結果、エンドポイントに関係なくすべて正常に動作しました。:ok_woman_tone1:
AzCopy も Azure Storage Explorer も今までと同じように使用できるので、困らずに済みますね。

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?