AWS DataSync を利用したオンプレミスからのデータ転送を擬似的に体験できるワークショップをやってみた
AWS が提供するオンラインワークショップ「AWS DataSync : 大量のファイルをS3へ移行」をやってみました。本記事ではその内容と得られた知見を共有します。
ワークショップの概要
- URL: AWS DataSync : 大量のファイルをS3へ移行
- 所要時間: 約 2 時間(データ転送待ち時間込み)
- 難易度: Level 300(中上級)
- 前提条件
- AWS アカウントの所有
- マネージメントコンソールと、AWS CLI 操作に慣れていること
学習内容
このワークショップでは、EC2 インスタンスを使用してオンプレミスサーバーを模した環境を構築し、そこから約 200 万個もの大量のファイルを Amazon S3 へデータ転送に DataSync を利用するといった内容です。
画像引用: ワークショップより
オンプレミスを模倣した環境の構築には、AWS が用意した CloudFormation テンプレートを利用するので構築作業は不要です。
環境構築後は DataSync の設定を手動で行いデータ転送します。この過程で大規模データ転送に関する考慮事項や、CloudWatch を使用したパフォーマンスをモニタリングも体験できます。
実施内容は簡単にまとめると以下です。
- ハンズオン環境のセットアップ
- CloudFormation を使用したリソースのデプロイ
- NFS サーバの設定
- AWS DataSync の設定
- DataSync エージェントの作成
- ソースとデスティネーションの設定
- DataSync のタスク作成と実行
- タスクの作成
- タスクを実行し、EC2 から S3 へデータ転送
- クリーンアップ
実践内容から学んだこと
ワークショップを通じて勉強になった点を列挙していきます。
ハンズオン環境のセットアップ
まず、CloudFormation テンプレートを使用して必要なリソースをデプロイしました。EC2 の構成がわかる構成図が用意されていなく不便だったため書きました。
エージェントを 2 つ用意した理由が最初わからなかったのですが、「モジュール 5 の - フル転送」で複数タスクを並列で実行するためのものでした。
1 つのエージェントに複数タスクの実行要求するとキューに入り順次実行されること
先入れ先出し(FIFO)キューが備わっており同時実行数は 1 に制限されています。
You run different tasks that use the same DataSync agent. While you can use the same agent for multiple tasks, an agent can only run one task at a time.
https://docs.aws.amazon.com/datasync/latest/userguide/run-task.html
キューできるタスク数の上限は 50 までで、上限緩和はできない項目です。
Maximum number of queued executions for a task | 50
https://docs.aws.amazon.com/datasync/latest/userguide/datasync-limits.html
エージェントの最大転送速度
エージェントの最大転送速度は 10Gbps です。オンプレから AWS へデータ転送する場合は、インターネット経由のため充分な転送速度です。
Maximum throughput per task | 10 Gbps (for transfers that use a DataSync agent)
https://docs.aws.amazon.com/datasync/latest/userguide/datasync-limits.html
ただし、オンプレミス側に用意するエージェントの仮想マシンスペックと、ネットワーク環境に転送速度は影響受けますので、無条件で 10Gbps がでるわけではありません。
Requirements for AWS DataSync agents - AWS DataSync
まとめ
このワークショップを通じて、AWS DataSync の機能と基本的な設定方法、大規模データ移行における考慮事項を学ぶことができました。なにより手を動かしたことにより、気になってエージェントの仕様周りを調べるきっかけになったことが何より有益でした。
おわりに
オンプレミスのストレージのバックアップ先として S3 を検討しており、DataSync を久々に触ってから細かいこと調べようと思いワークショップをやってみました。やはり手を動かすとどうなってるのか気になる部分がでてきて調べることになるので学習としては良いですね。