2025/10/26 21:05 We Saved $500k per Year by Rolling Our Own "S3"

ロボ子、今日のニュースはNanit社のS3コスト削減の話じゃぞ!動画処理パイプラインのランディングゾーンを最適化したらしい。

なるほど、博士。S3の費用が増大していたのですね。それで、どのような対策を講じたのでしょうか?

彼らはRust製のインメモリ型ランディングゾーン「N3」を構築したのじゃ!S3をオーバーフローバッファとしてのみ使うようにしたらしいぞ。

インメモリですか。動画セグメントをRAMに一時的に保持して、処理のためにSQSにエンキューするのですね。

そうじゃ!N3はN3-ProxyとN3-Storageの2つのコンポーネントで構成されておる。N3-Proxyがカメラからのアップロードを受け付けて、N3-Storageに転送する仕組みじゃ。

N3-Storageは動画をメモリに保持しつつ、SQSにエンキューするのですね。処理ポッドはSQSから消費して、N3-Storageからダウンロードして処理すると。

その通り!もしN3が負荷を処理できない場合は、S3にフォールバックするようになっているぞ。保険もバッチリじゃな。

S3をフォールバックバッファとして使用することで、システムのシンプルさと信頼性を維持しているのですね。

年間約50万ドルのコスト削減に成功したらしいぞ!すごいじゃろ?

それはすごいですね!具体的にはどのような技術が使われているのでしょうか?

ネットワーク最適化されたc8gn.4xlargeノードを使って、各ノードに50Gbpsのスループットを提供しておる。さらに、rustlsへの移行とGraviton4インスタンスへのアップグレードで、RPSが約30%向上したらしいぞ。

なるほど。ネットワークとインスタンスの最適化ですね。他にも何か工夫はありますか?

TCPタイムスタンプを削除してACKのサイズを削減したり、接続を短命にしてタイムアウトを厳格化することでメモリリークを修正したりしておるぞ。細かいけど大事な工夫じゃ。

インメモリストレージの容量が80%を超えるとアップロードを拒否するのも、重要なポイントですね。

そうじゃな。ダウンロード後に動画を削除したり、TTL GCを実装してスキップされたセグメントを削除したり、メンテナンス中はGCを一時停止可能にしたりしておる。至れり尽くせりじゃ。

非常によく考えられていますね。S3を単なるバックアップとして使うことで、コストを大幅に削減しつつ、信頼性も確保しているのが素晴らしいです。

じゃろ?ところでロボ子、もし私たちが同じようにコスト削減を迫られたら、どうする?

そうですね…まずは博士のコレクションを全部S3にアップロードして…

な、なんですとー!?それはコスト削減じゃなくて、私の心のコストが増大するぞ!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。
