$30 off During Our Annual Pro Sale. View Details »

【緊急開催!サーバーレス座談会 in JAWS-UG 大阪】Lambdaの「プロビジョニング済み同時実行」を試す_DENET寺井_20230924

Toshiki Terai
September 27, 2023

【緊急開催!サーバーレス座談会 in JAWS-UG 大阪】Lambdaの「プロビジョニング済み同時実行」を試す_DENET寺井_20230924

Lambdaの機能である「プロビジョニング済み同時実行(Provisioned Concurrency)」について、「HEY」という負荷テストツールを使用して、有効化した場合とそうでない場合の差分を検証してみた

Toshiki Terai

September 27, 2023
Tweet

More Decks by Toshiki Terai

Other Decks in Technology

Transcript

  1. ~Provisioned Concurrency~
    2023-09-26
    緊 急 開 催 ! サ ー バ ー レ ス座 談 会 in JAWS - UG 大阪
    株式会社ディーネット 寺井 俊喜(テライ トシキ)
    1
    Lambdaの「プロビジョニング済み同時実行」を試す

    View Slide

  2. 自己紹介
    2
    • 名前
    - 寺井 俊喜(テライ トシキ)
    • 所属
    - 株式会社ディーネット(2022/12~)
    - クラウドビジネス部 アーキテクト課
    • 好きなこと
    - 音楽、猫、お酒、ゲーム、効率化
    • 好きなAWSサービス
    - Amazon EventBridge
    • SNS/ブログ
    - Twitter(@TeraiToshiki)
    - DENET技術ブログ(t.terai) follow me !!

    View Slide

  3. 目次
    3

    View Slide

  4. 目次
    4
    1.プロビジョニング済み同時実行とは
    2.検証環境と使用したツールの紹介
    3.やってみた
    4.まとめ

    View Slide

  5. プロビジョニング済み同時実行
    (Provisioned Concurrency)とは
    5

    View Slide

  6. 二種類の「同時実行」
    参考:https://docs.aws.amazon.com/lambda/latest/dg/lambda-concurrency.html 6
    • 予約済み同時実行
    関数が専有する同時インスタンスの最大数
    • プロビジョニング済み同時実行
    関数に割り当てる 事前に初期化された実行環境 の数
    ※他の関数はリージョン内のすべての関数にわたる1,000の同時実行制限のうち
    「同時実行」により確保された数分を使用できなくなる
    0 100 200 300 400 500 600 700 800 900 1000
    同時実行制限
    (クオータ)
    非予約 予約済同時実行 プロビジョニングされた同時実行
    スロットリング

    View Slide

  7. プロビジョニング済み同時実行
    7

    View Slide

  8. プロビジョニング済み同時実行とは – イメージ
    8
    通常の状態(コールドスタート)
    プロビジョニング済み(ホットスタンバイ)
    検証

    View Slide

  9. 検証環境と使用したツール
    9

    View Slide

  10. 検証環境
    10
    AWS Lambda
    (関数URL)
    Amazon EC2
    (負荷ツール)
    並列同時リクエスト

    View Slide

  11. 負荷ツール - 「HEY」
    11
    • 指定した回数,並列処理数で
    リクエストを送信できる
    • 「Go」が動く環境であれば
    実行可能
    • 操作が簡単
    • コマンド:
    hey -n {回数} -c {並列数} {リクエスト先URL}
    引用:https://github.com/rakyll/hey

    View Slide

  12. やってみた
    12

    View Slide

  13. プロビジョニング済み同時実行 - 無いとき(1回目)
    13
    • おおよそ平均に近しいレス
    ポンスタイム
    • コールドスタートの処理が
    50件ほど(全体の約5%)
    13
    平均:0.0366

    View Slide

  14. プロビジョニング済み同時実行 - 無いとき(2回目)
    14
    • 平均タイムが約半分に
    →ウォームスタートの影響
    • コールドスタートの処理は
    ほぼ無さそう
    14
    平均:0.0172

    View Slide

  15. プロビジョニング済み同時実行 - 無いとき(3回目)
    15
    • 平均タイムは
    先ほどとほぼ変わらず
    • 若干タイムが遅い処理が
    ちらほら…??
    15
    平均:0.0179

    View Slide

  16. プロビジョニング済み同時実行を設定
    16

    View Slide

  17. コンソール 設定画面
    17

    View Slide

  18. コンソール 設定画面
    18

    View Slide

  19. プロビジョニング済み同時実行 - 有るとき(1回目)
    19
    • 初回起動時にもかかわらず
    短いレスポンスタイム
    • やっぱりちょい遅な処理が
    50件ほど(全体の約5%)
    19
    平均:0.0208

    View Slide

  20. プロビジョニング済み同時実行 - 無いとき(1回目)
    20
    20
    平均:0.0366
    (比較用)

    View Slide

  21. プロビジョニング済み同時実行 - 有るとき(2回目)
    21
    • 更にタイムが縮まる
    →「無いとき」の2回目と同等
    • ちょい遅な約50件は発生
    (さっきよりは早い)
    21
    平均:0.0176

    View Slide

  22. プロビジョニング済み同時実行 - 有るとき(3回目)
    22
    • 本検証最速タイム
    • やっぱりちょい遅は発生
    (さっきよりちょっと改善)
    22
    平均:0.0166

    View Slide

  23. まとめ
    23

    View Slide

  24. まとめ
    24
    • 処理速度の向上が見込める
    • ウォームスタートの恩恵
    • スパイクに対応しやすくなる
    • 料金には注意
    • 1 GB-秒あたり 0.0000053835USD(x86 料金)
    参考:メモリ128MBの関数で 10 のプロビジョニング済み同時実行
    →月額 $18.03
    • 「551HORAI」は肉まんより「甘酢団子」のが好き

    View Slide

  25. 株式会社ディーネット 寺井 俊喜(テライ トシキ)
    AWSアドバンスト
    コンサルティングパートナー
    25
    ご清聴ありがとうございました。

    View Slide