はじめに
基幹システムやERPなど昔から長らく稼働しているシステムの
データ連携はまだまだFTP/FTPS/SFTPが活躍しているのではないでしょうか?
本記事では、複数のネットワークから1アカウントのS3にデータをアップロードする要件。
具体的には、
FTP、FTPS、SFTP
インターネット、VPN(Site-to-Site,Direct Connect)
どの組み合わせの要件がきてもカバーできるようにしないといけない
といった要件があった際に役に立ちそうなアーキテクチャーを考えましたので共有します。
※今回はAS2には触れませんが、AS2も理論的には対応可能です。
想定する要件
① 複数の異なるネットワークからS3へデータ送信したい
② データ送信はFTP、FTPS、SFTPのどのパターンもカバーしたい
③ 通信はインターネット、VPN、閉域網のどのパターンでもカバーしたい
AWS Transfer Familyのエンドポイントの特性
TransferFamilyにアタッチできるエンドポイントは3種類あります。
| エンドポイントタイプ | SFTP | FTPS | FTP |
|---|---|---|---|
| パブリック | 〇 | ✕ | ✕ |
| VPC(内部向け) | 〇 | 〇 | 〇 |
| VPC(インターネット向け) | 〇 | 〇 | ✕ |
| エンドポイントタイプ | インターネット | VPN(※1) | 閉域網(※2) |
|---|---|---|---|
| パブリック | 〇 | ✕ | ✕ |
| VPC(内部向け) | ✕ | 〇 | 〇 |
| VPC(インターネット向け) | 〇 | 〇 | 〇 |
※1:VPNはSite-to-Site VPNのインターネットVPN想定
※2:閉域網はDirect Connectの専用線接続想定
全部の要件はカバーできなくないか?
そうなんです。エンドポイントの特性上
『FTPを捨てるorインターネット通信を捨てるしかなくないか?』
と思う方がほとんどだと思います。(...と信じたい)
VPC(インターネット向け)エンドポイントを使うパターン
VPC(内部向け)エンドポイントを使うパターン
しかし、ネットワークの構成を工夫すればすべての通信要件が
カバーできます!!!
全通信パターンがカバーできるネットワーク構成
- VPC(内部向け)エンドポイントを選択してFTP,FTPS,SFTPが通信できるようにする
- 異なるネットワークごとに専用のVPCと共通のVPCを分ける
- 専用VPCと共通VPC間をPrivateLinkで接続
こうすることで
TransferFamilyへの通信がVPCエンドポイントサービスからで統一できるので(VPC接続環境内の通信に限定できる)
VPC(内部向け)エンドポイントを選択していても、インターネットで通信が可能となります。
副次的な効果としてはPrivateLinkを使うので対向のClientとIPが被っても大丈夫になります!
まとめと今後の展望
今回はTransferFamilyのエンドポイントの特性を回避しながら
① 複数の異なるネットワークからS3へデータ送信したい
② データ送信はFTP、FTPS、SFTPのどのパターンもカバーしたい
③ 通信はインターネット、VPN、閉域網のどのパターンでもカバーしたい
上記の要件を満たすことができるネットワーク構成を考えてみました。
データ分析やマルチテナント構成とかに使えそうかも??
まだ検証できてないので、できるか不明ですがPrivateLink用のNLBをResource Gatewayに変換できたら
コストダウンも見込めそうです!
https://blog.serverworks.co.jp/access-vpc-resources-aws-privatelink

