AzCopy v10(Preview)がリリースされて、Amazon S3からAzure Blobへのデータコピーができるようになったので実際に使ってみたいと思います。
前提
- Amazon S3バケットが作成されていること
- Azure Blob Storage コンテナーが作成されていること
- S3バケットへのRead権限を持ったIAMユーザが作成されていること
環境
- Microsoft Windows 1o Pro
- AzCopy 10.0.9-Preview
AzCopyダウンロード
以下の公式ページよりダウンロードします。
Download and install AzCopy
解凍&配置
ダウンロードしてきたzipファイルを解凍し、azcopy.exeをPATHの通ったフォルダに配置します。
v10からはインストールが不要になってますね。
AWSアクセスキー&シークレットキー設定
- IAMユーザのアクセスキー、シークレットキーを設定します。
set AWS_ACCESS_KEY_ID=<your AWS access key>
set AWS_SECRET_ACCESS_KEY=<AWS secret access key>
S3 to Blob (SASトークン使用)
azcopy cp "https://s3-ap-northeast-1.amazonaws.com/[バケット名]/[フォルダ名]/[オブジェクト名]" "https://[ストレージアカウント名].blob.core.windows.net/[コンテナー名][SASトークン]"
- Blobストレージに転送されていればOKです。
S3 to Blob (OAuth認証使用)
-
役割に[ストレージBLOBデータ共同作成者]を選び、Azure ADユーザに権限を与えます。サービスプリンシパルは対応していないので、ADユーザを選択するようにしてください。
-
AzCopyログインコマンドを実行します。
azcopy login --tenant-id=[テナントID]
- 以下のようなメッセージが出力されるので、ブラウザで
https://microsoft.com/devicelogin
を開き、コードを入力してAzureユーザでログインします。
To sign in, use a web browser to open the page https://microsoft.com/devicelogin and enter the code ABCDEFGHR to authenticate.
- コマンドプロンプトより以下コマンドを実行します。今回はSASトークンは不要です。
azcopy cp "https://s3-ap-northeast-1.amazonaws.com/[バケット名]/[フォルダ名]/[オブジェクト名]" "https://[ストレージアカウント名].blob.core.windows.net/[コンテナー名]"
- Blobストレージに転送されていればOKです。
S3バケット丸ごと転送
- S3バケットを指定することで、バケット丸ごと転送することもできます。
azcopy cp "https://s3-ap-northeast-1.amazonaws.com/[バケット名]" "https://[ストレージアカウント名].blob.core.windows.net/[コンテナー名][SASトークン]" --recursive=true
Blob to S3
- 残念ながら現時点では利用できないようです。エラーになりました。
failed to parse user input due to error: the inferred source/destination combination is currently not supported. Please post an issue on Github if support for this scenario is desired
まとめ
まだプレビューですが、コマンドはシンプルで分かりやすいですね。
認証にストレージアカウントキーが使えないのと、OAuth認証は対話型のみ対応で、サービスプリンシパルを使った認証はできないという点に注意が必要です。