【初心者向け】AWS Lambda とは

【初心者向け】AWS Lambda とは

AWS Lambda (以下Lamda)は、小さなプログラムを実行できる仕組みです。
あらかじめ登録しておくと実行できます。
Lambdaは特に S3との組み合わせで注目されており、 AWS を使用していく上で大きく活用されていく機能となるでしょう。

AWS Lambda とは

AWS Lambda とはデータやリクエストのリアルタイム処理やバックエンドの処理を自動実行する仕組みです。
このような処理の為の専用サーバーを準備や管理する必要なく(サーバレス)、必要なイベントに応じて自動実行されます。常駐サーバーと異なりプログラムの実行時のみ課金されます。

上記でも記載がありますが、Lambdaの便利なところはサーバレスなところです。つまりプログラムを実行するまでに必要なものがLambdaだけで事足りてしまうことです。

通常必要なものといえば、サーバー(AWSでいうとEC2)、Webサーバ、データを登録するDBなどを構築した後に開発などを行っていきます。これらが不要となり、単純な話、プログラムの実行環境を提供しているサービスになります。

Lambda 関数と呼ばれる形式の関数を用いますが、これは特別新しい言語ではありません。
よく知られているプログラミング言語で書いたコードを元に「 Lambda Console」 を用いてグラフィカルに作成できます。
使える言語は Java、C#、Python、Ruby、node.js、Goなどです。よくある目的のためのテンプレートも揃っています。

Lambda 関数はLambdaサービスに保存されます。何らかのトリガーで特定の AWS リソースにおいて実行されます。
有名な例はS3バケットに画像が置かれるとサムネイル作成関数が呼び出されサムネイルを自動的に作成する例です。

S3バケットに画像が置かれるとサムネイル作成関数が呼び出されサムネイルを自動的に作成する例です。

Lambdaの用語
LambdaはプログラムコードをLambdaサービスにアップロードしておくと特定の AWS サービスを実行できる仕組みです。
アップロードするプログラムコードを Lambda 関数と言います。Lambdaに関する用語は以下です。

項目内容
イベント駆動S3にファイルが置かれた、Dynamo DBにデータが書き込まれた、SESにメールが届いたなど、AWSサービスに何か生じたときに、Lambdaのプログラムを実行できる。
CGI代わりにLamdaAPI Gatewayと見合わせると、WebのCGIに見える

イベントソースの一覧

Lambda を呼び出す方法は3種類あります。
有名なのは S3や SES、 API Gateeway組み合わせるパターンです。
SES(Amazon Simple Email Service) はメールを受信した時にアクションを起こすといった形で使います。
API Gateway は Web ブラウザーなどから API が呼び出されたりした時に何らかの処理を実行するといった形で使います。

Lambdaを呼び寄せるサービスの一覧

Lambdaがイベントを読み取るサービスLambda関数を同期的に呼び出すサービス Lambda関数を非同期的に呼び出すサービス
KinesisELBS3
DynamoDBALBSNS
SQSCongnitoSES
LexCloudFormation
AlexaCloudWatch Log
API GatewayCloudWatch Events
CloudFrontCodeCommit
kinesis Data FirehoseConfig

同期とは処理が終わるまで待つこと
非同期とは処理が終わるまで待たないこと

Lambdaの料金

Lambdaの料金は「単価×実行時間(秒単位)」です。単価はLambdaで確保するメモリによって異なります。