こんにちは、SCSKの坂木です。
本記事では、ファイルサーバーのデータを、Amazon FSx へ移行するシナリオを想定し、AWS DataSyncを使った具体的な設定手順をスクリーンショットを交えながら、一つひとつ丁寧に解説していきます。
検証環境
実際のデータ移行では、オンプレミス環境からAWSへプライベート接続したり、セキュリティ要件でVPCが分離されていたりするケースが多くあります。
そこで本記事では、そうした本番環境に近いシナリオを再現するため、移行元と移行先の環境を別々のVPCに構築して手順を進めます。
構成の全体像は以下の図の通りです。
2つのVPC間はVPCピアリングで接続しています。各VPCに配置するリソースの役割は以下の通りです。
VPC ①:移行元環境
リソース | 説明 |
EC2 | 移行対象の共有ファイルが格納されている、既存のファイルサーバー |
DataSyncエージェント | EC2ファイルサーバーからデータを読み取り、AWS DataSyncサービスへ転送する役割を担うコンポーネント 今回はEC2インスタンスとしてデプロイする |
VPC ②:移行先環境
リソース | 説明 |
FSx | 今回のデータの転送先となる、フルマネージドなファイルサーバー |
VPC エンドポイント | DataSyncエージェントが、インターネットを経由せずにAWSのネットワーク内でDataSyncサービスと通信するためのプライベートな接続口 |
前提条件
本記事では、AWS DataSyncを使ったデータ転送の具体的な手順に焦点を当てて解説を進めます。
そのため、以下の環境がすでに構築済みであることを前提とします。
もし設定がまだの場合は、お手数ですが先に準備を完了させてから次のステップへお進みください。
1. VPCピアリングの設定
今回は移行元と移行先でVPCを分けているため、2つのVPC間が VPCピアリング によって接続され、相互にプライベートIPアドレスでの通信が可能な状態になっている必要があります。
2. 共有フォルダの作成
移行元となるEC2ファイルサーバー上に、移行対象のデータが含まれた共有フォルダが作成されていること。
この記事では、「Share_10.1.1.163」を共有するフォルダとして設定します。
3. FSxの作成
データの転送先となるFSxがデプロイされていること。
この記事ではFSxを作成したときにデフォルトで作成されるフォルダである「Share」をDataSyncの転送先フォルダとして設定します。
DataSync用のエンドポイント作成
DataSyncエージェントとDataSyncサービス間の通信が発生しますが、この通信をインターネット経由ではなく、AWSのプライベートネットワーク内で完結させることで、よりセキュアな通信経路を確保するため、VPCエンドポイントを作成します。
VPC -> エンドポイント -> エンドポイントを作成 からエンドポイントを作成します。
「サービス」の検索ボックスに datasync と入力し、表示されるサービス名を選択します。
リージョンが東京の場合、サービス名は com.amazonaws.ap-northeast-1.datasync となります。
設定を入力すると以下のようにVPCエンドポイントが作成されます。
DataSyncAgentのデプロイ先インスタンスの作成
今回はDataSyncAgentをEC2で作成します。
EC2 -> インスタンスを起動 からインスタンスを作成します。
EC2作成のAMI選択画面から、「aws-datasync」と入力すると、DataSyncAgent用のAMIが表示されるため、最新版のAMIを選択します。
DataSync エージェントを Amazon EC2 インスタンスにデプロイする場合、インスタンスのサイズは少なくとも 2xlarge である必要があるため、今回はm5.2xlargeを選択して作成します。詳細はこちらをご確認ください。
今回セキュリティグループは、VPC①と②のトラフィックを全て許可する設定としています。本番環境で設定する際には、こちらを参考に必要なポートのみ開放いただければと思います。
DataSyncのアクティベーションキーの取得
作成したインスタンスにセッションマネージャーやSSHなどでログインすると、画像のようにアクティベーションキーの設定画面が表示されます。
※ログインユーザはec2-userではなく、adminとなります。
アクティベーションキー取得のため、以下のように入力します。
質問項目 | 入力項目 |
Enter command | 0: Get activation keyを入力 |
Enter AWS Region | 利用しているリージョンを選択 今回は東京リージョンを利用しているため ap-northeast-1を入力 |
Select service endpoint type or exit | 3: VPC Endpoints using AWS PrivateLinkを入力 |
Private IPv4 or IPv6 address of VPC endpoint | 作成したエンドポイントのIPアドレスを入力 |
上記のように選択すると、「Activation key:XXXXXXXXXXXXXXXXXXX」と表示されます。
XXXXXXXXXXXXXXXXXXXの部分がアクティベーションキーとなりますので、この文字列をメモしておきます。
DataSyncエージェントの作成
DataSyncエージェントとは、データ転送元サーバと同じ環境で動作する仮想マシンであり、転送元のファイルサーバーに接続してデータを読み取り、AWSのDataSyncサービスに向けてデータを転送します。
DataSync -> エージェント -> エージェントの作成 からDataSyncエージェントを作成します。
下表のように設定値を入力します。
項番 | 項目 | 設定内容 |
1 | ハイパーバイザー | Amazon EC2を選択 |
2 | エンドポイントタイプ | AWS Privatelinkを使用したVPCエンドポイントを選択 |
3 | VPCエンドポイント | 「DataSync用のエンドポイント作成」で作成したエンドポイントを選択 |
4 | サブネット | DataSyncエージェントを作成するサブネットを選択 「DataSyncAgentのデプロイ先インスタンスの作成」で作成したEC2と同じサブネットを選択 |
5 | セキュリティグループ | DataSyncエージェントに紐づけるセキュリティグループを選択 EC2と同じセキュリティグループを選択 |
6 | アクティベーションキー | エージェントのアクティベーションキーを手動で入力するを選択 「DataSyncのアクティベーションキーの取得」で取得したアクティベーションキーを入力 |
項目を入力すると、画像のようにDataSyncエージェントが作成されます。
ロケーションの作成
続いてロケーションを作成します。
ロケーションとは、DataSyncがデータを転送する際の「送信元」と「送信先」を定義したものです。
オンプレミスのNFS/SMBサーバーや、AWSのS3バケット、EFS、FSxなどが指定できます。
送信元のロケーションと送信先のロケーションの2つを作成します。
DataSync -> ロケーション -> ロケーションを作成する からロケーションを作成します。
送信元ロケーションの作成
下表のように設定値を入力します。
項番 | 項目 | 設定内容 |
1 | ロケーションタイプ | 送信元のロケーションタイプを選択 今回はEC2の共有フォルダが送信元となるため、サーバーメッセージブロック(SMB)を選択 |
2 | エージェント | 「DataSyncエージェントの作成」で作成したDataSyncエージェントを選択 |
3 | SMBサーバー | 送信元のEC2のIPアドレスを入力 |
4 | 共有名 | 共有するフォルダ名を入力(選択するフォルダは共有フォルダに設定しておく) |
5 | 認証タイプ | NTLM認証を選択 |
6 | ユーザー | EC2の共有フォルダにアクセスできるユーザーを入力 今回はAdministratorを指定 |
7 | パスワード | 6で選択したユーザーのパスワードを入力 |
8 | ドメイン | 6で選択したユーザーの所属するドメインを入力 |
設定値を入力すると、画像のようにロケーション(送信元)が作成されます。
送信先ロケーション
下表のように設定値を入力します。
項番 | 項目 | 設定内容 |
1 | ロケーションタイプ | 送信元のロケーションタイプを選択 今回はFSxが送信先となるため、FSxを指定 |
2 | FSxファイルシステム | 送信するFSxのファイルシステム名を選択 今回は事前に作成しておいたFSxのファイルシステム名を選択 |
3 | 共有名 | FSxの送信先フォルダを入力(選択するフォルダは共有フォルダに設定しておく) |
4 | セキュリティグループ | FSxにアタッチされているセキュリティグループへ通信可能な設定されているセキュリティグループを選択 |
5 | ユーザー | FSxの共有フォルダにアクセスできるユーザーを入力 今回はAdministratorを指定 |
6 | パスワード | 5で選択したユーザーのパスワードを入力 |
7 | ドメイン | 5で選択したユーザーの所属するドメインを入力 |
設定値を入力すると、画像のようにロケーション(送信先)が作成されます。
タスクの作成
タスクとは、「どのロケーションからどのロケーションへ」データを転送するかを定義する実行ジョブです。
転送スケジュール、帯域幅制限、フィルタリング等の詳細なオプションを設定し、このタスクを実行してデータ同期を開始します。
DataSync -> タスク -> タスクを作成 からタスクを作成します。
下表のように設定値を入力します。
項番 | 項目 | 設定内容 |
1 | ロケーション | 送信元ロケーションで作成したロケーションを選択 |
2 | ロケーション | 送信先ロケーションで作成したロケーションを選択 |
3 | 設定を構成する | オプションを設定する項目で、データを転送するタイミングやログ出力など設定可能 今回はデフォルトで設定 |
設定値を入力すると、画像のようにタスクが作成されます。
ファイルの転送確認
作成したタスクから、ファイル転送を実施してみます。
ファイル転送が成功すると、実行ステータスが「成功」と表示されます。
実際にファイルが転送されているか確認します。
FSxのshare配下を確認すると、送信元インスタンスで作成したフォルダとファイルが転送されていることを確認できました。
まとめ
本記事では、AWS DataSyncを用いてEC2共有フォルダからFSxへデータを移行する手順を解説しました。
DataSyncは、DataSyncエージェント、ロケーション、タスクの簡単な設定だけで、高速かつ安全なデータ転送が可能です。
本記事では紹介していませんが、差分同期やスケジュール機能も備え、移行時のダウンタイムを最小限に抑えられる点も魅力です。
オンプレミスやEC2からのファイルサーバー移行時においては、本記事を参考にDataSyncを利用してみてください!
最後に著者の他のAWS記事を紹介させてください。
