LoginSignup
6
8

More than 5 years have passed since last update.

AWS Lambdaてナニ?

Posted at

1. AWS Lambdaとは

amazon aws上で提供されている、サーバーレスのAPI実行環境。
自前のサーバーをたてる必要なく、lambda上でコードが実行される。
awsの別のサービスのイベントを検知し、自動でコードを実行するといった、イベントの発生をトリガーとした運用を行える。

2. lambdaの特徴

  • インフラ周りの管理が不要
    自身で一からサーバー環境を構築する必要が無い。
    インフラ周りはすべてlambdaがハンドリングして管理するため、インフラ管理の工数も大幅に削減できる。
    また、開発者がビジネスロジックの開発に集中できる利点が生まれる。

  • 実行環境のオートスケール
    例えば、運用を続けるうちにリクエスト数が増大してきた場合、負荷に耐えうる最適なパフォーマンスにlambdaがオートスケールしてくれる。
    サーバーリソースの管理も意識する必要がない。

  • ほぼ全てのAWSサービスに対するイベントハンドリング及び操作
    lambdaの機能のみで、ほぼ全てのAWSサービス(イベントソース)からのイベントをキャッチし、対応する処理を実行できる。

3. lambdaの料金体系

・lambdaファンクションに対するリクエスト回数
・lambdaファンクションのメモリに応じた実行時間

上記二点に対して課金が発生する。
100万リクエスト辺り0.02ドル、1GBのファンクションを0.1秒実行で0.00001667ドルらしい。
無料利用枠は、月に100万リクエスト・40万GBのコンピューティング時間となっている。(1年経過後も継続)
https://aws.amazon.com/jp/lambda/pricing/

4. lambdaにおける開発

4.1 開発言語

・Node.js [Javascript]         
・Python       
・Java [Java8互換]       
・C# [.net core]       

サードパーティーライブラリ等の組み込みも可能。       

4.2 開発環境

lambdaが提供しているブラウザベースのコードエディタが利用可能。
オンプレ上で記述したテキストファイルをZIPに圧縮し、アップロードも可能。

5. lambdaの仕組み

lambdaファンクションと呼ばれる単位で実行される関数を作成する。
1ファンクション=1機能が原則。

機能例.

・amazon s3にファイルが投入されたら、ファイルのメタデータを抜き出して加工する
→ DBに格納し、ファイル検索のためのインデックスとしての活用を図る

・s3に投入されたファイルを検知し、SNSと連携してファイルの追加を通知する
→ ユーザーに対して即座に通知ができる

lambdaファンクションには、ファンクション毎に実行メモリ量を割り当てる。処理の複雑さ等によって割り当て量が柔軟に設定可能。
また、ファンクション毎のタイムアウト時間の設定も必要。
ファンクションに対して紐付けるawsサービスの指定も行う。(イベントソース)

イベントソースからは、発生したイベントの詳細をJSONとして送られる。
s3であれば、以下のような情報が含まれる。

・PUTされたバケット名
・PUTされたオブジェクトの詳細(キー・サイズ・タグなど)
・イベント発生時刻 etc...

また、ファンクション毎にIAMロールを指定し、イベントソースに対する詳細なアクセス権の設定が可能。
lambdaファンクションそのものの実行モニタリングも自動で行われる。

・リクエスト数
・遅延率
・可用性・エラー率
(CloudWatchへ保存され、CloudWatchのコンソール上で閲覧可能)

6. ユーザーアプリケーションからの利用

awsのサービスに対する処理だけでなく、独自のユーザーアプリケーションからの利用も可能。
lambda経由でs3に対してファイルを投入する、lambda経由でec2に対する処理を実行する、
lambda経由でs3のファイル情報を取得するなど、
awsの各種サービスに対する処理をlambdaに対するリクエストのみで完結させられる点がメリット。(SDK等使わない)

尚、上記の使い方の場合、lambdaに加えてamazon api gatewayを併せて利用する必要がある。
(AWS上のコード等を、RESTAPIとして外部に公開してアクセスできるようにするサービス)
fsathon-lambda01.png

6
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
8