ITの中で自動化は今やどこにでも存在しています。仮想マシンのプロビジョニングからウェブサイトの展開まで、特に複数のアイテムを扱う必要がある場合には、自動化が重要です。Azureストレージとローカルマシン間のファイル管理さえも、AzCopyというユーティリティプログラムを使用して自動化することができます。
AzCopyは、Azureストレージの管理を可能にするスタンドアロンのユーティリティです。AzCopyを使用すると、複数の操作を実行することができます。この記事では、以下の操作に焦点を当てます:
それでは始めましょう!
ビデオでの学習が得意な方は、この記事で学ぶ内容に密接に関連したTechSnipsのビデオもご覧いただけます。
前提条件
この記事では、さまざまなタスクを実演します。一緒に進める場合は、以下の要件を満たしていることを確認してください。
- Azureのサブスクリプション。まだお持ちでない場合は、試用版サブスクリプションをリクエストしてください。
- Azureストレージアカウント。詳細については、ストレージアカウントの作成を参照してください。
- AzCopyをダウンロードして認証しました(設定方法については、記事「AZCopyツールのダウンロードとインストール方法」を参照してください)
新しいストレージコンテナの作成
まずは、既存のストレージアカウントに新しいストレージコンテナを作成するためにAzCopyを使用しましょう。この例では、container1とcontainer2という2つの新しいコンテナを作成します。
注意:新しいコンテナを作成する前に、コンテナのエンドポイントURLを把握しておく必要があります。エンドポイントURLは以下の形式に従います:https://[storageaccountname].blob.core.windows.net/[container_name]。
まず、エンドポイントURLを定義します。この例では、storageaccount1207というストレージアカウントに2つのエンドポイントURLを作成します:
- https://storageaccount1207.blob.core.windows.net/container1
- https://storageaccount1207.blob.core.windows.net/container2
エンドポイントURLが分かったので、以下のようにazcopy make
コマンドを使用して各エンドポイントURLをパラメータとして渡します。

Azureコンテナへのファイルのコピー
ストレージコンテナが作成されたら、「Azure Blob Storageにアップロードするにはどうすればいいですか?」と思うかもしれません。AzCopyを使用してazcopy copy
コマンドを使用することで実現できます。AzCopyを使用してPSTファイル、VHDファイルなどをコピーすることができます。
OAuth認証の使用
AzCopyを使用してファイルをBlobにコピーする際、認証にはいくつかのオプションがあります。Azure Storageにすでに認証されていることが前提とされているため、以下に示すようにローカルファイルパスの後にコンテナのエンドポイントURLを指定して単にazcopy copy
を実行するだけです。
他のパラメータを指定しない場合、OAuth認証が使用されます。

Azure blobコンテナにファイルがコピーされたことを確認するには、azcopy list [container url]
コマンドを使用できます。以下の例では、file1.txt
ファイルが存在することが示されています。

Azure blobからローカルディレクトリにファイルをダウンロードするには、ソースと宛先の引数の位置を入れ替えるだけです。以下の例を参照してください。

共有アクセス署名(SAS)トークンの使用
SASトークンを使用するには、まずトークンを生成する必要があります。SASトークンの生成方法がわからない場合は、「Azure SASトークンを生成する方法」の記事を参照してください。
利用可能なSASトークンがある場合は、以下のようにトークンを宛先コンテナのURLにHTTPパラメータとして追加することができます。
PowerShellを使用してトークンを変数に格納した場合(例:$token
)、以下のコマンドのようにフルトークン文字列の代わりにその変数を渡すことができます。

同じトークンを使用して(有効期限内であると仮定する)、Azureストレージからローカルストレージにファイルをダウンロードすることもできます。
以下の例では、SASトークンを使用してAzureストレージからfile1.txt
ファイルをコピーしています。

以下のコードでは、トークンをコンテナ名の後に追加するのではなく、ファイル名を最初に追加しています。これにより、SAS認証を使用して特定のファイルをコピーするようにAzCopyに指示されます。
ディレクトリをAzureストレージにコピー/ダウンロードする
以下のコマンドは、C:\\MyDir
を再帰的にblobコンテナcontainer1にコピーするものです。ここで重要なのは、--recursive
パラメータです。コマンドの末尾の--recursive
フラグは、親ディレクトリとサブディレクトリ内のすべてのコンテンツがコピーされることを示しています。
C:\MyDirフォルダ内の10個のファイルがジョブのサマリに基づいてすべて正常にコピーされたことが以下に示されています。

Azureストレージコンテナ間のファイルのコピー
この記事では、azcopy copy
コマンドを頻繁に使用してきましたが、これで止める必要はありません!ローカルのファイルやディレクトリをオンプレミスにコピーするだけでなく、ストレージコンテナ間でもブロブをコピーすることができます。
ローカルファイルパスの代わりに、パラメータを変更してソースとなる1つのブロブコンテナのURLと宛先となる別のブロブコンテナのURLを使用します。
すでにcontainer1とcontainer2という2つのストレージコンテナを作成しました。このセクションでは、container1からcontainer2にファイル、ディレクトリ、さらにはブロブコンテナ全体をコピーしましょう。
別のコンテナにファイルをコピーするには、まず新しいSASトークンを生成します。2つのコンテナが同じストレージアカウントに属しているため、同じトークンをソースと宛先の両方に使用できます。
トークンの文字列を$token
という変数に保存していると仮定します(PowerShellでazcopyを実行している場合)。以下に示すように、1つのストレージコンテナから別のストレージコンテナにすべてのデータを簡単にコピーできます。
注意: SASトークンを生成する方法がわからない場合は、「Azure SASトークンを生成してストレージアカウントにアクセスする方法」の記事を参照してください。

その他の便利なAzCopy操作
ファイルやフォルダのコピー以外にも、AzCopyで実行できる他のコピー操作があります。いくつかは次のとおりです:
- 特定のファイルのコピー(フィルタリング)。
- ブロブコンテナ内の別のディレクトリにディレクトリをコピーする。
- Amazon AWSからAzure Storageへのコピー。
AzCopyが提供する機能について学びたい場合は、azcopy -h
を実行してヘルプコンテンツを確認してください。この記事ではcopy
コマンドに焦点を当てましたが、他にも便利なコマンドが多数あります。以下にこれらのコマンドのスクリーンショットが表示されます。

詳細については、AzCopyコピーページを参照してください。その後、この記事で学んだ技術を使用して、これらを自分自身で試すことができます。
要約
この記事では、AzCopyを使用してローカルとAzureストレージ間でファイルを転送する方法、およびOAuthと共有アクセス署名トークンを使用した認証によるタスクの実行方法を学びました。また、他のAzCopyコマンドの利用方法と検索方法についても紹介しました。
I hope this article has helped you get started with AzCopy and sparked your interest in using it more as part of your administration or development tasks. Thank you!