Upgrade to Pro — share decks privately, control downloads, hide ads and more …

重い処理をLambdaに逃してAPIサーバ本体を守ったぞ

Avatar for Jotaro Nishime Jotaro Nishime
September 28, 2025

 重い処理をLambdaに逃してAPIサーバ本体を守ったぞ

# 秋のSRE談義

## 概要
AIで変わりゆくエンジニアの仕事が増えていく中、変わらない仕事もある。
そんな話を「重い処理をLambdaに逃す」という改善事例の紹介とともに語ってみました。

Avatar for Jotaro Nishime

Jotaro Nishime

September 28, 2025

More Decks by Jotaro Nishime

Other Decks in Technology

Transcript

  1. © Dress Code Inc . All rights reserved. Dress Code株式会社

    / Product & Technology 西銘 承太郎(じょじょ) 1 重い処理をLambdaに逃して APIサーバ本体を守ったぞ
  2. © Dress Code Inc . All rights reserved. 先日 Platform

    Engineering Kaigiに スポンサー参加しました 2
  3. © Dress Code Inc . All rights reserved. 3 AIによってエンジニアリングが

    どう変わるか、変わらないかのアンケートをとりました
  4. © Dress Code Inc . All rights reserved. 7 今日伝えたいこと

    ベストに囚われず、 ベターを選択しよう
  5. © Dress Code Inc . All rights reserved. 重い処理 =

    スクレイピングによる 外部サービスの認証処理 11
  6. © Dress Code Inc . All rights reserved. 13 弊社には外部サービス連携管理機能があります

    外部サービスの仕様変更に対応するため、 スクレイピングが必要になりました!
  7. © Dress Code Inc . All rights reserved. 14 弊社には外部サービス連携管理機能があります

    スクレイピング処理の実装自体は 前任の方が残してくれていたので、 タスクとしては「良い感じに」することでした
  8. © Dress Code Inc . All rights reserved. 課題とリスク ⚠

    イメージサイズの増加(ビルドが重い) 19
  9. © Dress Code Inc . All rights reserved. 課題とリスク ⚠

    イメージサイズの増加(ビルドが重い) • イメージプル/プッシュに時間がかかり、CI/CDの遅延につながる • 依存ライブラリが増えると脆弱性検知の範囲が広がり、アップデート負荷増 • ECR/GCRなどのレジストリの保管コスト増 • 大きなイメージはキャッシュ効率が悪く、ネットワーク不調時に失敗しやすい 20
  10. © Dress Code Inc . All rights reserved. 課題とリスク ⚠

    イメージサイズの増加(ビルドが重い) 🚨 メモリ使用量・CPU使用率の増加(処理が重い) • イメージプル/プッシュに時間がかかり、CI/CDの遅延につながる • 依存ライブラリが増えると脆弱性検知の範囲が広がり、アップデート負荷増 • ECR/GCRなどのレジストリの保管コスト増 • 大きなイメージはキャッシュ効率が悪く、ネットワーク不調時に失敗しやすい 21
  11. © Dress Code Inc . All rights reserved. 課題とリスク ⚠

    イメージサイズの増加(ビルドが重い) 🚨 メモリ使用量・CPU使用率の増加(処理が重い) • イメージプル/プッシュに時間がかかり、CI/CDの遅延につながる • 依存ライブラリが増えると脆弱性検知の範囲が広がり、アップデート負荷増 • ECR/GCRなどのレジストリの保管コスト増 • 大きなイメージはキャッシュ効率が悪く、ネットワーク不調時に失敗しやすい • 実行時にメモリ上限を超えるとPod/タスクが落ちてAPI全体がエラーになるリスク • ECSで必要メモリが増え、タスク数やインスタンスタイプの単価が上がる • スクレイピング処理がCPUを専有し、通常APIのレスポンスが遅延 • オートスケールが暴発して過剰なスケールによるコスト増 • etc… 22
  12. © Dress Code Inc . All rights reserved. ECSから直接Lambdaを呼ぶことのリスク •

    Lambda側の制限 ◦ 同時実行数制限(アカウント全体で1000) ◦ リクエストレート制限(数千リクエスト/秒) ◦ Lambdaコールドスタートなどによるレイテンシ増加 31
  13. © Dress Code Inc . All rights reserved. ECSから直接Lambdaを呼ぶことのリスク •

    Lambda側の制限 ◦ 同時実行数制限(アカウント全体で1000) ◦ リクエストレート制限(数千リクエスト/秒) ◦ Lambdaコールドスタートなどによるレイテンシ増加 • ECS(Fargate)側の制限 ◦ スレッド、ソケット数の枯渇リスク ◦ 疎通失敗時にAWS SDK内部のリトライによるCPU/メモリ圧迫リスク • etc… 32
  14. © Dress Code Inc . All rights reserved. ECSから直接Lambdaを呼ぶことのリスク •

    Lambda側の制限 ◦ 同時実行数制限(アカウント全体で1000) ◦ リクエストレート制限(数千リクエスト/秒) ◦ Lambdaコールドスタートなどによるレイテンシ増加 • ECS(Fargate)側の制限 ◦ スレッド、ソケット数の枯渇リスク ◦ 疎通失敗時にAWS SDK内部のリトライによるCPU/メモリ圧迫リスク • etc… 33 正直、ベストな選択肢とは思ってません。。。
  15. © Dress Code Inc . All rights reserved. 検討案1: 非同期処理

    36 非同期処理でスマートに実装したらええやん →同期呼び出しを非同期化して通知まで整えるのは工数もスコープもオーバー
  16. © Dress Code Inc . All rights reserved. 検討案2: 専用サーバ

    37 工数削減したいなら新しくAPIサーバ建ててコピーしたらええやん →現状1ヶ月に数回の低頻度なユースケースに対してランニングコストが高過ぎる
  17. © Dress Code Inc . All rights reserved. 検討案3: 今回の採用案

    41 ECSからLambda直呼び出しのリスクは数百リクエスト/秒程度から顕在化 →今は低頻度だしリスクは許容範囲内!
  18. © Dress Code Inc . All rights reserved. 「リソース勝負」 「意思決定・責任」

    50 この経験とアンケートのこの言葉に つながりを感じたので語ってみました
  19. © Dress Code Inc . All rights reserved. 51 今日伝えたいこと

    ベストに囚われず、 ベターを選択しよう
  20. © Dress Code Inc . All rights reserved. 54 一緒にプロダクト開発しようぜ!

    • プロダクトマネージャー • コミュニケーションデザイナー • デジタルプロダクトデザイナー • デザインエンジニア • プロダクトエンジニア • etc… 新しいオフィスにも移転しています!