サーバーレスとは、
開発者がサーバーを管理する必要がない(サーバーがないわけではない)
FaaS(Function as a Service)
AWS Lambda
DynamoDB
AWS Cognito
AWS API Gateway
Amazon S3
AWS SNS & SQS
AWS Kinesins Data Firehose
Aurora Serverless
Step Functions
Fargate
AWS Lambda
仮想機能(サーバーの管理が必要ない)
オンデマンドで実行
自動化されたスケーリング!
価格設定:リクエスト課金体系
リクエスト数 1,000,000件のAWS Lambdaリクエストまで無料 超過時 100万リクエストあたり0.20ドル
計算時間 400,000GB・秒のコンピュートタイムまで無料 超過時 60,000GB・秒につき1ドル
非常に多くのAWSサービスと統合
多くのプログラミング言語に対応
Node.js Python Java C#(.NET Core) Golang C#/Powershell Ruby カスタムランタイムAPI
コンテナイメージ: 基本的にECS/Fargateが向いている
AWS CloudWatchによる簡単なモニタリング
機能ごとのリソースを簡単に増やせる
実行
メモリ割当て:128MB~10GB(RAMを増やすとCPUやNWも改善される)
最大実行時間:900秒(15分)
リクエスト/レスポンスデータサイズ:最大6MB
環境変数:4KB
実行環境のディスク容量(/tmp内):512MB
並列実行回数:1,000(リージョン毎・増加可能)
デプロイ
ラムダ関数の展開サイズ
圧縮された(.zip):50MB
圧縮されていない(コードと依存ライブラリ):250MB
起動時に他のファイルをロードするために/tmpディレクトリを使用可能(512MB)
環境変数:4KB
Lambda@Edge
CloudFrontを使ってCDNを導入した場合、
CloudFrontのリクエストやレスポンスをLambdaで変えることができる
①Viewer Request ②Origin Request
ユーザー CloudFront オリジン(S3)
④Viewer Response ③Origin Response