インパクトあるのが出たらニュースになるだろうと思って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
ブログ投稿時にterraformがこのサービスに対応してなかった(当たり前か^^;)ので、渋々マネコンでポチポチしました...
手順
SFTP Serverの作成
Custom hostname
にAmazon Route53 DNS alias
を選択し、管理しているドメインを記述するとRoute53に自動定義されるようです。- LDAP及びActiveDirectoryをAPIGateway経由で利用できるようです。
タグも利用できるので、コストを任意の決済グループに紐付けることが可能ですね。
ユーザ作成画面では接続に用いる任意のpublic-keyを貼り付けて、ユーザのホームディレクトリになるS3bucketを記述します。
Done
接続確認
- レコードが定義されているか確認する
$ 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>
料金
- EC2インスタンスが起動しているし、何よりもフルマネージドなので、それを考えたら妥当な価格ですね。 AWS Transfer for SFTP Pricing - Amazon Web Services
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.