0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【SAS対策】AWS Lambda

Posted at

AWS Lambdaとは

  • サーバーレスでコードを実行できるサービス
  • EC2のようにサーバーを管理する必要がなく、関数単位でコードを実行可能
  • 料金は「リクエスト数」と「実行時間(メモリ量 × 秒)」に応じて発生
  • 典型的な利用例
    • API Gateway + Lambda → REST APIバックエンド
    • S3イベント + Lambda → ファイルアップロード処理
    • DynamoDB Streams + Lambda → データ変更トリガー

レイヤー(Lambda Layers)

  • 複数のLambda関数で共有したいライブラリや依存関係を外出しできる仕組み

  • 例:

    • 共通のPythonライブラリ(NumPy, Pandasなど)
    • 共通のユーティリティ関数
  • 各Lambda関数のデプロイパッケージを軽量化できる

  • 最大5つのレイヤーを1つのLambda関数に適用可能

Lambda関数
  ├─ 自分のコード
  ├─ レイヤー1(共通ライブラリA)
  ├─ レイヤー2(共通ライブラリB)

Invocation(呼び出し)

  • Lambda関数を実行することを「Invocation」と呼ぶ
  • Invocationには以下の2種類があります:

1. 同期呼び出し(Synchronous Invocation)

  • 呼び出し元が Lambdaの処理完了を待つ

  • 例:

    • API Gateway → Lambda
    • CLI/SDKからの直接呼び出し

2. 非同期呼び出し(Asynchronous Invocation)

  • 呼び出し元は イベントを投げるだけで待たない

  • Lambdaは裏でキューに入れて処理

  • 例:

    • S3イベント → Lambda
    • SNS → Lambda

非同期呼び出しの場合、失敗したらリトライ(最大2回)+ デッドレターキュー(SQS/SNS)に送信可能

イメージ

 イベント発生
   ├─ API Gateway
   ├─ S3 (ファイルアップロード)
   ├─ DynamoDB Streams
   └─ 他のAWSサービス
       │
       ▼
 [ Invocation ]
   ├─ 同期呼び出し (レスポンスを待つ)
   └─ 非同期呼び出し (待たずに処理をキューへ)
       │
       ▼
 [ Lambda 実行環境 ]
   ├─ レイヤー (共通ライブラリ/依存関係)
   │     ├─ NumPy, Pandas, 共通関数 etc.
   │
   ├─ ユーザーコード (関数本体)
   │
   └─ 実行結果
       │
       ▼
  呼び出し元 or 後続処理

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?