spacelyはなぜAWSにFTPを実装するのか
私はこのあたり全くの門外漢なのですが、不動産業界で古くから利用されてきた基幹システムではシステム間の連携の手段としてFTPを利用することが多かったそうです。
不動産VRを掲げるspacelyの場合でも例にもれず、外部連携の手段のひとつとしてFTPを提供してきました。
そのFTPを今後もつつがなく提供していくにあたって、AWSに実装していたFTP機能の構成変更をしたことがあり、今回はそのあたりについてすこし書いてみたいと思います。
AWSにFTPを実装する方法
いくつかの実装方法がありそうななかで、3つの方法を検討していきました
方法1. EC2
1つ目はEC2インスタンス上にftpdをインストールしてFTPのエンドポイントを提供するシンプルな案で、構成変更前のspacelyが採用していた方法でした。
細やかな制御が可能になる一方で、amiの管理が大変になりそうなのは事実。さらに昨今のLLMドリブンなdarkwebなツールたちによるゼロデイ攻撃に太刀打ちし続けることが可能かなどを懸念してEC2案は断念しました。
方法2. ECS(Fargate)
2つ目はFargateなどのECSクラスタ上にftpdなコンテナを立てて運用する案。
Fargateを採用すればEC2インスタンスの管理が不要になって、EC2に比べるとすこしだけ楽になりますが、それでもやはり昨今のLLMドリブンなdarkwebなツールたちによるゼロデイ攻撃に太刀打ちし続けることが可能かなどを懸念してECS案も断念しました。
方法3. AWS Transfer Family
じゃあどうするかとなったときにでてきたのが3つ目の案で、マネージドのサービスであるAWS Transfer FamilyでFTPの機能が実現できて、spacelyではこの案を採用しています。
AWS Transfer Familyを利用することで結構助かるのは、方法1と方法2では説明を省いていましたが、FTP通信の負荷に応じたオートスケールのしくみを作り込む必要がなくなる点があります。
また、セキュリティについての対応はAWSに一任する(マネージドを利用する)といった方針で、そのかわりにコストを払うといった選択をしました。
AWS Transfer FamilyでFTPを運用する際の注意点
そんなAWS Transfer Familyにもいくつか注意点があって、実際に導入を検討する際、下記のようなポイントを踏まえた上で運用可能かどうかを検討してみていただきたいです。
上記と重複するものもありますが、注意点は、AWSのドキュメントに書いてあったりします。
AWSが大好き
spacelyでは今回の記事やその他の記事でも触れてきているようにAWSを用いて、不動産VRなどのVR関連サービスを自社で開発していっています。
AWSの日々の管理はインフラレイヤーのメンバーが主に担当していますが、バックエンドエンジニアの目線であったり、フロントエンドエンジニアの目線であったり、様々なロールのAWS好きからのフィードバックをもとに、日々サービスをもり立てていっています。