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

Lambdalithという選択肢を検討中 / Considering the option ...

ryichk
September 09, 2024
160

Lambdalithという選択肢を検討中 / Considering the option of Lambdalith

ryichk

September 09, 2024
Tweet

Transcript

  1. 目次 • Lambdalithとは • 検討しようと思った背景 ◦ 個人開発 ◦ Next.jsの機能をフル活用したい ◦

    Lambdaのコストパフォーマンス • 良さそうと思った背景 ◦ SAM CLIの一般提供開始 ◦ コンテナイメージをサポート ◦ Lambda Web Adapterの登場 ◦ Lambda関数URLの登場 ◦ CloudFrontがOACをサポート • 他コンテナサービスとの比較 • 有効だと思うケース • 考慮すべき点
  2. Lambdalith良さそうと思った背景 1. SAM CLIの一般提供開始 (v1.0.0) - 2020/07/21 2. Lambdaがコンテナイメージをサポート -

    2020/12/04 3. Lambda Web Adapterの登場 - 2021/09/15 (Release v0.1.0) 4. Lambda Function URLs (関数URL) の登場 - 2022/04/06 5. CloudFrontがLambda Function URLsのOACをサポート - 2024/04/11 これらの技術がサポートされてきたことによって、 Lambdaでモノリスアプリを運用するのはアリなんじゃないか? と思うようになった。
  3. SAMとは? AWS Serverless Application Model の略 Infrastructure as Code (IaC)

    を使用してサーバーレスアプリを構築するための オープンソースなフレームワーク
  4. SAM CLIを使うと何が嬉しい? アプリの構築、テスト、ビルド、デプロイが簡単にできる - sam init コマンドでサーバーレスアプリを初期化できる - sam local

    invoke コマンドでローカルのテスト&デバッグができる - sam build コマンドでアプリ全体をビルドできる - sam deploy コマンドでアプリをデプロイできる - sam delete コマンドでデプロイされたリソースを削除できる
  5. Lambdalith良さそうと思った背景 1. SAM CLIの一般提供開始 (v1.0.0) - 2020/07/21 2. Lambdaがコンテナイメージをサポート -

    2020/12/04 3. Lambda Web Adapterの登場 - 2021/09/15 (Release v0.1.0) 4. Lambda Function URLs (関数URL) の登場 - 2022/04/06 5. CloudFrontがLambda Function URLsのOACをサポート - 2024/04/11 これらの技術がサポートされてきたことによって、 Lambdaでモノリスアプリを運用するのはアリなんじゃないか? と思うようになった。
  6. Lambdalith良さそうと思った背景 1. SAM CLIの一般提供開始 - 2020/07/21 2. Lambdaがコンテナイメージをサポート - 2020/12/04

    3. Lambda Web Adapterの登場 - 2021/09/15 (Release v0.1.0) 4. Lambda Function URLs (関数URL) の登場 - 2022/04/06 5. CloudFrontがLambda Function URLsのOACをサポート - 2024/04/11 これらの技術がサポートされてきたことによって、 Lambdaでモノリスアプリを運用するのはアリなんじゃないか? と思うようになった。
  7. 仕組み 出典: Lambda Web Adapter でウェブアプリを (ほぼ) そのままサーバーレス化する Lambda Web

    Adapter - 変化を求めるデベロッパーを応援するウェブ マガジン | AWS
  8. Lambda Web Adapterを使うと何が嬉しい? - WebアプリをそのままLambdaで動かせる! - Webアプリ側のコードはLambdaを意識する必要がない - handler関数も不要 -

    ECSなど他のコンテナサービスへの移行も容易になった! - handler関数が不要なのでコンテナイメージを Lambda専用にする必要がなくなった - Node.jsやRubyなどランタイム埋め込み系アダプターを使う必要がなくなった - ランタイム埋め込み系アダプターはそのまま ECSでは動かない
  9. Lambdalith良さそうと思った背景 1. SAM CLIの一般提供開始 - 2020/07/21 2. Lambdaがコンテナイメージをサポート - 2020/12/04

    3. Lambda Web Adapterの登場 - 2021/09/15 (Release v0.1.0) 4. Lambda Function URLs (関数URL) の登場 - 2022/04/06 5. CloudFrontがLambda Function URLsのOACをサポート - 2024/04/11 これらの技術がサポートされてきたことによって、 Lambdaでモノリスアプリを運用するのはアリなんじゃないか? と思うようになった。
  10. Lambda 関数 URL を使うと何が嬉しい? - Lambda関数を実行可能なHTTPSのURLが発行される - API Gatewayを使わずにLambdaだけでWeb APIを構築できる

    - API Gatewayのコストを支払わずに済む - CloudFrontと組み合わせて独自ドメインの設定やキャッシュ活用が可能 - WAFを適用してセキュリティを強化することもできる
  11. Lambdalith良さそうと思った背景 1. SAM CLIの一般提供開始 - 2020/07/21 2. Lambdaがコンテナイメージをサポート - 2020/12/04

    3. Lambda Web Adapterの登場 - 2021/09/15 (Release v0.1.0) 4. Lambda Function URLs (関数URL) の登場 - 2022/04/06 5. CloudFrontがLambda Function URLsのOACをサポート - 2024/04/11 これらの技術がサポートされてきたことによって、 Lambdaでモノリスアプリを運用するのはアリなんじゃないか? と思うようになった。
  12. Lambdalith良さそうと思った背景 1. SAM CLIの一般提供開始 - 2020/07/21 2. Lambdaがコンテナイメージをサポート - 2020/12/04

    3. Lambda Web Adapterの登場 - 2021/09/15 (Release v0.1.0) 4. Lambda Function URLs (関数URL) の登場 - 2022/04/06 5. CloudFrontがLambda Function URLsのOACをサポート - 2024/04/11 これらの技術がサポートされてきたことによって、 Lambdaでモノリスアプリを運用するのはアリなんじゃないか? と思うようになった。
  13. 他のコンテナサービスとの比較 (ECS, App Runner) メリット - コスパ(充実の無料枠・実行時間のみ課金 ) - スケーラビリティ

    - デプロイ容易性 デメリット - コールドスタート - Provisioned Concurrencyで緩和可能 - スケールアップ・ダウンの柔軟性不足 - vRAMの設定可能
  14. Rehan van der Merweさんは肯定的 AWS Community HEROにも選ばれているRehanさんはLambdalith推しの模様 - The Lambda

    monolith - AWS Lambdaで挙げられている欠点について反論の述 べている 出典:Should you use a Lambda Monolith, aka Lambdalith, for your API? | Rehan van der Merwe
  15. 参考 - The Lambda monolith - AWS Lambda - Should

    you use a Lambda Monolith, aka Lambdalith, for your API? | Rehan van der Merwe - What is the AWS Serverless Application Model (AWS SAM)? - AWS Serverless Application Model - AWS SAM CLI command reference - AWS Serverless Application Model - AWS Lambda Function URLs の提供開始: 単一機能のマイクロサービス向けの組み込み - Lambda クォータ - AWS Lambda - HTTPS エンドポイント | Amazon Web Services ブログ - Amazon CloudFront が Lambda 関数 URL オリジンのオリジンアクセスコントロール (OAC) を新た にサポート - コンテナランタイムとしての AWS Lambda - 変化を求めるデベロッパーを応援するウェブマガジン | AWS - AWS Lambda の上でいろんなWEB フレームワークを動かそう! / Web Frameworks on Lambda - Speaker Deck