📚

Amazon FSx for NetApp ONTAP のデータを AWS DataSync でAmazon S3 に移行する

2025/03/13に公開

皆さんは普通に暮らしている中で、しかもNetAppを触ったことないのに、NetAppのデータをS3へ移行することになった経験はありますでしょうか?私はあります。

とうことでやってみました。やってみて思いましたが、NetAppを使ったことがないのであれば普通検証環境の構築やその環境を触れるようになるまで数週間を要します。クラウドを使うことでほぼ数時間でなんとかなりました。クラウドの学習効率の高さを改めてまざまざと体験しました。またAWSはほとんどのドキュメントは公開されており、かつエコシステムに生息する皆さんが積極的にブログなどで情報共有をされていることも調査にかなり役に立ちました。改めてエコシステムの皆さんに感謝です。

ではまずサービスの解説から。

Amazon FSx for NetApp ONTAP から

https://aws.amazon.com/jp/fsx/netapp-ontap/
AWSが提供数するNetApp の人気ファイルシステムである ONTAP 上に構築された、フルマネージド型共有ストレージサービスです。

Amazon DataSync

AWSが提供するデータ移行のマネージドサービスです。
ソースをAWSのストレージサービス(S3, FSx, EFS, EFS)だけではなくオンプレミスのNFS,SMBとして設定することも可能です。というより本来はそっちで寧ろ使われるサービスでしょう。
移行ジョブの帯域制限、移行ファイルの整合性確認、差分移行、などの機能が備わっています。

さっそくやってみる

0.NWと構成図説明

この手順ではオンプレミスネットNetAppストレージではなく、Amazon FSx for NetApp ONTAPをAWS上に起動してそれをS3へ移行します。

こんな感じで環境を作成していきます。SubnetはPrivateでもPublicでも手順は同じです。私はアクセスしやすいようにDataSyncAgentをPublicサブネットに建てました。(外からログインしやすいので)FSx for NetApp ONTAPは専用Network環境に構築され指定したサブネットにENIをはやして利用する形態になります。オンプレミスNetAppストレージの場合、当然DXかVPN経由でNFS/SMBを会話させます。

https://aws.amazon.com/jp/blogs/news/datasync-fsx-one-month-migration/
(図はWindows File Server を移行しているので、ADがくっついていますが、今回のシナリオでは不要です)
DataSync Agentという移行をつかさどるサーバ(EC2やKVM,Hyper-V,VMWareなどの仮想基盤上に構築するソフトウェアアプライアンスみたいなもの)はなるべくストレージとネットワークレイテンシが極小化された場所に配置することをAWSは推奨しています。EC2を使えば楽なんですが、オンプレミスの場合そのシナリオは推奨されていません。
またDataSyncもFSxと同じように専用ネットワーク上にコントロールプレーン本体は存在しています。そことDataSyncAgentをインストールしたEC2がENIを通じで通信を行います。

(2025/03/14追記)
こんな指摘がありました!
https://x.com/non____97/status/1900137543896875288

もともとこの環境はオンプレミスNetAppをNFSとしてS3へ移行させるためのリハーサル兼DataSyncAgentのサイジング検証用として作成しているのでDataSyncAgentが必須なのですが、単純にFSx for NetApp ONTAPを移行したい場合はこちらを使いましょう!
またFSx for NetAppONTAPとNFSではDataSyncの挙動が少し異なるので次回の記事でそちらを解説していきます。

1.VPC構築

ではまず東京リージョンにVPCを作成します。
VPCを作成をクリックします。

設定値は以下のスクショの通りです。




出来上がったサブネットの設定を編集します。

IPv4アドレスの有効化をオンにしておきます。

やらなくてもよいですが、やっておかないと今後起動するEC2に逐一EIPを付与しないといけないのでとても面倒です。

2. FSx for NetApp ONTAP 構築

では移行元のNetApp ONTAPを構築します。前述の通りFSx for NetApp ONTAPは専用ネットワーク上に配置されENIを指定したサブネットに生やす形態をとります。

FSxのマネージメントコンソールからファイルシステムの作成をクリックしNetAppを選択し次へをクリックします。

最小構成の1TiBで先ほど作成したVPCに構築します。

次の画面でファイルシステムの作成をクリックします。

作成中となりますので完了するまで待ちます。

セキュリティグループは以下のドキュメントに内容に従い設定を行うことを推奨しますが、どうせ同じVPN内からしかアクセスさせないのでこの手順ではいったんインバウンド,アウトバウンド両方で0.0.0.0/0からTCP,UDPを受け付けれるようにします。
ステータスが利用可能となればOKです。

2.1 EC2からのNFSマウント

では作成されたNetAppにEC2からNFSでアクセスを行います。まずは作成されたFSxのSVMエンドポイントを入手します。FSx for NetApp ONTAPは

管理エンドポイント
クラスター間エンドポイント
SVM用管理 DNS 名
SVM用NFS DNS 名
SVM用iSCSI DNS 名

の5つが作成されていますが、必要なのはSVM用NFS DNS 名です。(SVM用管理 DNS 名と同じ値になっているはずです)
ストレージ仮想マシンをクリックします。

作成されたSVMをクリックします。

エンドポイントタブの情報をコピーします。

次にPublicSubnetにAmazon Linux 2023 EC2を起動しログインします。(この手順は割愛します)
セキュリティグループは以下とします。
インバウンド

(ソースをEC2インスタンスコネクトエンドポイントとしています)
アウトバウンド

(デフォルトのまますべて通信可能としています)
次に以下のコマンドを実行します。

sudo mkdir /fsx
sudo mount -t nfs <SVM用NFS DNS 名>:/vol1 /fsx
cd /fsx

sudo viなんかで適当にファイルを作成しておきます。(あとで正しくS3へコピーされたかの確認様です)

3. DataSyncの起動とDataSyncAgent設定

3.1 DataSync用VPCエンドポイントの作成

次に行うのはDataSyncの設定です。DataSyncはコントロールプレーンがDataSyncAgentが稼働してるインスタンス(この例でいえば今から専用に起動させるEC2ですが、オンプレミスストレージであればHyperV,KVM,VMWareなどで作成する必要があります)を管理する形態をとります。


まずはVPC内部でDataSyncAgentとDataSyncの通信が閉じるようにDataSync用VPCエンドポイントを作成します。
VPCマネージメントコンソールからエンドポイントをクリックします。

エンドポイントを作成をクリックします。

DataSync用エンドポイントDNS名を指定します。

VPCエンドポイントを作成するVPCとサブネットを選択します。この際DNS名の有効化オプションを外します。


セキュリティグループはデフォルトを一度選択しますが後で作り直します。

最後にエンドポイントを作成をクリックします。

エンドポイントが来たら次にDataSyncVPCエンドポイント専用セキュリティグループを作成します。
わかりやすい名前を付けてVPCを指定します。

次に以下の通りインバウンドとアウトバウンドのルールを指定します。


インバウンドのソースに指定すべきDataSyncAgentやDataSyncタスク用ENIはまだ作成していないため0.0.0.0/0となっています。後ほど必要に応じてソースを絞ってください。
無事作成出来たら、DataSync用VPCエンドポイントのセキュリティグループを入れ替えます。

3.2 DataSyncAgentの起動

EC2にDataSyncAgentをインストールする場合、EC2を起動してからインストールするのではなくて専用AMIを起動する必要があります。

まずクラウドシェルで以下を実行します。

aws ssm get-parameter --name /aws/service/datasync/ami --region ap-northeast-1
{
    "Parameter": {
        "Name": "/aws/service/datasync/ami",
        "Type": "String",
        "Value": "ami-0effd11646784e8e8",
        "Version": 111,
        "LastModifiedDate": "2025-03-05T14:22:46.380000+00:00",
        "ARN": "arn:aws:ssm:ap-northeast-1::parameter/aws/service/datasync/ami",
        "DataType": "text"
    }
}

ami-0effd11646784e8e8が今から起動するAMIのIDです。
次に以下のURLにブラウザでアクセスします。

https://console.aws.amazon.com/ec2/v2/home?region=ap-northeast-1#LaunchInstanceWizard:ami=ami-0effd11646784e8e8

いつもと少し違う画面がでますが、VPC設定などを行って起動させます。

セキュリティグループは以下に従って設定します。
https://docs.aws.amazon.com/ja_jp/datasync/latest/userguide/datasync-network.html#on-premises-network-requirements
(面倒なので0.0.0.0/0 すべてのTCP/UDPとしたいところですが、もう50を超えたいい大人です。頑張って設定します)

インバウンドとアウトバウンドは以下の通りとします。


設定が完了したらブラウザからhttpでDataSyncAgentのEC2IPアドレスにアクセスします。**IPアドレスだけを入力するとhttpsへの接続を試みるので、必ずhttp://<IPアドレス>としてください。

このように表示されればDataSyncAgentが起動しています。ここにDataSyncサービス本体からアクセスを行うとアクティベーションが行われこの画面は閉じられます。

3.3 DataSyncサービス本体からDataSyncAgentの登録

DataSyncマネージメントコンソールからエージェントをクリックします。

エージェントを作成するをクリックします。

EC2を指定します。デプロイするとは記載されていますが、すでに作成したものを認識されるだけです。

先ほど作成したDataSync用VPCエンドポイントを指定します。

先ほどブラウザからアクセスしたIPアドレスを入力してキーを取得するをクリックします。

このように無事キーが取得できれば成功です。

エラーが出る場合はほぼセキュリティグループの設定が間違っていますので見直して再試行してください。
最後にエージェントを作成するをクリックします。
これでDataSyncAgentがDataSyncサービスの管理配下になりました。

3.4 ロケーションの登録

次に行うのはロケーションの登録です。ソースであるFSxとターゲットであるS3の2つを作成します。

3.4.1 ロケーションの登録 FSx

ロケーションをクリックします。

ロケーションを作成するをクリックします。
すでに作成済のFSxを認識させます。

3.4.1 ロケーションの登録 S3

先ほどと手順は同じです。バケットは適当なものをあらかじめ作成しておきます。


無事2つできれば完成です。

4.タスクの実行

ではいよいよタスクの作成と実行です。


送信元にFSxのロケーションを選びます。

送信先にS3のロケーションを選びます。

ファイルは全件移行と差分移行がありますが、全件を選びます。


CloudWatch Logsは自動生成でロググループを作成します。

次へをクリックしてタスクを作成します。
最後にいよいよ実行です。

無事コピーされています。

お疲れさまでした。

Discussion