はじめに
色々調べたのでメモ..
以下詳細
Terraform で Lambdaも管理できないか?
- 最近やってるLambdaとAPI Gatewayの開発方法の話
- tf, ecr, python, openapi
- TerraformでAPI Gateway + Lambdaの構成テンプレート #lambda - Qiita
- tf, NOT ecr, node, openapi
- TerraformでAmazon API Gatewayを構築する(基本編) #AWS - Qiita
- tf, NOT ecr, openapi
- LambdaをカスタムDockerランタイムで開発する方法 | フューチャー技術ブログ
コンテナイメージを更新した際に気をつけるポイントですが、latestタグのコンテナイメージを更新しても、 すぐにLambda関数の挙動には反映されません。一晩寝かしても古いイメージが参照されていました。 全く同じimage-uriのまま更新コマンドを実行することで即時反映できます。
- TerraformでLambdaコンテナイメージを自動構築する #Docker - Qiita
- swagger
- ecr
- lambda
- apigateway
- codebuild
- aws_lambda_alias
- lambda version に対するエイリアス
- これに対するIgnore設定の記載など
- 【AWS Lambda】複数のLambda関数を1つのコンテナイメージにまとめる #AWS - Qiita
- entrypoint指定できる
- Terraform で ApiGateway を作成する
- 【Terraform】Terraformで作るサーバレス構成(API Gateway、Lambda、DynamoDB)
- TerraformでAmazon API Gatewayを構築するサンプルコードを書いてみた #AWS - Qiita
- Terraform で API Gateway(REST API)を構築する | DevelopersIO
- How to Create API Gateway With Terraform and AWS Lambda
- Creating a Rest API in AWS API Gateway using Terraform and OpenAPI Swagger specification | by InovaOnlineSolutions | Medium
ECR の Pros and Cons
Cons
- AWS Lambda で Go ランタイムを使うのが良いと思っている理由
基本的にコンテナイメージより zip 形式の方が安く使える コンテナイメージとカスタムランタイムは Lambda 関数の初期化時にも課金が発生する
Pros
- goのLambdaはコンテナイメージでよくない? - エムスリーテックブログ
- 好きな環境で実装可能
- ローカルテスト可能
- コード管理が容易
- arm64で起動速度向上、コストカット
- 起動時間
- 爆速?!コンテナイメージからデプロイしたLambdaのコールドスタートについて検証してみた #reinvent | DevelopersIO
- AWS Lambda+Docker Cold Startをふまえたコンテナサイズとメモリの最適解ベンチマーク – スペース・アイ株式会社
ECRイメージで用意できるプログラムのファイルサイズは最大の10GBまでどれだけ大きくしてもそれによってデプロイ、 作成されたLambda関数の実行時間には影響は出ないことがわかりました。
- 起動時間
- LambdaをカスタムDockerランタイムで開発する方法 | フューチャー技術ブログ
- Lambdaでコンテナイメージから関数を作成する #AWS - Qiita
- コンテナイメージを使用してAWS Lambda関数を作成する #Python - Qiita
Goでカスタムランタイム(Not ECR)
- AWS SAMのGo言語Lambdaアプリケーションのランタイムを更新してみた | DevelopersIO
- LambdaでGoランタイムが使えなくなるので、Terraformでカスタムランタイムに移行してみた - NIFTY engineering
- provided.al2 runtime でカスタムランタイムを使う
- LambdaでGoランタイムが使えなくなるのでカスタムランタイムに移行する(Terraform)
- aws lambdaカスタムランタイムでGoを動かす #AWS - Qiita