LoginSignup
9
5

More than 3 years have passed since last update.

Direct Connect経由でAWS Transfer for SFTPを利用する

Last updated at Posted at 2019-03-28

2021/5/6 追記

本記事に記載されている手順は VPC_ENDPOINT エンドポイントタイプと呼ばれる現在は非推奨となった方式を利用する手順になっています。2020年1月以降は VPC エンドポイントタイプが利用可能になっており、現在はこちらの方式が推奨されています。

VPC_ENDPOINT エンドポイントタイプではユーザーが事前に PrivateLink による VPC Endopoint を作成しておく必要はありましたが、VPC エンドポイントタイプではその必要はありません。サーバー作成時にエンドポイントのタイプに VPC でホスト、アクセスを 内部 とすることで自動的に AWS マネージドのエンドポイントが作成され、それを利用する形になります。PrivateLink の利用料金も発生しません。

image.png

VPC_ENDPOINT エンドポイントタイプ と VPC エンドポイントタイプの機能は同等ですが、新機能は VPC エンドポイントタイプ に実装されます。また 2020年1月以降は VPC_ENDPOINT エンドポイントタイプのサーバー起動は AWS CLI/SDK 経由でのみ可能でしたが、2021/5/19 以降、VPC_ENDPOINT エンドポイントタイプを使用した新規サーバー構築ができなくなる旨が AWS Storage Blog で発表されています。

その他参考リンク

追記おわり。

はじめに

AWS Transfer for SFTP が PrivateLink をサポートしたため、VPCエンドポイントを使用して
インターネットを経由せずにS3へのSFTP転送が可能になりました。

やってみる

最初にVPCコンソールからVPCエンドポイントを作成します。
コンソールからは 2つのサービス名
(com.amazonaws.<region>.transfer と com.amazonaws.<region>.transfer.server )
が確認できるのですが、サーバー作成&接続に必要なのは
com.amazonaws.<region>.transfer.server のエンドポイントです。
com.amazonaws.<region>.transfer はCLI操作等でAPIエンドポイントへの
接続が必要な場合に利用します。
image.png
VPCやサブネット、セキュリティグループを設定してエンドポイントを作成します。
image.png
Transfer for SFTP サーバーの作成は Endpoint configurationで VPC を選択し
最初に作成したVPCエンドポイントのIDを選択すればOK、その他オプションの設定は通常と変わらずです。
image.png

作成後すぐに利用可能になります。
通常のパブリックエンドポイントと比較した注意点としては
カスタムホスト名をサポートしていないくらいかなと思います。
image.png

VPCエンドポイントのDNS名を指定して接続、転送することができました。

$ sftp -i .ssh/id_rsa user@vpce-xxxxxxxxxxxxxxxxx-yyyyyyyy.server.transfer.ap-northeast-1.vpce.amazonaws.com
Connected to user@vpce-xxxxxxxxxxxxxxxxx-yyyyyyyy.server.transfer.ap-northeast-1.vpce.amazonaws.com.
sftp> !ls test.txt
test.txt
sftp> put test.txt
Uploading test.txt to /<bucket_name>/test.txt
test.txt                                                                                                                                                                                                                                                         100%    0     0.0KB/s   00:00
sftp> ls test.txt
test.txt
sftp> bye

エンドポイント作成時にプライベートDNS名を有効にするにチェックを入れていれば、
VPC内やRoute53 Resolverを利用している環境では
server.transfer.ap-northeast-1.amazonaws.com を使用しても名前解決可能です。

$ dig server.transfer.ap-northeast-1.amazonaws.com +short
10.xxx.xxx.xxx
10.xxx.xxx.xxx

Direct Connect経由やVPCに閉じた形でS3へのSFTP転送が可能に
なったことでより使いやすくなったと思います。
簡単ですが、参考になれば幸いです。

9
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
5