APC 技術ブログ

株式会社エーピーコミュニケーションズの技術ブログです。

株式会社 エーピーコミュニケーションズの技術ブログです。

Amazon FSxへのデータ移行をやってみる(step5)

こんにちは、株式会社エーピーコミュニケーションズ、クラウド事業部の松尾です。


はじめに

この記事は以下の手順を紹介する内容となっています。

aws.amazon.com

前回までにNo4まで完了しています。本記事ではNo5を紹介します。

  1. オンプレミスのADとAWS Managed Microsoft AD間に双方向の信頼を設定する
  2. ADMT等のツールでユーザーアカウントとグループを移行する
  3. ファイルサーバー上のアクセス権限であるAccess Control List(ACL)を複製する
  4. 移行先へAmazon FSxを作成する
  5. AWS DataSyncを利用し、既存のACLを保ったままファイルとフォルダをAmazon FSxに移行する

ゴール

  • 移行元環境のフォルダを移行先環境へ、フォルダのACLを保ったまま移行すること
  • 移行手法はAWS DataSync
  • 移行元環境はEC2に構築したSMB ファイルサーバ
  • 移行先環境はAmazon FSx for Windows ファイルサーバー

環境

DataSyncAgentを移行元環境へ構築しアクティブ化を行ったのち、移行先環境へDataSyncを使ってデータを移行してみます。

赤線内が今回の作業範囲


AWS DataSyncとは

まず最初にDataSyncのアーキテクチャを再確認します。

AWS DataSync公式ドキュメント

AWS DataSync転送の仕組み - AWS DataSync

によると、このような構成になります。

上記公式ドキュメントより

いくつか方法はありますが、今回DataSyncAgentはEC2として構築することにします。(移行元環境がAWSであるため)

DataSyncエージェントをデプロイ

ここからは以下を参考に実施していきます。

docs.aws.amazon.com

まずはDataSyncAgentのAMIからEC2を起動していきます。 数字の新しいものを選択。

datasyncエージェントのAMIたち

インスタンスタイプは2Xlarge以上が求められます。 今回はリンク先で推奨されている「m5.2xlarge」にしてみます。

docs.aws.amazon.com

セキュリティグループは、

docs.aws.amazon.com

にインバウンド、アウトバウンドの要件がありますが、今回は検証のため、インバウンドに自端末からHTTP80の許可のみ設定し、アウトバウンドは全許可としました。 HTTP80の許可はDataSyncエージェントのアクティベーション時のみに必要で、アクティベーション後には不要になるため閉じることが推奨です。


サービスエンドポイントの選択

参考手順

今回はサービスエンドポイントは、「VPCエンドポイント」を選択してみます。

エンドポイントを作成していきます。

サービスにはdatasyncで検索

完成

使用可能になった

エージェントのアクティベーション

AWS DataSync から「エージェントを作成」

やっとDataSyncAgent作成まできました

パラメータを入力し「キーを取得する」
「エージェントのアドレス」はグローバルにIP到達性があることが必要そうで、EC2のプライベートIP プライベートIPでは失敗しました。今回はグローバルIPをパラメータとして進めています。

エージェントパラメータ1

エージェントパラメータ2

アクティベーションキーの取得に成功すると確認画面になります。 エージェント名とタグを設定して「エージェントを作成する」

確認画面と

エージェント名とTags

エージェント作成完了!

エージェント作成

ロケーションの作成

参考手順

データを転送するには「タスク」という単位で行います。「タスク」は「ソースロケーション」から「デスティネーションロケーション」へ転送する形に設定していきます。


ソースロケーション

送信元の設定です。今回は移行元環境に構築した共有フォルダを設定します。
移行元環境にはSMB ファイルサーバを構築済みです。 通信要件はこちらを参考にしてください。

「ロケーションを作成する」をクリック

ロケーション作成

パラメータを入力

パラメータ1

パラメータ入力後、「ロケーションを作成する」をクリック

パラメータ2

ソースロケーションの作成完了

ソースロケーション作成完了

デスティネーションロケーション

ソースロケーションと同様にデスティネーションロケーションも作成していきます。

ロケーションタイプにFSxを選択

パラメータ1

ユーザーにはAWS Managed Microsoft ADのユーザを設定

パラメータ2

タスクの作成

ソースロケーションとデスティネーションロケーションが作成できたので「タスク」を作成していきます。

「タスク」から「タスクを作成する」をクリック

タスク

作成したソースロケーションを選択

ソースロケーション

作成したデスティネーションロケーションを選択

デスティネーションロケーション

タスク名の他は詳細パラメータです
今回はロギングを無効にしたのみで他はデフォルト値としました。


スケジュールも無しで手動実行とする

検証なのでロギングも無し

レビュー画面で内容を確認し「タスクを作成する」をクリック

ようやくタスク作成

データの移行

タスクの「アクション」から「開始」をクリックして開始する

手動実行

ステータスが実行中に遷移

スタータスは自動では更新されなかった

タスクが完了後、「履歴」から実行結果を確認する

成功している

今回は3ファイルだけだったので参考にならないがデータ転送パフォーマンスも確認可能

パフォーマンス

移行先のEC2でマウントしたファイルサーバ(FSx)にフォルダが移行されていることが確認できた

.aws-datasyncフォルダはどこから...

ファイル権限エラー

事象

移行後のフォルダへアクセスしようとするとエラーになってしまった。
フォルダのACL設定なのかDatasync設定なのか、別途調査予定。

アクセスエラー

原因

原因は移行したフォルダのACLで許可されていないユーザでアクセスしようとしていたためでした。
移行方法に問題は無く、確認しようとしたユーザ(AWS Managed Microsoft ADのAdmin)が間違っていた、ということになります。


対応

フォルダのACLで許可されたユーザでフォルダアクセスを確認していきます。

読み書き可能な「hr-user」では、HRフォルダへファイルを作成(書き込み)が出来ることを確認。

hr-user

読み取りのみ可能な「hr-r-user」では、HRフォルダへファイルを作成(書き込み)が出来ないことを確認。

hr-r-userではHRフォルダ内にファイルを作成できない

ENGフォルダへはアクセスが不可。

hr-r-userのENGフォルダへのアクセスエラー


まとめ

AWS DataSyncAgentはAMIで提供されていたので構築は手軽でした。 DataSyncの設定としても「ロケーション」と「タスク」にアーキテクチャが分かれていて、分かりやすいものでした。
全体としては、AD構築やAD移行のフェーズも含めたため手順が増えてしまいましたが、無事データの移行まで完了できました。
実際、ファイルサーバ移行とActiveDirectory移行はセットになることは多いので、設定の流れやアーキテクチャの整理になったかと思います。 セキュリティグループを広めに空けていたり、エラーとなった箇所もあったのでまだまだ改善すべき部分はありそうです。


おわりに

私達クラウド事業部はAWSなどのクラウド技術を活用したSI/SESのご支援をしております。

www.ap-com.co.jpwww.ap-com.co.jp

また、一緒に働いていただける仲間も募集中です! ご興味持っていただけましたらぜひお声がけください。

www.ap-com.co.jp