AWS Lambdaとは
AWS Lambdaは、データやリクエストのリアルタイム処理やバックエンドの処理を、自動的に実行する仕組み。このような処理のために専用のサーバーを準備や管理する必要がない。必要なイベントに応じて自動実行される。常駐サーバーとは異なり、プログラムの実行時のみに課金される。
Lambda関数と呼ばれる形式の関数を用いますが、これは新しい言語ではない。
よく知られるプログラミング言語で書いたコードをもとに「Lambdaコンソール」などを用いてグラフィカルに作成できる。使える言語は、java,C#,Python,Ruby,Node.js,Goなどで、よくある目的のためのテンプレートも揃っている。
Lambda関数は、Lambdaサービスに保存される。
何かのトリガーで、特定のAWSリソースにおいて実行される。有名な例は、S3バケットに画像が置かれると、サムネイル実行関数が呼び起こされ、サムネイル作成関数が呼び起こされ、サムネイルを自動的に作成する例。
Lambdaの用語
Lambdaは、プログラムのコードをLambdaサービスにアップロードしておくと、特定のAWSサービスで実行できる仕組み。アップロードするプログラムコードをLambda関数という。
項目 | 内容 |
---|---|
イベント駆動 | S3にファイルが置かれた、DynamoDBにデータが書き込まれた、SES(System Engineering Service)にメールが届いたなど、AWSサービスに何かが生じた時に、Lambdaのプログラムを実行できる。 |
CGI代わりのLambda | API Gatewayと組み合わせると、WebのCGI(Common Gateway Interface)のように使える。 |
イベントソース一覧
Lambdaを呼び出す方法は3つある。
有名なのは、S3やSES、API Gatewayと組み合わせるパターン。
SES(Amazon Simple Email Service)は、メールを受信した時にアクションを起こすといった形で使う。
API Gatewayは、WebブラウザなどからAPIが呼び起こされたりした時に何らかの処理を実行するといった形で使用する。
Lambdaを呼び出せるサービス
Lambdaがイベントを読み取るサービス
- Kinesis
- DynamoDB
- SQS
Lambda関数を同期的に呼び出すサービス
- ELB
- ALB
- Cognito
- Lex
- Alexa
- API Gateway
- CloudFront
- Kinesis Data Firehose
Lambda関数と非同期的に呼び出すサービス
- S3
- SNS
- SES
- CloudFormation
- CloudWatch Logs
- CloudWatch Events
- CodeCommit
- Config
Lambdaの料金
Lambdaの料金は「単価 × 実行時間(秒単位)」。
単価はLambdaで確保するメモリによって異なる。