🚀 AWS Lambda 予約済み同時実行数

レストランの席予約システムで理解しよう!

🍽️ レストランの席予約システムに例えると...

🏪 通常のレストラン(設定なし)

全ての席が早い者勝ち!

👤
👤
👤
👤
👤
👤
👤
👤
🪑
🪑

人気のお客さんが来ると、他の人は席に座れない可能性が...

🏪 予約席ありレストラン(設定あり)

重要なお客さん用に席を確保!

📋
📋
📋
👤
👤
👤
👤
🪑
🪑
🪑

重要なお客さんは必ず席を確保できる!

空席(利用可能)
予約席(確保済み)
使用中
💡 つまり... Lambda の予約済み同時実行数とは、特定のLambda関数が「必ず使える実行枠」を事前に確保しておく仕組みです!

📊 Lambda での実際の仕組み

項目 レストランの例 Lambda の実際
席 / 実行環境 レストランの席 Lambda の同時実行環境
お客さん レストランのお客さん Lambda へのリクエスト
予約席 VIP客用の確保された席 特定関数用の予約済み同時実行数
総席数 レストランの総席数(50席) AWSアカウントの同時実行上限(1000など)
メリット
  • 確実な実行保証
    重要な関数が必ず動く
  • 予測可能な性能
    レスポンス時間が安定
  • 他関数の影響を回避
    リソース競合を防止
⚠️
注意点
  • コスト増加の可能性
    使わない分も確保される
  • 全体の上限は変わらない
    他の関数が使える枠が減る
  • 適切な設定が重要
    過剰確保は無駄になる
⚙️
設定方法
  • AWS Console
    Lambda関数の設定から
  • AWS CLI
    put-provisioned-concurrency-config
  • CloudFormation
    IaCで管理も可能

🔄 Reserved Concurrency vs Provisioned Concurrency

よく混同される2つの機能ですが、実は 全く違う目的 の機能です!

📋 Reserved Concurrency

「席を確保」= 実行枠の上限設定

🏃‍♂️ お客さんが来てから席の準備開始
席は確保されているが、テーブルセッティングに時間がかかる
📋
📋
📋
  • 実行枠の上限を設定
  • 他の関数からリソースを保護
  • コールドスタートは発生する

⚡ Provisioned Concurrency

「席の事前準備」= 実行環境の事前起動

お客さんが来る前に席の準備完了
テーブルセッティング済み、すぐに座れる
  • 実行環境を事前に起動
  • コールドスタートを完全回避
  • レスポンス時間が最速・最安定
🔗 2つの機能は組み合わせ可能!

Reserved Concurrency で実行枠を確保し、その中の一部をProvisioned Concurrency で事前起動することができます。

例: Reserved Concurrency = 10、Provisioned Concurrency = 3
→ 10個の確保された実行枠のうち、3個は常時起動済み

💰 コストと用途の比較

項目 Reserved Concurrency Provisioned Concurrency
主な目的 実行枠の確保・制限 コールドスタートの回避
コスト 無料(実行時のみ課金) 有料(常時課金)
レスポンス時間 コールドスタート有り 常に高速
適用場面 リソース保護、スロットリング リアルタイムAPI、即応性重視
設定の複雑さ シンプル やや複雑(バージョン管理等)
🎯 いつ使う? Reserved Concurrency はリソース保護、Provisioned Concurrency は性能最適化。目的に応じて使い分けや組み合わせを検討しましょう。

🚀 まとめ

Lambda の予約済み同時実行数は、レストランの予約席のように
「重要な処理のために実行環境を事前確保する機能」 です。
適切に設定することで、安定したサービス提供が可能になります!

Created by SSuzuki1063

AWS SAP Learning Resources