WindowsのネットワークストレージとしてAWSのS3を使う事を検討してみた
「AWSでEC2上に構築したサーバー内に保存されるファイルをS3に保存したい」と考えています。
オンプレミス環境下で動いてたプログラムをそのまま利用している事もあり、プログラムの設定を変える必要があるかもしれません。
そうなると周りに設定等を説明する必要があるので、利用方法を検討してみることにしました。
検討している環境について
検討についての条件はこんな感じです。
- クライアントはDHCPでインターネットに接続されているWindowsマシン
- インターネット接続はモバイルや一般回線でVPN接続は検討しない
- 保存先はEC2で動作しているサーバーにSFTPで接続したディレクトリ
- Windowsマシンからはネットワークドライブとして認識させる
- ネットワークドライブのマウント方法はSFTP Net Driveを使用する
- クライアントのWindowsマシンからフォルダとそのフォルダを圧縮したZIPファイルがネットワークドライブに保存、という形でアップロードされる
- ファイルとフォルダは延々増え続ける
- ZIPファイルは受信次第別のサーバーへ転送する
問題は「特定のファイル(複数の画像ファイル)とフォルダが延々増え続ける」という点です。
EC2上に保存しているのでEBSの容量(と追加コスト)が必要になる事と、容量を定期的に確認する必要がある事、拡張時にサーバーを止める必要がある事がネックになっています。
これがS3に出来れば拡張等の手間も無くなり、さらにコスト面でもメリットがあるので実現できれば、と言う事で検討を始めました。
具体的に検討してみる
CLIを試した所、クライアントから直接S3へのアップロードもダウンロードもあっさり出来ました。
だけどネットワークドライブとしては認識させられません。なのでこの方法はダメ。もう少しいい方法無いかなぁと検討しようというのが今回の目的です。
サーバーのプログラムが変更出来れば、または転送用の専用アプリが開発できればいいのですがどちらもリソースがない為不可です。
またCLIを使う場合、設定が利用者にも丸見えになる可能性が高い事や初期設定が面倒な事もあって消極的な捉え方です。
おわりに
この問題は単純にEC2のストレージとしてS3をアタッチしてやればいいだけな気がします。
なんで変に悩んだのかなぁ。現行の設定を変更しない事を大前提に考えていたからな気がします。
AWS Transfer for SFTPというサービスも始まりましたのでもう一度考え直した方がいいのかもしれません。