ENECHANGE Developer Blog

ENECHANGE開発者ブログ

AWS Transfer for SFTPを使ってみる

インパクトあるのが出たらニュースになるだろうと思ってre:Invent 2018をウォッチせずにキャンプで焚き火してたCTO室kazです。 reinvent.awseventsjapan.com

SFTPというレガシーだけど、今もよくシステムで使われる名前のついたサービスが目に止まったので、検証してみました。 発表されたサービス名はAWS Transfer for SFTP

AWS Transfer for SFTP(フルマネージド型 SFTP サービス)| AWS

S3と連携したフルマネージドなSFTPサービスとのこと。 AWS移行の障壁となっているものの1つで、リクエストが多かったんでしょうね。わかります。 EFSの東京リージョンローンチを3年待ってた者からすると、少し複雑な気分ですけど^^; 複数サーバで同一データを参照したり、データレイクをS3としたい場合など、 これらを実現させるソリューションとして、EFS、OSSのS3fs(goofys)などがありますが、 要件に対する回答の選択肢の1つとしてSFTPが増えたことはとても素晴らしいことだと思います。 多くのコンプライアンスプログラムを持つAWSのサービスであるからこそ、導入が進む企業もありそうですね。 aws.amazon.com

f:id:dev-enechange:20181205171540p:plain

ブログ投稿時にterraformがこのサービスに対応してなかった(当たり前か^^;)ので、渋々マネコンでポチポチしました...

手順

SFTP Serverの作成

  • Custom hostnameAmazon Route53 DNS aliasを選択し、管理しているドメインを記述するとRoute53に自動定義されるようです。
  • LDAP及びActiveDirectoryをAPIGateway経由で利用できるようです。
  • タグも利用できるので、コストを任意の決済グループに紐付けることが可能ですね。 f:id:dev-enechange:20181205181058p:plain

  • ユーザ作成画面では接続に用いる任意のpublic-keyを貼り付けて、ユーザのホームディレクトリになるS3bucketを記述します。 f:id:dev-enechange:20181205181951p:plain

  • Done f:id:dev-enechange:20181205181758p:plain

接続確認

  • レコードが定義されているか確認する
$ aws route53 list-resource-record-sets --hosted-zone-id xxxxxxxxxxxx  | jq '.ResourceRecordSets[].Name' | grep "xxxxxx"
"xxxxxx.enechange.org."
  • 接続してみる
$ sftp -i ~/.ssh/transfer-key kazu@xxxxxxx.enechange.org
Connected to xxxxxxx.enechange.org.
sftp> ls -l
-rwxr--r--   1        -        -   test
sftp>

料金

Pricing by region Pricing is the same across all AWS regions where AWS SFTP is available
Time your SFTP endpoint is provisioned $0.30 per hour
SFTP data uploads and downloads $0.04 per gigabyte (GB) transferred
  • 1GB使用の想定で24時間30日稼働させたとして...$228

$0.30 * 24 hours * 30 days = $216

$0.04 * 1 GB * 30 days = $12

$216 + $12 = $228.