大容量アーカイブファイルサーバーを比較的安価にAWS上で構成する方法

2023.02.20

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは。
ご機嫌いかがでしょうか。
"No human labor is no human error" が大好きな吉井 亮です。

S3 File Gateway は NFS や SMB といった一般的なプロトコルを使用して S3 バケットにオブジェクトを保存/取得できるサービスです。
仮想アプライアンスをデプロイすることでファイルインターフェイスを提供します。EC2 のみならず VMware ESXi、Hyper-V、KVM 上の仮想マシンにデプロイ可能です。
S3 をストレージに持ちことで、オンプレミスストレージと比較し安価なソリューションを実現します。

大容量アーカイブファイルサーバーとしての使い道

ファイルサーバーとして活躍する S3 File Gateway ですが、今回はアーカイブファイルサーバーとしての使い道を考えます。
下の図は公式ドキュメントのリンクです。最右に S3 Glacier が表示されています。そうです。 S3 Glacier を使って大容量のファイルサーバーを比較的安価に構築します。

image
https://docs.aws.amazon.com/filegateway/latest/files3/file-gateway-concepts.html より

このようなユースケースを想定しています。

  • ほぼ参照しないファイルサーバー
    • 完了した過去プロジェクトデータを保管
    • 年に1回あるかないかくらいの参照頻度
  • 法や規制によって長期間保管が義務付けられているファイル類、でも参照はほぼしない
  • SMB や NFS でマウントだけしておきたい
    • 使いたくなったら翌日くらい使いたい

ランニングコストの比較

S3 Standard と S3 Glacier Deep Archive の保管コストを比較してみます。
以下は 2023/02/20 現在の東京リージョンの保管コストです。

クラス 料金
S3 Standard 最初の 50 TB/月 : 0.025USD/GB
次の 450 TB/月 : 0.024USD/GB
500 TB/月以上 : 0.023USD/GB
S3 Glacier Deep Archive すべてのストレージ/月 : 0.002USD/GB

100TB 保管すると以下になります。かなりの効果です。
ただし、注意してほしいのは保管料金のみということです。S3 Glacier はストレージクラスの移行や取り出しに費用がかかります。ユースケースに記載した通り、ほとんど参照が無いファイルサーバーでの活用を検討ください。

クラス 100TB 保管料金
S3 Standard 2,508.80 USD
S3 Glacier Deep Archive 206.45 USD

やってみた

以下図のような構成にします。

S3 作成

ストレージとなる S3 バケットを作成します。
ライフサイクルはこの時点では設定しません。
一般的な手順だと思いますので、S3 バケット作成手順は割愛します。

S3 File Gateway 作成

マネジメントコンソールから S3 File Gateway を作成します。

「Amazon S3 ファイルゲートウェイ」を選択します。

今回は EC2 を選択、VPC とパブリックサブネット、キーペアを指定しています。

残りは次へ次へと進みます。


ファイル共有の作成

S3 File Gateway を作成したら、次はファイル共有の作成です。
今回は Windows 環境で試したかったので SMB を選択しています。
ユーザー認証はゲストアクセスを選択です。AD サーバーが存在する場合はそちらでの認証も可能です。

数分待つとファイル共有のステータスが「利用可能」になります。

マウント

Windows Server からマウントします。通常の Windows ファイル共有と同じく「\S3FileGatewayのIPアドレス\S3バケット名」でマウントします。

テスト用に画像ファイルを置きました。
Windows 標準のペイントで開けました。S3 File Gateway の設定はこれで完了です。

S3 Glaicer へ

S3 バケット上の画像ファイル RyoYoshii.PNG を RyoYoshii-01.PNG にリネームし、かつ、 Deep Archive へ移行します。
リネームしたのは RyoYoshii.PNG がキャッシュに残っているためです。普段のオペレーションでリネームは必要ありません。ブログ用の操作です。

開いてみる

S3 へ直接アップロードしたファイルは、そのままではクライアントから参照できません。
S3 File Gateway でキャッシュの更新を行います。更新後は Windows ファイル共有で表示されるようになります。

ペイントで開いてみましょう。読み取りエラーになりました。

復元する

アーカイブから復元します。
今回はマネジメントコンソールから復元します。復元手順は Restoring an archived object が詳しいです。

Windows マシンからアクセス

S3 上で復元が完了しました。Windows マシンから S3 File Gateway 経由でアクセスしてみます。
今回はペイントで開けました。

自動化

アーカイブからの復元を自動化したい場合は、以下の AWS ブログを参照ください。

まとめ

参照が年に1回あるかどうかといったアーカイブ目的のファイルサーバーを比較的安価に構成する方法を紹介しました。
SMB や NFS での参照が必須でなければ、そのまま S3 Glacier に格納する方式を検討ください。今回紹介した方法はかなりレアケースだと考えています。

参考

What is Amazon S3 File Gateway

以上、吉井 亮 がお届けしました。