AzCopyを使ったBLOBの操作

こんにちは。日山(@hiiyan0402)です。 今回はAzCopyを使ったBLOBの操作について説明します。


AzCopyとは?

Microsoftから提供されている、AzureストレージのBLOBを操作するためのCUIツールです。 AzCopyを使うと、ローカルストレージからBLOB、BLOBからローカルストレージ、BLOBからBLOBへの ファイル移動が簡単に行うことができます。また、マルチスレッドでデータ転送処理を行うため、非常に高速です。 hiyama_20140601_04

どういう用途で使うの?

  • オンプレミスのHyper-Vで稼働する仮想マシンをAzureに稼働する場合、VHDファイルをBLOBへ移動させるために使用
  • Azure仮想マシンのスナップショットや仮想ディスクをオンプレミスに持ってくるために使用
  • ローカルのファイルバックアップをBLOBに配置するために使用
  • ストレージアカウントのコピーやリージョン移動を行う際に、BLOBの引っ越しのために使用

などなど。BLOBからBLOBの移動に関しては、コピー元とコピー先が同じリージョンであれば、通信料金が発生しなくなるのがおいしいです。

AzCopyをインストールする

まず、Azure Power Shell (バージョンは0.8.2) をインストールします。 以下のページの画面下に、[コマンドラインツール] > [Windows PowerShell] > [インストール] のリンクをクリックして、Web Platform Installer でインストールをしてください。 http://azure.microsoft.com/ja-jp/downloads/ 2014052501

AzCopyを起動する

「Windows Azure Storage command line」を起動します。
hiyama_20140601_01 hiyama_20140601_02

ローカルストレージからBLOBへのコピー

azcopy /Source:c:workspacesample /Dest:http://[ストレージアカウント名].blob.core.windows.net/sample /DestKey:[アクセスキー] /S

/Sをつけると再帰的コピーを行います。 対象がBLOBの場合、アクセスキーかShared Access Signature(SAS)を指定する必要があります。

BLOBからローカルストレージへのコピー

azcopy /Source:http://[ストレージアカウント名].blob.core.windows.net/sample /Dest:c:workspacesample /SourceKey:[アクセスキー] /S

BLOBからBLOBへのコピー

azcopy /Source:http://[ストレージアカウント名].blob.core.windows.net/sample /Dest:http://[ストレージアカウント名].blob.core.windows.net/sample /SourceKey:[コピー元のアクセスキー] /DestKey:[コピー先のアクセスキー] /S

Shared Access Signature(SAS)を使った、ローカルストレージからBLOBへのコピー

azcopy /Source:c:workspacesample /Dest:http://[ストレージアカウント名].blob.core.windows.net/sample /DestSAS:[Shared Access Signature] /S

Shared Access Signature(SAS)を指定することでもコピーが可能です。 コピー元がBLOBの場合、/SourceSASを指定する。 コピー先がBLOBの場合、/DestSASを指定する。

BLOBからローカルストレージへの移動

azcopy /Source:http://[ストレージアカウント名].blob.core.windows.net/sample /Dest:c:workspacesample /SourceKey:[アクセスキー] /S /Mov

/Movをつけると、コピーではなく移動になります。移動元のファイルは削除されます。

ローカルストレージからBLOBへ、ページBLOBをコピー

azcopy /Source:c:workspacesample.vhd /Dest:http://[ストレージアカウント名].blob.core.windows.net/ /DestKey:[アクセスキー] /S /BlobType:page

/BlobType:(page|block)を指定することで、BLOBタイプを指定できます。デフォルトは”block”です。 VHDファイルのコピー時にページブロブでコピーする必要があります。 (VHDファイルはページBLOBじゃないと使えません)

TechTarget

クラウドエンジニア  日山 雅之による記事「Microsoft Azure スマート解説」がTechTarget Japanにて好評連載中です (全7回)