AWS Lambdaとは?サーバーレスを初心者向けに解説
AWS Lambdaは、サーバーを自分でプロビジョニング・管理することなくコードを実行できるサーバーレスコンピューティングサービスです。
「サーバーレス」という名前からサーバーが存在しないように見えますが、実際の基盤はAWSが管理しています。
Lambda関数
Lambdaで実行するコードと設定をまとめた単位をLambda関数と呼びます。
イベント
|
v
Lambda関数
|
v
処理を実行
イベントをきっかけに実行
Lambdaはさまざまなイベントと組み合わせられます。
たとえば、
S3へファイルを保存
|
v
Lambdaを実行
|
v
画像を処理
といったイベント駆動の処理を作れます。
API Gatewayなどと組み合わせてWeb APIの処理を実装することもできます。
EC2との違い
EC2では仮想サーバーを起動し、OSやソフトウェアなどを管理します。
Lambdaでは、利用者は主に実行するコードと必要な設定に集中できます。
EC2
→ サーバーを用意してアプリを動かす
Lambda
→ コードを用意し、実行基盤の多くをAWSに任せる
どちらが優れているという話ではなく、用途によって使い分けます。
実行時間
Lambda関数は永続的に動かし続けるサーバーではなく、イベントなどに応じて処理を実行します。
長時間常駐する処理など、Lambdaに向かないワークロードもあります。
料金の考え方
Lambdaはリクエスト数や実行時間などに基づく料金体系を持っています。
常時稼働するサーバーとは料金の考え方が異なるため、ワークロードによって適性があります。
LambdaとVPC
Lambda関数からVPC内のRDSなどへアクセスする構成も可能です。
VPCへ接続する場合はネットワーク設定も理解する必要があります。
サーバーレス = 運用ゼロ?
サーバーOSを自分で管理する必要はありませんが、
- コード
- IAM権限
- ログ
- エラー処理
- セキュリティ
- コスト
などは利用者が適切に設計・運用する必要があります。
🍯 はちみつメモ
AWS Lambda = サーバー管理をAWSに任せ、コードの実行に集中できるサーバーレスサービス
まとめ
- Lambdaはサーバーレスコンピューティングサービス
- 実行するコードをLambda関数として作成する
- イベントをきっかけに処理を実行できる
- EC2より利用者がサーバー管理を意識する範囲が小さい
- S3やAPI Gatewayなど多くのAWSサービスと連携できる
- VPC内のリソースへアクセスする構成も可能
- サーバーレスでも利用者側の運用・セキュリティ責任はある
次におすすめ
次は**「Amazon CloudFrontとは?」**を学びます。