Open3

FastAPIをAWS Lambdaにデプロイする(Zappa/Mangum)

shimakaze_softshimakaze_soft

Zappa

AWS LambdaAmazon API gateway等のサービスを利用して、Web アプリケーションを構築するサーバレスフレームワーク。

https://github.com/zappa/Zappa

通常の AWS LambdaAmazon API gatewayの組み合わせでは、以下のような課題がある。

  • Web アプリであっても使い慣れたLambda 用にコーディングしなければならない

  • 標準でサポートされていないライブラリを使用する際は zip ファイルでデプロイパッケージを作成し、アップロードする必要がある

  • ログが手軽に参照できない

  • 必要な設定や操作が多く、それらを CLI で完結することが難しい

Zappa ではこれらの課題を上手にラッピングし、手軽なアプリケーション開発を支援する。

Zappaの機能

アプリケーション実行機能

  • WSGI アプリケーションの実行
  • CloudWatch Events によるスケジュール実行
  • 非同期タスク実行

開発、運用のサポート機能

  • CloudWatch Logs ログの tail
  • 開発、ステージング、プロダクションといったステージごとの設定とデプロイ
  • 任意の世代へロールバック
  • 任意の関数の手動実行
  • ACM や Let’s Encrypt などを利用した独自ドメイン
  • ACM への証明書発行リクエスト
  • API Gateway のアクセスポリシー設定
  • Keep warm でレスポンス速度の維持

またデプロイ時にIAM RoleLambda イメージ用 S3の自動作成も可能。(自動作成せず既存の IAM Role や S3 Bucket の指定も可能)