11
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

朝日新聞社Advent Calendar 2024

Day 25

FTPサーバー構築でAWSマネージドサービスに苦しめられ助けられた話

Last updated at Posted at 2024-12-24

この記事は朝日新聞社Advent Calendar2024の最終日の記事です。
昨日の記事は加藤さんの【SwiftUI】iOS 15でListのSection上部に余白が生じないようプリミティブに対処するでした。

はじめに

こんにちは。朝日新聞社で紙面ビューアーの開発を担当している新山です。
今回はAWS Transfer Familyを使ったFTPサーバーの構築の際に頭を悩ませた話です。

構成

朝日新聞紙面ビューアーでは電子ブック作成のためのシステムがあります。2024年3月にこのシステムを社内ネットワーク上のオンプレサーバーからAWSへ移管しました。
その際に、構築の時間短縮かつ可用性を保つために自前でFTPサーバーを構築するのではなく、AWSマネージドであるTransfer Familyを使用してFTPサーバーを作成しました。
超ざっくりと以下のような感じです。

Web application hosting diagram example - Web application hosting diagram example (6).png

問題の発生

動作確認も済ませ、いざ疎通テストの段階で「FTPは繋がる(ログイン等はできる)もののレスポンスが返ってきません」とのことでした。

原因

新聞制作システムで使用されていたFTPクライアントが原因でした。
新聞制作システムからのアクセスはaliasレコードを利用して、2つのNLBにランダムに振り分けられる想定だったため、PassiveIPには0.0.0.0を記述しておけばいい感じにやってくれると思っていたのですが、Transfer Familyのドキュメントにある、全てのFTPクライアントがサポートしているわけではありませんを都合よく読み飛ばしていたのです。。。

ドキュメントからの引用.
ただし、すべてのFTPクライアントが PassiveIp=0.0.0.0 レスポンスをサポートしているわけではありません。 FileZilla また、WinSCP が対応していることに注意してください。他のクライアントを使用している場合は、そのクライアントが PassiveIp=0.0.0.0 応答をサポートしているかどうかを確認してください。

その上、手元での動作確認の際は新聞制作システムと別のFTPクライアントを使用していたことで発覚が遅れてしまいました。
念の為、新聞制作システムのFTPクライアントを変更できないか聞いてみたものの、もちろん難しいとのことで対応を考える必要がありました。

対応

以下の構成とすることで無理やりマルチAZのNLB×Transfer Familyの組み合わせを実現しました

Web application hosting diagram example - Web application hosting diagram example (7).png

CloudWatch Insighsを用いてNLBの状態を監視して、これを起点にDNSのフェイルオーバー(フェイルバック)とFTPサーバーのパッシブIPをLambdaで書き換えるという方法をとっています。パワー解決です。
Route53 フェイルオーバールーティングとCloudWatch Insightsに頼って何とか解決できました。

終わりに

今回の経験から以下の事項は改めて意識しておかねばと実感しました。

  • ドキュメントはきちんと読むこと
  • たとえ手元での動作確認であっても実際の環境に可能な限り近づけること
  • クライアントの制約を意識すること
    • 新聞制作系システムは比較的古いシステムであること
  • ドキュメントはきちんと読むこと

また、AWSマネージドサービスの制約に苦しめられたものの、AWSマネージドサービスに助けられており便利さを実感する形となりました。

以上、朝日新聞社 Advent Calendar 2024 の最終日の記事でした。ご覧いただきありがとうございました。

11
1
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
11
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?