spacelyのブログ

Spacely Engineer's Blog

AWSでFTPを実装するためのいくつかの方法

AWS

spacelyはなぜAWSFTPを実装するのか

私はこのあたり全くの門外漢なのですが、不動産業界で古くから利用されてきた基幹システムではシステム間の連携の手段としてFTPを利用することが多かったそうです。

不動産VRを掲げるspacelyの場合でも例にもれず、外部連携の手段のひとつとしてFTPを提供してきました。

そのFTPを今後もつつがなく提供していくにあたって、AWSに実装していたFTP機能の構成変更をしたことがあり、今回はそのあたりについてすこし書いてみたいと思います。

AWSFTPを実装する方法

いくつかの実装方法がありそうななかで、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にもいくつか注意点があって、実際に導入を検討する際、下記のようなポイントを踏まえた上で運用可能かどうかを検討してみていただきたいです。

  • プロトコルFTP(FTPSではなく)を用いて公開FTPサーバを構築することができない(検証をしてわかったことで、またの機会で記事を書くかもしれません)
  • アスキー転送モードでのデータ転送はできない


上記と重複するものもありますが、注意点は、AWSのドキュメントに書いてあったりします。

AWSが大好き

spacelyでは今回の記事やその他の記事でも触れてきているようにAWSを用いて、不動産VRなどのVR関連サービスを自社で開発していっています。

AWSの日々の管理はインフラレイヤーのメンバーが主に担当していますが、バックエンドエンジニアの目線であったり、フロントエンドエンジニアの目線であったり、様々なロールのAWS好きからのフィードバックをもとに、日々サービスをもり立てていっています。

こんなAWS大好きな人といっしょに働いてみたいと思った方、ぜひ採用サイトよりご連絡ください。

AWS大好きな人

corp.spacely.co.jp