AzCopy を使ってみる
- [アーティクル]
-
-
AzCopy は、ストレージ アカウント間の BLOB またはファイル コピーに利用できるコマンドライン ユーティリティです。 この記事は、AzCopy をダウンロードし、ストレージ アカウントに接続し、データを転送する際に役立ちます。
注意
AzCopy V10 が現在サポートされているバージョンの AzCopy です。 このツールは、Windows、Linux、または macOS の公式に保守されなくなったバージョンではサポートされていません。
以前のバージョンの AzCopy を使用する必要がある場合は、この記事の「以前のバージョンの AzCopy の使用」セクションを参照してください。
このビデオでは、AzCopy ユーティリティをダウンロードして実行する方法について説明します。
ビデオの手順については、次のセクションでも説明します。
AzCopy を使用して、Azure ストレージ アカウントとの間でデータをコピーできます。 一般的な使用用途は次のとおりです。
- オンプレミスのソースから Azure ストレージ アカウントへのデータのコピー
- Azure ストレージ アカウントからオンプレミス ソースへのデータのコピー
- あるストレージ アカウントから別のストレージ アカウントへのデータのコピー
これらのユース ケースにはそれぞれ固有のオプションがあります。 たとえば、AzCopy には、データをコピーまたは同期するためのネイティブ コマンドがあります。 これにより、AzCopy は、1 回限りのコピー アクティビティや継続的な同期シナリオに使用できる柔軟なツールになります。 AzCopy では、Azure Blob Storage や Azure Files などの特定のストレージ サービスを対象にすることもできます。 これにより、BLOB からファイル、ファイルから BLOB、ファイル間などでデータをコピーできます。
これらのシナリオの詳細については、次を参照してください。
注意
AzCopy では、転送中にソースまたは宛先がアクティブに変更されるシナリオはサポートされていません。
パッケージ マネージャーを使用して AzCopy を Linux にインストールする
Microsoft 製品用 Linux ソフトウェア リポジトリ でホストされている Linux パッケージを使用して AzCopy をインストールできます。
リポジトリ構成パッケージをダウンロードします。
重要
必ず、ディストリビューションとバージョンを適切な文字列に置き換えてください。
curl -sSL -O https://packages.microsoft.com/config/<distribution>/<version>/packages-microsoft-prod.rpm
リポジトリ構成パッケージをインストールします。
sudo rpm -i packages-microsoft-prod.rpm
リポジトリ構成パッケージをインストールした後、削除します。
rm packages-microsoft-prod.rpm
パッケージのインデックス ファイルを更新します。
sudo dnf update
AzCopy をインストールします。
sudo dnf install azcopy
リポジトリ構成パッケージをダウンロードします。
重要
必ず、ディストリビューションとバージョンを適切な文字列に置き換えてください。
curl -sSL -O https://packages.microsoft.com/config/<distribution>/<version>/packages-microsoft-prod.rpm
リポジトリ構成パッケージをインストールします。
sudo rpm -i packages-microsoft-prod.rpm
リポジトリ構成パッケージをインストールした後、削除します。
rm packages-microsoft-prod.rpm
パッケージのインデックス ファイルを更新します。
sudo zypper --gpg-auto-import-keys refresh
AzCopy をインストールします。
sudo zypper install -y azcopy
リポジトリ構成パッケージをダウンロードします。
重要
必ず、ディストリビューションとバージョンを適切な文字列に置き換えてください。
curl -sSL -O https://packages.microsoft.com/config/<distribution>/<version>/packages-microsoft-prod.deb
リポジトリ構成パッケージをインストールします。
sudo dpkg -i packages-microsoft-prod.deb
リポジトリ構成パッケージをインストールした後、削除します。
rm packages-microsoft-prod.deb
パッケージのインデックス ファイルを更新します。
sudo apt-get update
AzCopy をインストールします。
sudo apt-get install azcopy
AzCopy をインストールします。
sudo tdnf install azcopy
AzCopy の移植可能なバイナリをダウンロードする
パッケージをインストールする代わりに、AzCopy V10 実行可能ファイルをコンピューター上の任意のディレクトリにダウンロードできます。
これらのファイルは、zip ファイル (Windows および Mac) または tar ファイル (Linux) として圧縮されます。 Linux 上で tar ファイルをダウンロードして圧縮を解除するには、お使いの Linux ディストリビューションのドキュメントを参照してください。
AzCopy リリースの詳細については、AzCopy リリースに関するページを参照してください。
利便性のため、AzCopy 実行可能ファイルのディレクトリの場所をご自分のシステム パスに追加して使いやすくすることを検討してください。 そうすると、ご使用のシステム上にある任意のディレクトリから「azcopy
」を入力できます。
AzCopy ディレクトリをご自分のパスに追加しないことを選択した場合、実際の AzCopy 実行可能ファイルの場所にディレクトリを変更し、Windows PowerShell コマンド プロンプトで「azcopy
」または「.\azcopy
」と入力する必要があります。
ご自分の Azure Storage アカウントの所有者であっても、データへのアクセス許可が自動的に割り当てられるわけではありません。 AzCopy を使用して意味のある動作を行う前に、ストレージ サービスに認証資格情報を提供する方法を決定する必要があります。
Microsoft Entra ID または Shared Access Signature (SAS) トークンを使用して、資格情報を提供できます。
オプション 1: Microsoft Entra ID を使う
Microsoft Entra ID を使用すると、各コマンドに SAS トークンを追加する代わりに、資格情報を 1 回入力するだけで済みます。
AzCopy コマンドで使用する各コピー元または各コピー先の URL に SAS トークンを追加できます。
この例のコマンドでは、ローカル ディレクトリから BLOB コンテナーにデータが繰り返しコピーされます。 架空の SAS トークンが、コンテナー URL の末尾に追加されます。
azcopy copy "C:\local\path" "https://account.blob.core.windows.net/mycontainer1/?sv=2018-03-28&ss=bjqt&srt=sco&sp=rwddgcup&se=2019-05-01T05:01:17Z&st=2019-04-30T21:01:17Z&spr=https&sig=MGCXiyEzbtttkr3ewJIh2AR8KrghSy1DGM9ovN734bQF4%3D" --recursive=true
SAS トークンの詳細とその取得方法については、「Shared Access Signatures (SAS) の使用」を参照してください。
注意
ストレージ アカウントの [安全な転送が必須] 設定によって、ストレージ アカウントへの接続がトランスポート層セキュリティ (TLS) で保護されるかどうかが決まります。 既定では、この設定は有効になっています。
ID を承認するか、SAS トークンを取得したら、データの転送を開始できます。
サンプル コマンドは次の記事のいずれかをご覧ください。
コマンドの一覧を表示するには、「azcopy -h
」と入力し、ENTER キーを押します。
特定のコマンドの情報を知るには、単にコマンドの名前を含めてください (例: azcopy list -h
)。
次の表に、AzCopy v10 のすべてのコマンドを示します。 各コマンドは、リファレンス記事にリンクされています。
注意
AzCopy には、ファイルの名前を変更するコマンドはありません。
時間と共に、AzCopy のダウンロード リンクは AzCopy の新しいバージョンを指します。 実際のスクリプトで AzCopy をダウンロードする場合、実際のスクリプトで使用する機能が新しいバージョンの AzCopy で変更されていると、スクリプトの動作が停止する可能性があります。
これらの問題を回避するには、AzCopy の現在のバージョンの静的 (変更されない) リンクを取得します。 そうすることで、実際のスクリプトを実行するたびに、まったく同じバージョンの AzCopy がダウンロードされます。
注意
AzCopy バイナリへの静的リンクは、コンテンツ配信インフラストラクチャにより時間の経過と同時に変更される可能性があります。 何らかの理由で特定のバージョンの AzCopy を使用する必要がある場合は、公開されたパッケージを利用するオペレーティング システムで AzCopy 使用することをお勧めします。 この方法により、目的のバージョンの AzCopy を確実にインストールして維持できます。
そのリンクを取得するには、このコマンドを実行します。
オペレーティング システム |
コマンド |
Linux |
curl -s -D- https://aka.ms/downloadazcopy-v10-linux \| grep ^Location |
Windows PowerShell |
(Invoke-WebRequest -Uri https://aka.ms/downloadazcopy-v10-windows -MaximumRedirection 0 -ErrorAction SilentlyContinue).headers.location |
PowerShell 6.1+ |
(Invoke-WebRequest -Uri https://aka.ms/downloadazcopy-v10-windows -MaximumRedirection 0 -ErrorAction SilentlyContinue -SkipHttpErrorCheck).headers.location |
注意
Linux の場合、tar
コマンドの --strip-components=1
では、バージョン名を含む最上位フォルダーが削除され、代わりに現在のフォルダーに直接バイナリが抽出されます。 これにより、wget
URL を更新するだけで、新しいバージョンの azcopy
でスクリプトを更新できます。
この URL はこのコマンドの出力に表示されます。 その後、実際のスクリプトでその URL を使用して AzCopy をダウンロードできます。
Linux
wget -O azcopy_v10.tar.gz https://aka.ms/downloadazcopy-v10-linux && tar -xf azcopy_v10.tar.gz --strip-components=1
Windows PowerShell
Invoke-WebRequest -Uri <URL from the previous command> -OutFile 'azcopyv10.zip'
Expand-archive -Path '.\azcopyv10.zip' -Destinationpath '.\'
$AzCopy = (Get-ChildItem -path '.\' -Recurse -File -Filter 'azcopy.exe').FullName
& $AzCopy
PowerShell 6.1+
Invoke-WebRequest -Uri <URL from the previous command> -OutFile 'azcopyv10.zip'
$AzCopy = (Expand-archive -Path '.\azcopyv10.zip' -Destinationpath '.\' -PassThru | where-object {$_.Name -eq 'azcopy.exe'}).FullName
& $AzCopy
拡張子が .cmd
のバッチ ファイルでは、SAS トークンに出現する %
文字をエスケープする必要があります。 これを行うには、SAS トークン文字列の既存の %
文字の横に %
の文字を追加します。 結果の文字シーケンスは %%
と表されます。 各 &
文字の前には必ず ^
を追加し、文字シーケンス ^&
を作ってください。
Jenkins を使用してスクリプトを実行する場合は、必ずスクリプトの先頭に次のコマンドを配置してください。
/usr/bin/keyctl new_session
Azure Storage Explorer で使用する
Storage Explorer は、AzCopy を使用してすべてのデータ転送操作を実行します。 AzCopy のパフォーマンス上の利点を適用する場合は Storage Explorer を使用できますが、ファイルの操作にはコマンド ラインではなくグラフィカル ユーザー インターフェイスを使用することをお勧めします。
Storage Explorer では、ご自分のアカウント キーを使用して、操作を実行します。そのため、Storage Explorer にサインインした後は、追加の承認資格情報を提供する必要はありません。
次のいずれかのリソースを参照してください。
以前のバージョンの AzCopy を使用する必要がある場合は、次のいずれかのリンクを参照してください。
注意
これらのバージョンの AzCopy は非推奨です。 Microsoft では、AzCopy v10 の使用をお勧めします。
ご質問、問題、一般的なフィードバックは、GitHub ページからお送りください。