【Storage Gateway】AWS S3ファイルゲートウェイで自動バックアップフローを構築してみた
さまざまなゲートウェイタイプがあるなかで、最も利用用途が多そうなS3ファイルゲートウェイで自動バックアップフローを構築してみました。
いくつか引っ掛かったポイントがありますので、それらも踏まえて解説していきます。
システム全体概要
最終的な全体の構成はこのようになります。

説明のために各ソリューションに番号を振りました。
- データのコピー元となるEC2:実運用ではオンプレのサーバというケースもあります。
- Storage Gateway:今回はEC2で仮想サーバを立てます。
- データコピー先のS3:バックアップ用のバケットを作成します。
事前準備
まずは「コピー元のEC2」と「コピー先となるS3バケット」を準備しておきます。
コピー元となるEC2をたてる

まずはEC2の構築。サイズなどは何でも問題ありませんが、コピー元となるディレクトリは作成しておく必要があります。
$ sudo mkdir /source-storage
マウント先となるS3バケットの準備

次にS3にバケットを作成します。
ゲートウェイの作成
今回は Amazon S3 ファイルゲートウェイを選択します。

EC2の準備

プラットフォームとしてECを選択すると、ゲートウェイのセットアップに向けた手順が表示されます。
ゲートウェイ用のEC2を準備するには「インスタンスを起動」ボタンから遷移すると手早く作業ができます。

EC2インスタンス作成画面に遷移すると、Storage Gateway用のAMIが指定された状態になっています。

選択済みのAMIでEC2を立ち上げます。
インスタンスタイプはm5.xlargeが推奨されていますので、AWSに従ってこちらを選択します。
EBSについては追加で150GiB が必要になります。ここで正しく追加していないと、あとでゲートウェイ用のキャッシュストレージが選択できなくなります。
ポイント
NFSを利用するため、セキュリティグループでNFAの設定も追加します。
HTTPとNFAが設定されていれば問題ありません。

一通り設定が完了しました。
システム構成は下記のような状態になっています。IPアドレスは環境ごとに異なった値が割り振られているはずです。

ゲートウェイの設定
作成したEC2 StorageGatewayの設定を行っていきます。

IPアドレスはシステム構成図でいうと「36.2.2.2」の部分です。

キャッシュストレージの設定は正しくEBSが追加されていれば自動で認識されます。


ゲートウェイの設定が完了しました。
ファイル共有の設定
次にファイル共有の設定を行います。こちらは画面に従って設定していけば問題はないと思います。
許可されたクライアントの設定部分はマウント対象のEC2のPrivate IPアドレスになります。システム構成図の①のEC2です。お間違いのないよう。
マウントの設定

マウントの設定に必要なコマンドは、StorageGatewayのコンソールから設定を辿り、赤枠部分に表示されています。
こちらをマウント対象のEC2に設定します。
sudo mount -t nfs -o nolock,hard 192.168.1.160:/storage /source-storage
これでマウントも完了です。
マウント対象EC2の/source-storageディレクトリにファイルを作成すると、S3にも非同期でコピーされることが確認できれば作業は完了です。