【AWSサービス 基礎編】AWS DataSync でオンプレミスと AWS 間のデータ転送を自動化する

目次

概要

AWS DataSync は、オンプレミスのストレージと AWS ストレージサービス間、または AWS ストレージサービス間でデータ転送を自動化するサービスです。NFS や SMB ファイルサーバーから Amazon S3、Amazon EFS、Amazon FSx へのデータ移行を、高速かつ安全に実行できます。

オンプレミスから AWS へのデータ移行や、定期的なデータ同期を手動で行うと、スクリプトの開発・保守やネットワーク帯域の管理、転送エラーのハンドリングなど多くの手間が発生します。DataSync はこれらの課題を解消し、専用のエージェントと最適化されたネットワークプロトコルを使って、効率的なデータ転送を実現します。この記事では、AWS ストレージサービス間の転送タスクを作成し、DataSync の基本的な使い方を体験します。

DataSync の全体像: オンプレミスからはエージェント経由、同じアカウントの AWS ストレージ同士はエージェントなしで転送する
DataSync の全体像: オンプレミスからはエージェント経由、同じアカウントの AWS ストレージ同士はエージェントなしで転送する
クラウドおさる

弊猿はこの記事で、S3 バケットから S3 バケットへ DataSync でデータを運んでみるでござる。ロケーションとタスク、この 2 つの関係を手で確かめるのでござるよ。

この記事のメリット

  • AWS DataSync の基本概念(エージェント、ロケーション、タスク)を理解できる
  • DataSync がサポートする転送元・転送先の組み合わせを把握できる
  • AWS ストレージサービス間のデータ転送タスクを作成する手順を習得できる
  • タスクの実行と転送結果の確認方法を体験できる
  • データ転送の自動化とスケジューリングの考え方を理解できる

執筆者とキャラクター紹介

執筆者:土肥(とひ)

株式会社ジェニュインの代表であり元エンジニア。これまでオンプレミスと AWS 環境のインフラ業務を担当。AWS 認定資格の学習で得た知識を、ハンズオンとともに解説するのが得意。直近では新人の教育も行っており、これから技術を学ぶ方が納得できる解説を心がけています。基礎編・Cloud Practitioner の記事では、解説役としても登場します。

土肥

クラウドおさる

クラウドおさる

はじめましてでござる。弊猿はクラウドおさる。IT インフラが異常に発達した猿山から、雲に乗って地上の AWS を学びに降りてきたのでござる。

クラウドおさる

基礎編や Cloud Practitioner の記事では、とひさんに素朴な疑問をぶつける役でござるな。Security - Specialty などの記事では、要所でワンポイントや注意点をひとこと添えるでござる。

クラウドおさる

猿山にもデータセンターや監視当番があって、地上で起きることはだいたい猿山にも同じ仕組みがあるのでござる。例え話がつい猿山に寄るのは、弊猿の癖でござる。

技術解説

クラウドおさる

とひさん、AWS DataSync とはどんなサービスでござるか?

土肥

DataSync は、データ転送に特化したマネージドサービスだよ。転送元と転送先の「ロケーション」を定義して、「タスク」として実行することで、データのコピーや同期ができるんだ。

クラウドおさる

転送するだけなら、弊猿がスクリプトを書いてもできそうでござるが…。猿山でもバナナ倉庫の在庫表を、毎晩当番が手で写しているでござる。

土肥

それだと転送エラーのハンドリングとか、整合性チェックとか、全部自分で実装しなきゃいけないんだよね。DataSync は転送時にデータの整合性チェックを自動的に行ってくれるから、エラーの検知・再試行も含めて信頼性の高い転送が可能なんだ。

クラウドおさる

なるほど、写し間違いの確認までやってくれるのでござるな!DataSync にはどんな部品があるのでござる?

土肥

主要なコンポーネントは4つあるよ。

コンポーネント説明
エージェントオンプレミスなど、自分で管理するストレージ環境にデプロイする仮想マシン。そのストレージと DataSync サービス間の通信を中継する。同じ AWS アカウント内の AWS ストレージ同士の転送では不要
ロケーション転送元または転送先のストレージを定義する設定。NFS/SMB サーバー、S3、EFS、FSx などを指定
タスク転送元ロケーションから転送先ロケーションへのデータ転送の設定。スケジュールやフィルタリングも定義可能
タスク実行タスクを実際に実行したインスタンス。転送結果やステータスが記録される
DataSync のコンポーネント: 2 つのロケーションをタスクでつなぎ、実行するたびにタスク実行が残る
DataSync のコンポーネント: 2 つのロケーションをタスクでつなぎ、実行するたびにタスク実行が残る
クラウドおさる

エージェントは、オンプレミスのような自前のストレージとやり取りするときに要るのでござるな。転送元・転送先には、どんなストレージが使えるでござるか?

土肥

サポートされるロケーションは結構多いんだ。こんな感じだよ。

カテゴリロケーション
オンプレミスNFS サーバー、SMB サーバー、HDFS、オブジェクトストレージ
AWS ストレージAmazon S3、Amazon EFS、Amazon FSx(Windows File Server、Lustre、OpenZFS、NetApp ONTAP)
他のクラウドAzure Blob Storage、他のクラウドのオブジェクトストレージ
土肥

AWS ストレージサービス間の転送、例えば S3 から EFS、EFS から S3 なんかもサポートされていて、同じ AWS アカウントの中ならエージェントのデプロイが不要なんだ。ただ、別のアカウントの EFS や FSx どうし(どちらも S3 ではない組み合わせ)や、他のクラウドと EFS・FSx の間で転送するときはエージェントが要るから、そこは気をつけてね。

クラウドおさる

AWS の中のサービス同士でも使えるのでござるか!タスクを作るときのオプションも気になるでござる。

土肥

タスク作成時にはいろいろな転送オプションを設定できるよ。

オプション説明
転送モード変更されたデータのみ転送するか、すべてのデータを転送するかを選択
データ検証転送後のデータ整合性チェックの方法を設定
帯域幅の制限転送に使用するネットワーク帯域を制限
スケジュール定期的なタスク実行のスケジュールを cron 式で設定
フィルタリング特定のパターンに一致するファイルを転送対象から除外または包含
クラウドおさる

スケジュールで定期実行、変更分だけの転送もできる、と。猿山の倉庫から山頂の倉庫へ、増えたバナナだけを毎晩運ぶ当番のようなものでござるな。日々のデータ同期にも使えそうでござる!

新卒・未経験の方へ
クラウドおさる

AWS を仕事にしたい方へ ── 新卒・未経験から

この記事を書いているのは、AWS の設計・構築を仕事にしている現役エンジニアです。運営元の株式会社ジェニュインでは、新卒・未経験の方も募集しています。異業種や文系からインフラエンジニアになり活躍しているメンバーもいます。

  • ✓システム開発・WEB エンジニア / インフラ構築などの職種で、未経験から応募できます
  • ✓未経験から入社した社員の声を含む社員アンケートを掲載
  • ✓応募フォームから 1 分で応募できます

実践

ハンズオンガイド7 ステップ画面 6 枚

コンソールの横に開いて、チェックしながら進めましょう。

ガイドを開く

別タブで開きます。チェックはこのブラウザに保存されます。

ここでは、Amazon S3 バケット間のデータ転送タスクを作成し、DataSync の基本的な操作を体験します。同じアカウント内の AWS ストレージ同士の転送ではエージェントのデプロイが不要なため、コンソールの操作のみで完結します。

前提条件

  • リージョン: ap-northeast-1(東京)
  • AWS マネジメントコンソールにログイン済み
  • 転送元の S3 バケットが作成済みで、1つ以上のオブジェクトが格納されていること
  • 転送先の S3 バケットが作成済みであること(空の状態)
リソース種別リソース名用途
S3 バケット(転送元)datasync-source-<アカウントID>転送元バケット
S3 バケット(転送先)datasync-dest-<アカウントID>転送先バケット
DataSync ロケーション(転送元)—転送元 S3 の定義
DataSync ロケーション(転送先)—転送先 S3 の定義
DataSync タスクs3-to-s3-transferS3 間データ転送タスク
IAM ロール(自動作成)DataSync が S3 にアクセスするための権限

転送タスクを作成する

  • AWS マネジメントコンソールにログインし、リージョンが ap-northeast-1(東京)であることを確認します
  • 上部の検索バーに DataSync と入力し、表示された「DataSync」を選択します
  • 左側ナビゲーションの「タスク」を選択します
  • 「タスクを作成する」をクリックします。タスクの作成は「送信元ロケーションを設定」→「送信先ロケーションを設定」→「設定」→「レビュー」の 4 ステップのウィザードで、転送元・転送先のロケーションもこの中で作ります

転送元ロケーションを設定する

  • 「新しいロケーションを作成」を選択し、「ロケーションタイプ」で「Simple Storage Service (Amazon S3)」を選択します
  • 以下を設定します
  • S3 URI: s3://datasync-source-<アカウントID>/ と入力します(バケット全体が対象になります)
  • S3 バケット所有者: 「This AWS account」のまま
  • IAM ロール: 「自動生成する」をクリックします。DataSync がこのバケットにアクセスするための IAM ロールとポリシーが作られ、AWSDataSyncS3BucketAccess-datasync-source-… のような名前のロールが選択されます
  • 「次へ」をクリックします
転送元ロケーション設定画面(S3 URI と IAM ロールの選択)
転送元ロケーション設定画面(S3 URI と IAM ロールの選択)

転送先ロケーションを設定する

  • 「新しいロケーションを作成」を選択し、「ロケーションタイプ」で「Simple Storage Service (Amazon S3)」を選択します
  • 以下を設定します
  • S3 URI: s3://datasync-dest-<アカウントID>/ と入力します
  • S3 ストレージクラス: 「標準」のまま(送信先にだけある項目です)
  • IAM ロール: 「自動生成する」をクリックします
  • 「次へ」をクリックします
転送先ロケーション設定画面(S3 URI の入力)
転送先ロケーション設定画面(S3 URI の入力)

タスクの設定を行う

  • 「タスクモード」で「拡張」を選択します。拡張モードは、データの一覧表示・転送・検証を並行して行うため、基本モードより高速です。S3 間の転送はどちらのモードでもできますが、タスクモードはタスクを作成したあとで変更できません
  • 「名前」に s3-to-s3-transfer と入力します
  • その他の設定はデフォルトのままにします
  • スキャンするコンテンツ: すべて
  • 転送モード: 変更されたデータのみを転送
  • 検証: 転送されたデータのみを検証
  • 「次へ」をクリックします
タスク設定画面(タスクモードとタスク名)
タスク設定画面(タスクモードとタスク名)
  • レビュー画面で設定内容を確認し、「タスクを作成する」をクリックします

タスクの詳細画面に「タスクが作成されました」と表示され、ステータスが「利用可能」になっていることを確認します。

タスク作成完了画面
タスク作成完了画面
クラウドおさる

転送元と転送先をロケーションとして登録し、それをタスクでつなぐ。同じアカウントの S3 同士の転送なので、エージェントは一度も出てこなかったでござるな。

タスクを実行する

  • タスクの詳細画面で「開始」をクリックし、「デフォルトから開始する」を選択します。確認画面は無く、すぐに実行が始まります
タスクの開始メニュー(「デフォルトから開始する」を選ぶ)
タスクの開始メニュー(「デフォルトから開始する」を選ぶ)

転送結果を確認する

  • タスクの詳細画面で「Task executions」タブを選択します
  • タスク実行のステータスが「成功」になるまで待ちます。今回は、実行の準備に 4 分ほどかかり、転送そのものは 30 秒ほどで終わりました
タスク実行の一覧(ステータスとスループットが表示されている状態)
タスク実行の一覧(ステータスとスループットが表示されている状態)
  • 実行 ID をクリックすると、転送されたファイル数やデータ量の詳細を確認できます
  • 転送先の S3 バケットを開き、転送元のオブジェクト(sample.txt と data/ 配下の 2 ファイル)がコピーされていることを確認します
クラウドおさる

タスクは一度作れば何度でも実行でき、実行のたびに履歴が残るのでござる。定期的に同期したくなったら、同じタスクにスケジュールを足せばよいでござる。

まとめ

  • AWS DataSync はオンプレミスと AWS 間、または AWS サービス間のデータ転送を自動化するマネージドサービスである
  • エージェント・ロケーション(転送元・転送先)・タスク・タスク実行の 4 つのコンポーネントで構成される(エージェントは必要な場合だけ使う)
  • オンプレミスとの転送にはエージェントのデプロイが必要だが、同じアカウント内の AWS ストレージ同士の転送では不要である(別アカウントの EFS・FSx どうしなど、AWS の中でもエージェントが要る場合がある)
  • 転送時にデータ整合性チェックが自動的に行われるため、信頼性の高い転送が可能である
  • スケジュール設定により定期的なデータ同期を自動化できる
  • S3、EFS、FSx など多様なストレージサービスをサポートしている

参照先

キャリア相談
クラウドおさる

独学の先に、AWS の仕事がある ── ジュニアおさるのキャリア相談

CLF には受かったけれど、次に何をすればいいのか分からない。独学で AWS を学ぶジュニアおさるの相談に、株式会社ジェニュイン代表の土肥が答えています。

  • ✓資格はゴールか、CLF の次に何から手を付けるか
  • ✓EC2 の次に作ってみる構成と、IaC・コスト管理
  • ✓実務経験ゼロでも、面接で話せる「これまで」の作り方
新卒・未経験の方へ
クラウドおさる

AWS を仕事にしたい方へ ── 新卒・未経験から

この記事を書いているのは、AWS の設計・構築を仕事にしている現役エンジニアです。運営元の株式会社ジェニュインでは、新卒・未経験の方も募集しています。異業種や文系からインフラエンジニアになり活躍しているメンバーもいます。

  • ✓システム開発・WEB エンジニア / インフラ構築などの職種で、未経験から応募できます
  • ✓未経験から入社した社員の声を含む社員アンケートを掲載
  • ✓応募フォームから 1 分で応募できます

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

株式会社ジェニュイン(https://genuine-pt.jp)の代表取締役.

2018年〜インフラエンジニアとしてキャリアをスタートし、オンプレミスのネットワーク・サーバ環境で3年半、クラウド環境で4年半の8年間エンジニアとして従事。
2021年に佐藤氏の創業した株式会社Luxyを引き継ぎ、代表に就任。
その後アガルートグループ内の株式会社ジェニュインと合併。
合併後同社代表に就任。

目次