Amazon Web Services ブログ

AWS DataSync の新機能 – AWS と他のパブリックロケーション間でデータを移動する

AWS Storage サービスとの間でのデータ移動は、AWS DataSync で自動化および高速化できます。例えば、DataSync を使用して、データを AWS に移動したり、ビジネス継続性のためにデータをレプリケートしたり、クラウドでの分析や処理のためにデータを移動したりできます。DataSync を使用して、Amazon Simple Storage Service (Amazon S3)Amazon Elastic File System (Amazon EFS)、および Amazon FSx を含む AWS Storage サービスとの間でデータを転送できます。また、DataSync は、ログ記録、モニタリング、およびアラートの送信を実行するために、Amazon CloudWatch および AWS CloudTrail と統合します。

5 月 24 日(米国時間)、AWS Storage サービスと Google Cloud Storage または Microsoft Azure Files の間でデータを移行する機能を DataSync に追加しました。これにより、データ処理やストレージ統合タスクを簡素化できます。これは、Google Cloud Storage または Microsoft Azure Files を使用する顧客、ベンダー、またはパートナーにデータをインポートしたり、これらの者との間でデータを共有および交換したりする必要がある場合にも役立ちます。DataSync は、暗号化や整合性の検証などのエンドツーエンドのセキュリティを提供し、データが安全に、損なわれず、すぐに使用できる状態で到達するようにします。

ここからは、実際にどのように機能するのかを見ていきましょう。

DataSync エージェントを準備する
まず、Google Cloud Storage または Azure Files にあるストレージから読み取ったり、それに書き込んだりする DataSync エージェントが必要です。エージェントを Amazon Elastic Compute Cloud (Amazon EC2) インスタンスにデプロイします。最新の DataSync Amazon マシンイメージ (AMI) ID は、AWS Systems Manager の機能である Parameter Store に保存されます。AWS Command Line Interface (CLI) を使用して /aws/service/datasync/ami パラメータの値を取得します。

aws ssm get-parameter --name /aws/service/datasync/ami --region us-east-1
{
    "Parameter": {
        "Name": "/aws/service/datasync/ami",
        "Type": "String",
        "Value": "ami-0e244fe801cf5a510",
        "Version": 54,
        "LastModifiedDate": "2022-05-11T14:08:09.319000+01:00",
        "ARN": "arn:aws:ssm:us-east-1::parameter/aws/service/datasync/ami",
        "DataType": "text"
    }
}

EC2 コンソールで、パラメータの [Value] (値) プロパティで指定された AMI ID を使用して EC2 インスタンスを起動します。ネットワークには、パブリックサブネットと、パブリック IP アドレスを自動割り当てするオプションを使用します。EC2 インスタンスには、データ移動タスクの移動元と移動先の両方に対するネットワークアクセスが必要です。インスタンスのもう 1 つの要件は、DataSync から HTTP トラフィックを受信してエージェントをアクティブ化できることです。

Amazon VPC サービスに基づく仮想プライベートクラウド (VPC) で AWS DataSync を使用する場合、VPC エンドポイントを使用してエージェントを DataSync サービスに接続するのがベストプラクティスです。VPC コンソールで、ナビゲーションペインの [Endpoints] (エンドポイント) を選択し、[Create endpoint] (エンドポイントを作成) を選択します。エンドポイントの名前を入力し、AWS のサービスのカテゴリを選択します。

コンソールのスクリーンショット。

[Services] (サービス) セクションで、DataSync を探します。

コンソールのスクリーンショット。

その後、EC2 インスタンスを開始したのと同じ VPC を選択します。

コンソールのスクリーンショット。

AZ 間のトラフィックを減らすために、EC2 インスタンスに使用されているものと同じサブネットを選択します。

コンソールのスクリーンショット。

EC2 インスタンスで実行されている DataSync エージェントには、VPC エンドポイントへのネットワークアクセスが必要です。簡単にするために、両方に VPC のデフォルトのセキュリティグループを使用します。VPC エンドポイントを作成します。数分後には、使用する準備が整います。

コンソールのスクリーンショット。

AWS DataSync コンソールで、ナビゲーションペインから [Agents] (エージェント) を選択し、[Create agent] (エージェントを作成) を選択します。[Hypervisor] (ハイパーバイザー) には [Amazon EC2] を選択します。

コンソールのスクリーンショット。

[Endpoint type] (エンドポイントタイプ) には AWS PrivateLink を使用する VPC エンドポイントを選択します。前に作成した [VPC endpoint] (VPC エンドポイント) と、その VPC エンドポイントに使用したものと同じ [Subnet] (サブネット) および [Security group] (セキュリティグループ) を選択します。

[Automatically get the activation key] (アクティベーションキーを自動的に取得) オプションを選択し、EC2 インスタンスのパブリック IP を入力します。その後、[Get key] (キーを取得) を選択します。

コンソールのスクリーンショット。

DataSync エージェントがアクティブ化されたら、HTTP アクセスは不要になるため、それを EC2 インスタンスのセキュリティグループから削除します。DataSync エージェントがアクティブになったので、タスクとデータの移動先とする場所を設定できます。

Google Cloud Storage から Amazon S3 にデータを移動する
Google Cloud Storage バケットにいくつかの画像があり、それらのファイルを S3 バケットと同期したいと考えています。Google Cloud コンソールで、バケットの設定を開きます。そこで、Storage Object Viewer 許可を持つサービスアカウントを作成し、プログラムでバケットにアクセスするための認証情報 (アクセスキーとシークレット) を書き留めます。

AWS DataSync コンソールに戻り、[Tasks] (タスク)、[Create task] (タスクを作成) の順に選択します。

タスクのソースを設定するには、場所を作成します。[Location type] (場所タイプ) に [Object storage] (オブジェクトストレージ) を選択し、作成したエージェントを選択します。[Server] (サーバー) には、storage.googleapis.com を使用します。その後、Google Cloud バケットの名前と、画像が保存されているフォルダを入力します。

コンソールのスクリーンショット。

認証で、サービスアカウントを作成したときに取得したアクセスキーとシークレットを入力します。[Next] (次へ) を選択します。

コンソールのスクリーンショット。

タスクの宛先を設定するには、別の場所を作成します。今回は、[Location Type] (場所のタイプ) に [Amazon S3] を選択します。送信先の S3 バケットを選択し、バケットに転送されるファイルのプレフィックスとして使用されるフォルダを入力します。[Autogenerate] (自動生成) ボタンを使用して、S3 バケットにアクセスするための許可を DataSync に付与する IAM ロールを作成します。

コンソールのスクリーンショット。

次のステップでは、タスク設定を構成します。タスクの名前を入力します。オプションで、DataSync が転送されたデータの完全性を検証する方法、またはタスクに帯域幅を割り振る方法を微調整できます。

コンソールのスクリーンショット。

スキャンするデータと転送するデータも選択できます。デフォルトでは、すべてのソースデータがスキャンされ、変更されたデータのみが転送されます。タグは現在 Google Cloud Storage でサポートされていないため、[Additional settings] (追加設定) で [Copy object tags] (オブジェクトタグをコピー) を無効にします。

コンソールのスクリーンショット。

このタスクの実行に使用するスケジュールを選択できます。現段階では [Not scheduled] (スケジュールなし) のままにして、手動で開始します。

コンソールのスクリーンショット。

ログ記録で、[Autogenerate] (自動生成) ボタンを使用して DataSync 用のロググループを作成します。[Next] (次へ) を選択します。

コンソールのスクリーンショット。

設定を確認してタスクを作成します。ここで、コンソールからデータ移動タスクを開始します。数分後、ファイルは S3 バケットと同期され、S3 コンソールからアクセスできます。

コンソールのスクリーンショット。

Azure Files から Amazon FSx for Windows File Server にデータを移動する
私は多くの写真を撮りますし、Azure ファイル共有にもいくつかの画像があります。それらのファイルを Amazon FSx for Windows ファイルシステムと同期させたいと考えています。Azure コンソールで、ファイル共有を選択し、[Connect] (接続) ボタンを選択して、このストレージアカウントにネットワーク経由でアクセス可能かどうかをチェックする PowerShell スクリプトを生成します。

$connectTestResult = Test-NetConnection -ComputerName <SMB_SERVER> -Port 445
if ($connectTestResult.TcpTestSucceeded) {
    # パスワードを保存して、ドライブが再起動しても保持されるようにします
    cmd.exe /C "cmdkey /add:`"danilopsync.file.core.windows.net`" /user:`"localhost\<USER>`" /pass:`"<PASSWORD>`""
    # ドライブをマウントします
    New-PSDrive -Name Z -PSProvider FileSystem -Root "\\danilopsync.file.core.windows.net\<SHARE_NAME>" -Persist
} else {
    Write-Error -Message "Unable to reach the Azure storage account via port 445.Check to make sure your organization or ISP is not blocking port 445, or use Azure P2S VPN, Azure S2S VPN, or Express Route to tunnel SMB traffic over a different port."
}

このスクリプトから、DataSync の場所を設定するために必要な情報を取得します。

  • SMB サーバー
  • 共有名
  • ユーザー
  • パスワード

AWS DataSync コンソールに戻り、[Tasks] (タスク)、[Create task] (タスクを作成) の順に選択します。

タスクのソースを設定するには、場所を作成します。[Location Type] (場所のタイプ) と前に作成したエージェントに [Server Message Block (SMB)] を選択します。その後、スクリプトで確認した情報を使用して、認証に使用する [SMB Server] (SMB サーバー) のアドレス、[Share name] (共有名)、および [User] (ユーザー)/[Password] (パスワード) を入力します。

コンソールのスクリーンショット。

タスクの宛先を設定するために、場所をもう一度作成します。今回は、[Location type] (場所のタイプ) に [Amazon FSx] を選択します。前に作成した FSx for Windows ファイルシステムを選択し、デフォルトの共有名を使用します。デフォルトのセキュリティグループを使用してファイルシステムに接続します。AWS Directory Service for Microsoft Active Directory を FSx for Windows File Server とともに使用しているため、AWS Delegated FSx Administrators グループおよび Domain Admins グループのユーザーメンバーの認証情報を使用します。詳細については、ドキュメントの「Creating a location for FSx for Windows File Server」(FSx for Windows File Server の場所の作成) を参照してください。

コンソールのスクリーンショット。

次のステップでは、前のタスクと同じ方法で、タスクの名前を入力し、他のすべてのオプションをデフォルト値のままにします。

コンソールのスクリーンショット。

設定を確認してタスクを作成します。ここで、コンソールからデータ移動タスクを開始します。数分後に、ファイルは私の FSx for Windows ファイルシステム共有と同期されます。ファイルシステム共有を Windows EC2 インスタンスにマウントし、私の画像がそこにあることを確認します。

EC2 のスクリーンショット。

タスクを作成する際、既存の場所を再利用できます。例えば、Azure Files から S3 バケットにファイルを同期する場合、この記事のために作成した対応する 2 つの場所をすばやく選択できます。

利用可能なリージョンと料金
AWS DataSync コンソールAWS Command Line Interface (CLI)、または AWS SDK を使用してデータを移動し、AWS ストレージと Google Cloud Storage バケットまたは Azure Files ファイルシステムの間でデータを移動するタスクを作成できます。タスクの実行中は、DataSync コンソールまたは CloudWatch を使用して進行状況をモニタリングできます。

これらの新機能のリリースに伴う DataSync の料金の変更はありません。Google Cloud または Microsoft Azure との間でデータを移動するには、DataSync が現在サポートしている他のすべてのデータソースと同じ料金で請求されます。

Google Cloud または Microsoft Azure によるデータ転送 (OUT) についての料金が請求される場合があります。DataSync は、エージェントと AWS 間でコピーするときに転送中のデータを圧縮するため、Google Cloud または Microsoft Azure 環境に DataSync エージェントをデプロイすることで、エグレス料金を削減できる場合があります。

DataSync を使用して AWS から Google Cloud または Microsoft Azure にデータを移動する場合、EC2 からインターネットへのデータ転送 (OUT) についての料金が請求されます。詳細については、「Amazon EC2 の料金」を参照してください。

AWS DataSync でデータの移動方法を自動化および高速化しましょう。

Danilo

原文はこちらです。