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

サーバレスアーキテクチャを 用いたコスト重視AIサービス

Sponsored · SiteGround - Reliable hosting with speed, security, and support you can count on. →
Avatar for junki_tamae junki_tamae
February 13, 2025

サーバレスアーキテクチャを 用いたコスト重視AIサービス

Avatar for junki_tamae

junki_tamae

February 13, 2025

More Decks by junki_tamae

Other Decks in Programming

Transcript

  1. 20 低コストで画像分析のサービス構築 • コスト削減箇所:振り返り ◦ 画像データなど⼤きなデータはS3に ◦ ⼀部の検索⽤データなど、サイズの⼩さなデータは DynamoDBへ ▪

    DynamoDBを採⽤し、DBのメンテナンスコストを低減 ◦ ユーザー体験を損なわない部分ではラムダを採⽤ ◦ SPA(single page application)をS3配置し、 フロントのサーバーとメンテナンスを最低限に
  2. 24 コストとパフォーマンスの綱引きを忘れない🍣 綱引き⼀覧 • コストだけ⾒てしまうとユーザー体験を損なうので綱引きが⼤事 • lambdaは最低限の使⽤とし慎重に採⽤ ◦ フロントでできる処理はフロントに ▪

    その分フロントのコードは設計思想をもつ • エンドポイントは2種類のどちらかを検討しよう。 ◦ サーバーレスエンドポイント ◦ プロビジョンドエンドポイント それぞれ⼀⻑⼀短
  3. コストとパフォーマンスの綱引きを忘れない🍣 • lambdaは不必要に使わないように採⽤ ◦ フロントでできる処理はフロントに ▪ その分フロントのコードは何らかの設計思想を持つ • ”無秩序”にしない 良いところ

    ・サーバーレスだから、運用、メンテナンスがほぼ不要 ・サービス単位でプログラムを整理できる高いメンテナンス性 ・必要十分な時にリソースを起動できる高い経済性とコスパ 悪いところ ・サーバーレスだからこそ、都度立ち上げの時間(数秒)がかかる (常時起動の案もなしではないが、サーバーレスの意味が薄れる)
  4. 26 コストとパフォーマンスの綱引きを忘れない🍣 /src | +-- app # ページ(現 `features/misc/routes`に相当) |

    | | +-- routes # ページに関連するコンポーネント | | | | | | +-- router.tsx # ルーティングの設定 | +-- config # 設定ファイル | +-- features # 機能ごとの構成物 | | | +-- sample | | | | | +-- assets # 機能1用のアセット | | | | | +-- components # 機能1用コンポーネント | | | | | +-- hooks # 機能1用フック | | | | | +-- types # 機能1用型定義 | | | | | +-- utils # 機能1用ユーティリティ | +-- assets # 共通のアセット | +-- components # 共通コンポーネント | +-- hooks # 共通フック | +-- stores # 共通の状態管理 | +-- types # 共通の型定義 | +-- utils # 共通ユーティリティ | +-- api # 共通のAPI • ラムダをあまりつかわなくても崩壊しないためのフロントエンド ディレクトリ構造⼀例 (react)
  5. 29 コストとパフォーマンスの綱引きを忘れない🍣 綱引き:振り返り • コストだけ⾒てしまうとユーザー体験を損なうので綱引きが⼤事 • lambdaは最低限の使⽤とし慎重に採⽤ ◦ フロントでできる処理はフロントに ▪

    その分フロントのコードは設計思想をもつ • エンドポイントは2種類のどちらかを検討しよう。 ◦ サーバーレスエンドポイント ◦ プロビジョンドエンドポイント それぞれ⼀⻑⼀短
  6. 31 デプロイサイクル🚀 • AWS cloud formation • AWS SAM •

    複数環境(dev、stg、prd) • React(SPA) を使⽤。 週次、⽇次のデプロイ(環境への反映や機能追加)を可能に。
  7. 32 デプロイサイクル🚀 デプロイ作業が最低のコストで実行できるので デプロイの対応工数も最低限 💰 実質的にデプロイが多ければ多い プロジェクトほどお得 • AWS cloud

    formation • AWS SAM • 複数環境(dev、stg、prd) • React(SPA) を使⽤。 週次、⽇次のデプロイ(環境への反映や機能追加)を可能に。