Amazon FSx for NetApp ONTAP のデータを AWS DataSync でAmazon S3 に移行する
皆さんは普通に暮らしている中で、しかもNetAppを触ったことないのに、NetAppのデータをS3へ移行することになった経験はありますでしょうか?私はあります。
とうことでやってみました。やってみて思いましたが、NetAppを使ったことがないのであれば普通検証環境の構築やその環境を触れるようになるまで数週間を要します。クラウドを使うことでほぼ数時間でなんとかなりました。クラウドの学習効率の高さを改めてまざまざと体験しました。またAWSはほとんどのドキュメントは公開されており、かつエコシステムに生息する皆さんが積極的にブログなどで情報共有をされていることも調査にかなり役に立ちました。改めてエコシステムの皆さんに感謝です。
ではまずサービスの解説から。
Amazon FSx for NetApp ONTAP から
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を会話させます。
(図はWindows File Server を移行しているので、ADがくっついていますが、今回のシナリオでは不要です)
DataSync Agentという移行をつかさどるサーバ(EC2やKVM,Hyper-V,VMWareなどの仮想基盤上に構築するソフトウェアアプライアンスみたいなもの)はなるべくストレージとネットワークレイテンシが極小化された場所に配置することをAWSは推奨しています。EC2を使えば楽なんですが、オンプレミスの場合そのシナリオは推奨されていません。
またDataSyncもFSxと同じように専用ネットワーク上にコントロールプレーン本体は存在しています。そことDataSyncAgentをインストールしたEC2がENIを通じで通信を行います。
(2025/03/14追記)
こんな指摘がありました!
もともとこの環境はオンプレミス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設定などを行って起動させます。
セキュリティグループは以下に従って設定します。
(面倒なので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