検証環境としてAWS Transfer for SFTPを使う

ここ数年、夏に北海道旅行するのが定番になっていたのですが、さすがに今年は行けそうにない。つらたん。

検証用のSFTPサーバが欲しい

toBな仕事をやっていると、「SFTPサーバにログインして、ファイルを(アップロード|ダウンロード)してください」みたいなことはよくありますよね。
そして、いざ開発をしているときには、検証用のSFTPサーバが欲しいと思うこともありますよね。
単純な構成あればDockerで用意すればいいけど、そうでない場合も多々ありますよね。
そんなときでもAWS Transfer for SFTPを使えば良い感じに用意できそうですよね。

やってみました。

要件

  • 事前に申請されたIPアドレスからのみ、SFTPサーバにログインできる
  • SFTPサーバにログインするアプリケーションは、オンプレのサーバに鎮座
  • オンプレのサーバはグローバルIPを持っていないので、プロキシなどを通す必要がある
  • プライベートサブネットに既にプロキシがある(且つ、NAT Gateway経由で外に行ける)
  • オンプレとAWS間はDXで繋がっている

大まかな要件はそんな感じ。
オンプレからプライベートサブネット内にいるプロキシを経由する、で問題は無さそうです。

構成図

こんな感じかな。インフラ構成図を書くのが好き。

f:id:tydk27:20200729001102p:plain

自動生成されるVPC Endpointにハマる

検証用だし、インターネットに公開する必要はないよね。

f:id:tydk27:20200728234651p:plain

ということで作成画面では↑のように選択するわけですが、これで進めていくと最終的にENIとVPC Endpointが自動生成されます。
最初、このVPC Endpointに気付かず、プロキシから先の通信が通らないことに30分ほど頭を悩ませていました。

まとめ

無事に検証用のSFTP環境が用意できて、アプリケーションの動作確認も瞬殺で終わって、いやもう素敵やん。

そんなAWS Transfer for SFTPですが、データの操作をしていなくても「0.3ドル/1時間」の料金が掛かります。1ヶ月だと200ドルを超えちゃいます。
検証が終わったら削除しておくのが良さそうです。掃除は大切。