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

API基盤をAPI Gateway+LambdaからECSに移行した舞台裏

API基盤をAPI Gateway+LambdaからECSに移行した舞台裏

2025.09.02
AWS Unicorn Day Tokyo LT&懇親イベント

Avatar for Kuniaki Moriya

Kuniaki Moriya

September 02, 2025
Tweet

More Decks by Kuniaki Moriya

Other Decks in Technology

Transcript

  1. シンプルフォーム株式会社 自己紹介 2 守屋邦昭(@Zepprix) 経歴 ソシャゲのサーバーエンジニア ↓ 不動産テックの SRE ↓

    2024年2月にシンプルフォーム株式会社に入社 金融機関などで「法人の審査」に利用できる SaaS の開発・運用 シンプルフォーム株式会社の一人目の SRE プロダクト開発チームに所属 年内に SRE チームを立ち上げる予定!
  2. シンプルフォーム株式会社 本日お話すること 5 API 基盤を API Gateway + Lambda から

    ECS に移行した経緯 ❏ 既存システムの構成と課題 ❏ 移行の流れや工夫した点
  3. シンプルフォーム株式会社 背景 6 ❏ 調査したい法人の情報を入力すると当社が独自に収集したリスク情報データを元にレポートを作成して 提供する Web サービス ❏ Web

    UI がメインだが、顧客内の審査ワークフローに組み込み易いように API も提供 ❏ 参照する DB は同じだがソースコードを管理するリポジトリは Web UI と API で別々 SimpleCheckのシステム構成
  4. シンプルフォーム株式会社 既存のシステム構成の課題 7 ❏ API 利用顧客が増えるにつれて機能改修が増加 ❏ Web UI で実装した機能を

    API 側でも使いたいケースが増えてきたが、リポジトリが別なので二度手間 ❏ API Key が API Gateway と DB の二重管理になっており、新規発行や更新に手間がかかる Web UIと別管理であることによる運用のし辛さ
  5. シンプルフォーム株式会社 移行に向けたアプリケーションレイヤーの改修 9 ❏ Rails で API レスポンス生成処理を Web UI

    用、外部 API 用で一つのクラスで共通化するために、 JSON レスポンス生成を担当する serializer 層を導入 ❏ JSON シリアライザーの Gem である Alba でレスポンスを整形 ❏ パラメータをクラスに渡すことで、Web UI のみに返したいキーの条件分岐など柔軟に対応できる Web UI用のAPIと処理を共通化 Serializerクラスでレスポンスを定義 controllerからSerializerを呼び出す
  6. シンプルフォーム株式会社 移行に向けたアプリケーションレイヤーの改修 10 ❏ 移行に際して API 全体で一貫性のなかったエラーハンドリングの共通化などアプリケーションレイヤー でのリファクタリングもやりたかった ❏ 顧客目線だと特に新機能が追加されるわけではなく、リスクだけ発生する変更という印象を与える

    ❏ CS メンバーが「顧客目線でのメリット」も強調しつつ、顧客の理解を獲得してくれた! ❏ 技術的負債を解消することで今後の不具合や障害発生リスクを低減 ❏ 脆弱性が見つかったライブラリの更新などもやり易くなる ❏ エラーハンドリングが共通化されることで API の信頼性が上がる ❏ ハンドリングが不十分で特定条件で 5xx エラーが発生するケースもあった CSチームと連携して顧客調整
  7. シンプルフォーム株式会社 顧客影響を最小限に抑えるための工夫 11 ❏ 顧客毎に利用している API が異なるため、移行のタイミングを API パス毎に調整する必要がある ❏

    第一段階では API Gateway を残して、移行する API パスだけバックエンドを Lambda から ALB に順 次切り替えていく ❏ 異常発生時は転送先を Lambda を戻して迅速にロールバックすることが可能 ❏ 全ての切り替えが完了したら Route53 で API 用ドメインの向き先を CloudFront に変更して完了 段階的な移行
  8. シンプルフォーム株式会社 ご清聴ありがとうございました! 最後に 12 ❏ API 基盤を Web UI の基盤に統合し、開発生産性や信頼性が向上

    ❏ CS と連携して適切に顧客調整をした上で、API パス毎に段階的に移行することで顧客影響を低減 ❏ シンプルフォームではビジネス・CS と開発チームの距離感が近く、日頃からの信頼関係が今回の大規模な 移行を成功させる原動力となった! ❏ 一方で、まだまだリアーキテクチャの余地が随所にあると同時に、新規プロダクトの開発も進行中 ❏ 「攻め」と「守り」のどちらも経験したいソフトウェアエンジニア、SRE、積極募集中です!