AWS Lambdaについて学んだよー
料金
AWS Lambdaは、リクエスト数と、コードが実行される時間に基づいて課金されます。
- 無料枠(月毎)
- 100万リクエストまで
- 40万GB/secondの実行時間
無料枠終了後は、100万リクエスト(1リクエストあたり0.0000002ドル)あたり0.20ドル
実行時間の対象範囲は、リクエストが終了するまでか返したりするまで。
コードが実行を開始する時間から計算し、最も近い100ミリに切り上げられます。
GB/second毎に0.00001667ドルが課金されます。
また、価格は機能に割り当てるメモリの量に依存します。
- 使用メモリ量によって対応する無料時間枠一覧こちら http://aws.amazon.com/jp/lambda/pricing/
機能概要
他のAWSサービスのイベントに応答して、Lambda functionと呼ばれるカスタムコードを実行できるサービス。
連携できる他のサービスは以下の通り、
- S3(ストレージサービス)
- DynamoDB(フルマネージドNoSQLDB)
- Kinesis(フルマージドデータストリーミング)
プッシュモデル
例えば、以下のようなことが可能
- S3の通知設定から直接Lambda function呼び出せる
- アプリケーションからLambda functionを呼び出すことも可能。
プッシュモデルは、実行順序付けられていないモデル。つまりどのfunctionが先に実行されるかは分からない。
プルモデル
KinesisStreamやDynamoDBのストリームからイベントをプルするAWSLambdaを設定することができる。
これにより、AWSLambdaはストリームから更新を引き出し、Lambda functionを呼び出せる、これはプルモデルと呼ばれる
プルモデルは、ストリームに公開された順序でイベントを処理する。
アクセス許可
デフォルトでは、すべてのAWSリソースはプライベート。
リソースの所有者だけ(リソースを作成したAWSアカウント)、リソースにアクセスすることが可能。
Lambda functionの実行時に、それぞれのAWSのリソースにアクセスするためのアクセス許可権限が必要になるので注意。
IAMroleを経由してAWSLambdaにこれらの権限を付与できる。