はじめに
皆様お疲れ様です。
オンプレミスのファイルをAWS環境に保管する際に思い浮かぶのが「Storage Gateway」と「Data Sync」でした。
Storage Gatewayでのバックアップも行ったので今度投稿してみたいと思います。
さて今回はAWS DataSyncを使用して、オンプレミスFileサーバーをS3にバックアップしてみたいと思います。
構成図・目次
下記の構成図にある通り今回はEC2にData Syncエージェントを構築いたしました。
皆様は環境によってEC2やVMなどにデプロイしてください。
構成図
Site to Site VPNやサブネットなどのAWS環境、オンプレミス環境はすでに動いている環境を使用します。
目次
Data Syncエージェントの作成
AWS環境外のオンプレミスなどからAWS環境にデータを移行する際には、必ずDataSyncエージェントが必要になってくるので、EC2にData Syncエージェントをデプロイしていきます。
DataSyncエージェントは、VMWare/カーネルベースの仮想マシン/EC2/Microsoft Hyper-vでデプロイできます。
サービスにアタッチするセキュリティグループの作成
VPCエンドポイント、DataSyncエージェントのセキュリティグループを作成します。
要件はこちらのAWS公式ドキュメントから参照ください。
VPCエンドポイントの作成
今回は外部には出ずVPNを使用してデータ移行をするので、AWSの公開エンドポイントは使用せず作成したものを使用します。
VPCコンソール画面の左ペインから「エンドポイント」→「エンドポイントを作成」を押下。
サービスカテゴリで「AWSのサービス」を選択、サービスで「DataSync」と入力し出てきたサービスを選択し、VPCを作成したものを選択し「エンドポイントを作成」を押下して完了。
作成したエンドポイントを選択、「アクション」→「セキュリティグループの管理」を押下。
VPCエンドポイント用のセキュリティグループを選択し、「セキュリティグループの変更」を押下。
DataSyncエージェントのデプロイ
最初にこのコマンドをAWS CLIで流し、最新のDataSync AMIのIDを確認します。
aws ssm get-parameter --name /aws/service/datasync/ami --region region
(最後のregion部分を構築するリージョンに変更して流してください。)
例)
EC2コンソール画面から「インスタンスを起動」を押下。
AMIイメージの検索バーに、取得したDataSyncAMIイメージを張り付け検索します。
画面が遷移しますので、「コミュニティAMI」に1つだけAMIが出てきますのでそちらを選択し画面が再遷移します。
インスタンスタイプは要件があり、
・m5.2xlaarge
最大2000万個のファイルを転送するタスク
・m5.4xlaarge
2000万個を超えるファイルを転送するタスク
(もう1つあるのですが、Snowcone用なので割愛します。)
この要件に照らし合わせながら選んでください。
・キーペア-既存または新規作成したもの
・VPC-作成したものを
・サブネット-FSxと同じ
・パブリックIPの自動割り当て-有効化
・セキュリティグループ-エージェント用に作成したもの
そのほかはデフォルトのまま「インスタンスを起動」を押下。
DataSyncエージェント作成
DataSyncのコンソール画面左ペインから「エージェント」→「エージェントを作成する」を押下。
エージェントをデプロイするウィンドウのプルダウンから「EC2」を選択。
エンドポイントを作成したもの、アクティベーションキーを「エージェントからアクティベーションキーを自動的に取得する」を選択し、アドレス欄にエージェントEC2のパブリックIPを入力し「キーを取得する」を押下。
取得できたら、エージェントの名前やタグを入力して「エージェントを作成」を押下して完了。
Fileサーバーのバックアップ(SNB)
ここからはFileサーバーのバックアップに入っていきます。
FileサーバーがWindowsサーバーで稼働しているので主にSMBのバックアップについて記載します。
NFSもほぼ同様の方法で行えるので、後ほど記載いたします。
またフルバックアップと差分バックアップの方法も記載いたします。
タスクの設定
DataSyncコンソール画面から、「タスク」→「タスクを作成する」を押下。
送信元のロケーションのオプションで「新しいロケーションを作成する」を選択、
設定のロケーションタイプで「サーバーメッセージブロック」を選択、
エージェントで作成したエージェントを選択、
SMBサーバーでIPアドレスを入力、
マウントパスで、SMBサーバーのバックアップしたいファイルを入力し次へを押下。
ユーザー設定でSMBサーバーへのアクセス権を持つユーザー情報を入力します。
送信先のロケーションのオプションで「新しいロケーションを作成する」を選択、
設定のロケーションタイプで「S3」を選択、
S3バケットでバックアップを保管したいS3バケットを選択、
S3ストレージクラスを選択、
フォルダでS3のバックアップ先フォルダを入力し次へ、
IAMロールでS3 バケットにアクセスするためのポリシーがあるロールを選択し次へ。
タスク名を任意、
Source data optionsはデフォルトのまま、
Transfer optionsのTransfer modeは最初のフルバックでは「Transfer all data」、その後の差分バックアップでは「Transfer only data that has changed」を選択する。
そのほかはデフォルトのまま次へを押下。
確認画面で間違いなければ「タスクを作成する」を押下して完了。
タスクの実行
DataSyncのコンソール画面から、作成したタスクを選択して「アクション」→「開始」を押下してタスクを実行する。
ステータスが成功になれば完了。
タスク実行結果
タスクが成功したら保管先のS3を確認してみます。
S3のバックアップ先フォルダを選択して中身を確認すると、空だったフォルダにオブジェクトが入っています。
差分バックアップ
先ほどフルバックアップしたタスクを選択し「アクション」→「編集」を押下します。
Transfer optionsのTransfer modeで「Transfer only data that has changed」を選択し変更を保存を押下します。
再度タスクを実行すると、送信先S3バケットに追加されています。
赤枠の時間を見ていただくとわかります。
Fileサーバーのバックアップ(NFS)
SMBのバックアップとほぼ同様なのですが記載させていただきます。
こちらはフルバックアップ方法のみ記載いたします。(差分バックアップの方法は同様のため、上記に記載されているものを参照ください。)
タスクの設定
DataSyncコンソール画面から、「タスク」→「タスクを作成する」を押下。
送信元のロケーションのオプションで「新しいロケーションを作成する」を選択、
設定のロケーションタイプで「ネットワークファイルシステム」を選択、
エージェントで作成したエージェントを選択、
NFSサーバーでIPアドレスを入力、
マウントパスで、NFSサーバーのバックアップしたいファイルを入力し次へを押下。
送信先のロケーションのオプションで「新しいロケーションを作成する」を選択、
設定のロケーションタイプで「S3」を選択、
S3バケットでバックアップを保管したいS3バケットを選択、
S3ストレージクラスを選択、
フォルダでS3の移行先フォルダを入力し次へ、
IAMロールでS3 バケットにアクセスするためのポリシーがあるロールを選択し次へ。
タスク名を任意、
Source data optionsはデフォルトのまま、
Transfer optionsのTransfer modeは最初のフルバックでは「Transfer all data」、その後の差分バックアップでは「Transfer only data that has changed」を選択する。
そのほかはデフォルトのまま次へを押下。
確認画面で間違いなければ「タスクを作成する」を押下して完了。
タスクの実行
DataSyncのコンソール画面から、作成したタスクを選択して「アクション」→「開始」を押下してタスクを実行する。
ステータスが成功になれば完了です。
タスク実行結果
こちらが1回目のフルバックアップの結果です。
3つのオブジェクトが入っています。
2回目の差分バックアップもしっかり取れました。
まとめ
今回はS3にオンプレミスFileサーバーのバックアップを取る方法を記載しました。
Data Syncのタスクスケジュールで1日1回や毎時などの設定を行えば、設定した時間ごとや毎日21時などにバックアップを行うことができます。
また、AWS Backupと併用すればより強固になるのかなとも思います。