Amazon Web Services ブログ
AWS DataSync を使用して Azure Files の SMB 共有から AWS にデータを移行する方法
このブログは 2022 年 5 月 25 日に Rodney Underkoffler (Solutions Architect) と Aidan Keane (Senior Specialist Solutions Architect) によって執筆された内容を日本語化した物です。原文はこちらを参照して下さい。
企業が複数のデータセンターや、ストレージ、クラウドプロバイダーにデータを置くことは珍しくありません。たとえデータが単一のクラウドに存在する場合でも、異なるロケーションで動作するワークロードでは、低遅延のデータ分析、災害復旧バージョンの維持、送信元ロケーションの容量確保のためのコールドデータのアーカイブ、新しいロケーションへのデータ移行などの理由から、データのコピーが必要になる場合があります。ファイルデータは企業内で一般的なデータ型であり、異なるストレージシステムやプロトコル間でファイルデータを転送することは困難な場合があります。多くの場合は、カスタムスクリプトやユーティリティを使用することで実現されます。これらの大量データを移動させるスクリプトの作成や、保守、監視、トラブルシューティングは IT 運用の負担となり、データ移行プロジェクトが遅延する可能性があります。
このブログでは、AWS DataSync を使用して Azure Files の Server Message Block(SMB)共有から、AWS ストレージサービスにファイルデータを定期的にコピーする方法について説明します。この記事の執筆時点(2022 年 5 月 25 日)では、Azure で利用可能なネイティブの DataSync エージェントは存在しておりません。そのため、既存の Hyper-V DataSync エージェントを使用して Azure Files から AWS へのデータ移行を高速化する方法を紹介します。ファイルデータは Amazon Simple Storage Service(S3) や、Amazon Elastic File System(EFS)、Amazon FSx に配信することができます。ターゲットデータのロケーションとして Amazon S3 を使用する方法についても、最後に説明します。
図1:DataSync のクロスクラウドアーキテクチャ
前提条件
この記事の手順を実行するには、以下のものにアクセスができる必要があります。
- AWS アカウント
- Azure アカウントのサブスクリプション
- Amazon S3 バケット:Amazon S3 ユーザーガイドで、Amazon S3 バケットのプロビジョニングと作成方法をお読みください。
- Azure Files の SMB 共有:Azure Files の SMB ファイル共有を構成する方法についてはこちらをご覧ください。また、このデモのために、仮想マシン上で直接 SMB 共有を構成することもできます。
- PowerShell
- Azure コマンドラインインターフェース(CLI)
- AzCopy
- ローカルの Windows システムで、以下の Windows 機能を有効にする必要があります。
- Windows PowerShell 用 Hyper-V モジュール
- Hyper-V サービス
DataSync エージェントのロケーション
Amazon Elastic Compute Cloud(Amazon EC2)インスタンス上で実行する DataSync エージェントをデプロイし、インターネット経由で Azure Storage にアクセスすることができますが、代わりに Azure の VM として DataSync エージェントをデプロイする方が利点があります。Azure に DataSync エージェントをデプロイすると、ネットワークの遅延が減少でき、Azure Files の SMB 共有のためのパブリックエンドポイントを持つ必要がなくなります。また、DataSync は増分転送や、インライン圧縮、スパースファイル検出などのネットワーク最適化を実行します。これらの最適化により、データを AWS に移行する際の Azure からの egress コストを削減できる可能性があります。
AWS または Azure のどちらで AWS DataSync エージェントを 実行しているかに関わらず、ファイルやネットワークトラフィックを保護するためにいくつかのセキュリティ機能が有効になっています。AWS DataSync は、送信元と送信先の間で移動するすべてのデータで TLS(Transport Layer Security)暗号化を使用します。DataSync では、データが AWS DataSync 自体に永続化されることはありません。このサービスでは S3 バケットのデフォルト暗号化と、SMB v3 暗号化の使用もサポートしています。
ソリューションのチュートリアル
図 1は Azure Files の SMB 共有から、送信先ロケーションである S3 バケットまでのソリューションアーキテクチャを示したものです。設定の手順は次のとおりです。
- Azure Files の SMB 共有と同じリージョンに Azure VM として DataSync エージェントをデプロイし、有効化します。
- Azure Files の SMB 共有と AWS アカウントの S3 バケット間でレプリケーションを構成し、開始します。
各コンポーネントについて簡単に説明し、エンドツーエンドのデータレプリケーションソリューションを構築する方法について詳しく説明します。また、特定のユースケースに合わせてこのソリューションを変更することに興味がある場合は、該当するドキュメントへのリンクも提供します。それでは、始めましょう。
DataSync エージェントのデプロイ
ステップ1:デプロイ用の DataSync エージェントイメージを準備する
- AWS DataSync コンソールを開きます。
- コンソールの「エージェントを作成する」ページにある「ハイパーバイザー」ドロップダウンメニューから「Microsoft Hyper-V」を選択します。
- 「エージェントをデプロイする」で「イメージをダウンロードする」を選択すると、仮想ハードディスク v2(VHDX)イメージファイルを含む .zip ファイルにてエージェントがダウンロードされます。
- VHDX イメージファイルをローカルの Windows システムに展開します。
- VHDX ファイルは、Azure との互換性のために固定サイズの仮想ハードディスク (VHD) ファイルに変換する必要があります。Azure にアップロードするための VHDX の準備に関する詳細についてはこちらを参照してください。以下のコマンドを実行してください。パスとファイル名を自身のロケーションに合わせて修正するようお願いします。
ステップ 2: VHD をマネージドディスクにアップロードする
- 空のマネージドディスクを作成できるように、VHD ファイルのサイズを決定します。VHD ファイルイメージを含むディレクトリで
ls -l .
コマンドを使用して、VHD ファイルのバイト数を確認します。この値は、後ほど –upload-size-bytes のパラメータで必要になります。
図 2:DataSync VHD ファイルのバイトサイズを特定する。
- 以下のコマンドを実行する前に、Azure Command Line Interface(CLI)および AzCopy が最新バージョンであることを確認してください。
- 以下のコマンドを実行して、空のマネージドディスクを作成します。以下のパラメータは必ず自身の情報に修正してください。
-
- manageddiskname:作成するマネージドディスクの名前を指定します。
- resourcegroupname:このコマンドを実行する前に、リソース グループを作成する必要があります。
- Region:Azure Files 共有が含まれるリージョンを指定します。
- –upload-size-bytes:事前に確認した VHD ファイルのバイト数を入力してください。この例では 8589934632 を指定しています。
- 書き込み可能な共有アクセス署名を生成します。
- DataSync VHD を空のマネージドディスクにアップロードします。
- アップロードが完了したら、SAS を取り消して、新しい VM にマウントするためのディスクを準備します。
ステップ3:DataSync エージェント VM の作成
以下のコマンドを実行して、先ほど作成したマネージドディスクを使用して DataSync VM を作成します。newVMname パラメータは、組織の命名規則に一致する VM 名に修正してください。
ステップ4:DataSync エージェントをアクティベーションする
DataSync エージェントは、自動または手動でアクティベーションすることができます。自動プロセスでは、DataSync エージェント VM へのインバウンドポート 80 を一時的に開放する必要があります。アクティベーションが成功すると、DataSync はエージェントのポート 80 を閉じます。ポート 80 への必要なアクセスレベルはネットワーク構成によって異なります。DataSync のネットワーク要件についてはこちらをご覧ください。
または、手動アクティベーションの方法を使用して、エージェントのローカルコンソールからアクティベーションキーを取得することもできます。この方法では、ブラウザとエージェント間の接続は必要ありません。次のステップでは、手動起動の方法と DataSync エージェントの設定方法についての概要を説明します。
図3:ブート診断を有効にする
- AWS DataSync Activation:Configuration のメインメニューで、アクティベーションキーを取得するために「0」を入力します。
- エージェントをアクティべーションする AWS リージョンを入力します。
- エージェントが使用するサービスエンドポイントの種類を入力します。オプションには、「公開サービスエンドポイント」と「FIPS サービスエンドポイント」、「AWS PrivateLink を使用した VPC エンドポイント」があります。この例では「公開サービスエンドポイント」オプションを使用します。
- アクティベーションキーが自動的に生成され、画面に表示されます。この値を選択してコピーします。
注意:アクティベーションキーは生成されてから30分以内に使用する必要があります。
図4:DataSync agent の作成
次に、DataSync エージェントを作成する必要があります。以下の手順を実行します。
- AWS DataSync コンソールを開きます。
- コンソールの「エージェントを作成する」ページにある「ハイパーバイザー」ドロップダウンメニューから、「Microsoft Hyper-V」を選択します。
- 「サービスエンドポイント」セクションにて、エージェントをアクティベーションするリージョンで「公開サービスエンドポイント」オプションを選択します。
- 「アクティベーションキー」で、「エージェントのアクティベーションキーを手動で入力する」を選択し、エージェントのローカルコンソールからコピーした値を貼り付けます。
- 必要であればエージェントの一意の名前を記入し、「エージェントを作成する」を選択してください。
デーレレプリケーションの設定
ステップ1:送信元の SMB ロケーションを構成する
送信元の Azure Files SMB ファイル共有を DataSync SMB ロケーションとして構成します。左側のナビゲーションパネルから「ロケーション」を選択し、「ロケーションを作成する」を選択します。次に、「ロケーションタイプ」 として「サーバーメッセージブロック (SMB) 」を選択します。前のステップで作成したエージェントを選択していることを確認してください。
図 5:SMB ロケーションの作成
次に、SMB サーバーの完全修飾ドメイン名(FQDN)または IP アドレスと、共有名、SMB ファイル共有にアクセスするための適切な権限を持つユーザー資格情報を入力する必要があります。Azure ファイル共有への接続には、Active Directory の ID を使用することが推奨されます。この記事の執筆時点(2022 年 5 月 25 日)では、このドキュメントにおいて、Azure ファイル共有のための Azure Active Directory Domain Services(AD DS) およびオンプレミスの AD DS 認証のどちらも、 Linux VM からの認証をサポートしていません。Azure ファイル共有への管理者アクセスには、ストレージアカウントキーを使用することもできます。Azure ポータルは、必要な SMB サーバー、共有名、およびユーザー資格情報を含むスクリプトを提供します。以下の手順に従って、ストレージアカウントキーの接続情報を取得します。
- Azure ポータルにサインインします。
- ファイル共有が含まれているストレージアカウントを参照します。
- 「ファイル共有」 を選択します。
図6:SMB ファイル共有の選択
- データを移行するファイル共有を選択します。
- 「接続」を選択します。
図7:接続情報を取得する
- 接続情報は、次の例に示すようにスクリプトウィンドウ内に出力されます。
図8:SMB 接続設定と資格情報
- SMB サーバーの FQDN または IPアドレスと、共有名、Azure 接続の詳細ウィンドウから取得したユーザー資格情報を入力します。
図9:SMB 接続設定と資格情報の入力
ステップ2:送信先のロケーションを構成する
送信先のロケーションを Amazon S3 として構成します。左側のナビゲーションメニューから「ロケーション」を選択し、「ロケーションを作成する」を選択します。ターゲットの Amazon S3 バケットと、S3 ストレージクラス、フォルダ、Amazon S3 バケットにアクセスする権限を持つ IAM ロールを選択します。Amazon S3 バケットにアクセスする IAM ロールを手動で構成する方法の詳細については、DataSync ユーザーガイドを参照してください。DataSync は、ゼロデイライフサイクルポリシーを管理することなく、S3 Glacier Instant Retrieval ストレージクラスを除く、任意の S3 ストレージクラスに直接データを移動することができます。移行ごとにニーズに合わせて最も費用対効果の高い S3 ストレージクラスを選択することができます。DataSync は、移行先のファイルシステムまたはバケット内の既存のファイルまたはオブジェクトを検出します。データの予期しない変更や損失を防ぐために、既存のデータを上書きしないように DataSync を設定することができます。
Amazon S3 をターゲットとする場合、DataSync は Amazon S3 オブジェクトにデフォルトの POSIX メタデータを適用することに注意してください。これには、デフォルトの POSIX ユーザー ID およびグループ ID の値を使用することが含まれます。詳細については、DataSync がメタデータと特殊ファイルをどのように処理するかを参照してください。また、DataSync のドキュメントで Amazon S3 ストレージクラスを使用する場合の考慮事項も確認してください。
図10:S3 ロケーションを作成する
ステップ3:レプリケーションタスクの作成
ステップ1の既存の送信元 SMB ロケーションと、ステップ2の送信先 Amazon S3 バケットを使用して、タスク設定を構成します。タスク設定とオプションの詳細については、タスク設定のドキュメントを参照してください。
定期的に新しいファイルをレプリケートしたい場合は、希望するスケジュールを選択してください。
図11:送信元の場所を設定する
送信元ロケーションを設定した後に、送信先ロケーションにも同じ作業を実施してください。詳細は図12をご覧ください。
図12:送信先ロケーションを構成する
次に、DataSync タスクの設定を行います。AWS マネジメントコンソールには、DataSync タスクの「設定を構成する」 ページが表示されます。この例ではタスクの設定を「転送されたデータのみを検証する」、「変更されたデータのみを転送する」、「毎日」のタスク頻度を要求するよう構成し、ログを設定しました。詳細については図13を参照してください。
図13:DataSync タスク設定
ステップ 4:DataSync タスクの開始
DataSync がデータの転送を開始できるように、タスクリストまたはタスクの概要から「スタート」を選択してタスクを開始してください。タスクのセットアップでスケジュールを設定した場合は、タスクは指定した時間に開始されます。タスクの実行と Amazon CloudWatch による DataSync タスクのモニタリングについては、リンク先のドキュメントで詳しく説明しています。
このチュートリアルのステップを完了すると、Azure Files SMB 共有データを Amazon S3 に効率的に移行するための、安全なデータパイプラインが利用できるようになります。DataSync のタスクが実行されるたびに、送信元と送信先のロケーションに変更がないかをスキャンし、データとメタデータの差分のコピーを実行します。DataSync のタスクは、起動と準備、転送、検証といういくつかのフェーズを通過します。準備フェーズにかかる時間は、送信元と送信先にあるファイル数によって異なります。通常は数分 ~ 数時間かかります。DataSync タスクのフェーズ詳細については『DataSyncユーザーガイド』を参照してください。
クリーンアップ
作成したリソースに対する継続的な課金を回避するために、以下の手順を実行してください。
- 「データレプリケーションの設定」のステップ3で作成した DataSync タスクを削除します。
- 「データレプリケーションの設定」のステップ1および2で作成した送信元と送信先のロケーションを削除します。
- 「DataSync エージェントのデプロイ」のステップ3で作成した DataSync エージェントを削除します。
- 「DataSyncエージェントのデプロイ」で作成した Azure VM およびアタッチされているリソースを削除します。
- 「データレプリケーションの設定」のステップ1で作成した S3 バケット内のオブジェクトを全て削除します。バケットを削除するには、こちらの手順でバケットを空にする必要があります。
価格情報
DataSync の価格はシンプルです。移行したデータに対して 1 GB あたりの定額料金を支払うだけで、初期費用や最低利用料金はありません。この価格モデルにより、AWS へのデータ移行を手頃な価格で実施することができます。AWS DataSync のエンドポイントを使用するため、AWS DataSync の使用料が移行先のアカウントに課金されることに注意してください。
インバウンドのデータ移行には追加料金はかかりませんが、Azure のソースアカウントに対してデータの egress チャージが発生する場合があります。Azure の egress チャージに関連する最新情報については、ベンダーの価格サイトを参照してください。
まとめ
このブログ記事では、Azure 上に AWS DataSync エージェントを構成して、データを AWS にコピーする方法について解説しました。ステップバイステップガイドでは、IT チームの負担となりデータ移行プロジェクトを遅延させる可能性のあるカスタマイズされたスクリプトや、ユーティリティを管理することなく、Azure Files SMB 共有から AWS 上の Amazon S3 バケットにファイルデータをコピーするタスクを作成し構成しました。
このソリューションにより、Azure 上でホストされている SMB 共有から AWS のストレージサービスにデータを簡単に移行できます。この結果、異なる場所で運用されているワークロードの処理と作業のためにデータを統合することができます。AWS DataSync のようなマネージドサービスを活用することで、追加インフラの管理の負担がなくなり、運用時間が短縮され、大規模なデータ移動の複雑さが軽減されます。
AWS DataSync を使用する場合は、以下のリソースが参考になりますので、是非ご利用ください。
- AWS DataSync の新機能
- AWS DataSync ユーザーガイド
- AWS DataSync フォーラム
- AWS DataSync Primer ※ 無料でオンデマンドで受講可能な 1 時間のセルフベースのオンラインコース
AWS DataSync を使って、Azure Files の SMB 共有から Amazon S3 へ簡単かつ安全にデータを移行する方法について、本記事をお読みいただきありがとうございました。ぜひ、このソリューションをお試しください。
翻訳はプロフェッショナルサービス本部の葉山が担当しました。