Upgrade to Pro — share decks privately, control downloads, hide ads and more …

AWS Lambda のランタイムを理解しないと "できること" と "できないこと" を永遠...

AWS Lambda のランタイムを理解しないと "できること" と "できないこと" を永遠に判断できない

Avatar for Ikuma Yamashita

Ikuma Yamashita

February 20, 2026
Tweet

More Decks by Ikuma Yamashita

Other Decks in Technology

Transcript

  1. Ikuma Yamashita 1 AWS Lambda のランタイムを理解しないと “できること” と “できないこと” を

    永遠に判断できない 第1回 Japan AWS Jr. Champions Tech Ignite Feb. 20, 2026
  2. SELF INTRODUCTION 2/26/2026 Ikuma Yamashita 2 名前 山下 生真 (Ikuma

    Yamashita) 経歴 組み込みエンジニア → WEB エンジニア → インフラエンジニア 趣味 イラスト OSS コントリビューション 46ki75 好きな Emoji - Distorted Face 2025年9月に Unicode 17.0 として承認
  3. はじめに 2/26/2026 Ikuma Yamashita 3 この LT でお話しすること AWS Lambda

    を使用する際に知っておくべきなのに 知らなくても使えてしまう部分の知識 この LT でお話ししないこと AWS Lambda を使用する際に自然と知る必要が 出てくる可能性が高い部分の知識
  4. AGENDA 2/26/2026 Ikuma Yamashita 4 01 AWS Lambda の呼び出しモデルを知る 02

    AWS Lambda のランタイムを知る 03 AWS Lambda の実行環境を知る 04 AWS Lambda のライフサイクルを知る 05 AWS Lambda の SnapStart を知る 06 AWS Lambda のスケーリングを知る 07 AWS Lambda を知る理由を知る
  5. AWS Lambda の呼び出しモデルを知る 2/26/2026 Ikuma Yamashita 8 1. Direct API

    AWS CLI, AWS SDK などから直接 Lambda 関数を呼び出す 2. イベント駆動 Amazon S3, Amazon SNS, Amazon EventBridge などのサービスが呼び出す 3. Event Source Mapping 特定サービスからイベントをバッファリングしてバルク処理を行う 最終的にはすべての呼び出しはすべて AWS サービス API 経由になっていると考えるのが妥当 (IAM の権限モデルがあるため) ただしユーザー目線ではこの3種類に分類すると理解しやすい
  6. AWS Lambda の呼び出しモデルを知る 2/26/2026 11 Amazon DocumentDB Amazon DynamoDB Amazon

    Kinesis Data Streams Amazon Managed Streaming for Apache Kafka Amazon MQ Amazon SQS Apache Kafka (Self-Hosted) Event Source Mapping に対応しているサービス Ikuma Yamashita
  7. AWS Lambda のランタイムを知る 2/26/2026 14 Ikuma Yamashita Runtime API 実は実行環境内部で

    HTTP API として提供されている ※ Lambda 環境では TCP → UNIX ドメインソケット → virtio + ioctl() システムコールにプロキシされている可能性が高い (Runtime Interface Emulator の実装より)
  8. AWS Lambda のランタイムを知る 2/26/2026 17 Runtime Interface Client は Runtime

    API のラッパー Ikuma Yamashita Runtime Interface Client の Node.js 向け実装 aws-lambda-ric モジュールとしてインポート
  9. AWS Lambda のランタイムを知る 2/26/2026 18 Ikuma Yamashita AWS Lambda 上で

    “ランタイム” として提供されているものの正体 (ZIP デプロイ)
  10. AWS Lambda のランタイムを知る 2/26/2026 22 Ikuma Yamashita 厳密には一部動的リンクライブラリが依存として残る libc などは

    LGPL-2.1 なので静的リンクするとソースを公開しなければならないため 一般的な C ライブラリは Amazon Linux に入っているため問題なし
  11. AWS Lambda のランタイムを知る 2/26/2026 23 Ikuma Yamashita libc の代わりに musl

    を使えば完全静的リンク可能 x86_64-unknown-linux-musl ターゲットでビルドすると完全な静的リンクになる ここまでバンドルできれば Linux カーネルのみで動く
  12. AWS Lambda の実行環境を知る 2/26/2026 25 Ikuma Yamashita Firecrackerとは? AWS が

    AWS Lambda, AWS Fargate のために最適化した VMM Firecracker QEMU 目的 サーバレス向け 汎用仮想化 起動速度 0 ~ 200 ms 1000~10000 ms メモリフットプリント 5 ~ 20 MB 200 ~ 500 MB 柔軟性 低い 高い オーバーヘッド 極めて小さい 大きい Firecracker ができないこと AWS Lambda ができないこと ⊃
  13. 2/26/2026 Ikuma Yamashita 42 付録 SnapStart が要求するランタイム特性 1. Safepoint を安全に作ることができる

    2. スナップショット後に再開しても破綻しない 3. JIT / GC の内部状態が再構築可能 4. ランタイムが決定的に初期化できる
  14. 2/26/2026 Ikuma Yamashita 44 付録 多くの言語は ガベージコレクタ (GC) を持つ GC

    はメモリの解放・移動を行う (単に解放のみすると説明されることもあるが移動は非常に重要)
  15. 2/26/2026 Ikuma Yamashita 45 付録 多くの言語は ガベージコレクタ (GC) を持つ GC

    はメモリの解放・移動を行う (単に解放のみすると説明されることもあるが移動は非常に重要)