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

Lambda拡張機能を使ってLambdaパフォーマンスを上げよう

Takashi Nasu
November 09, 2022

 Lambda拡張機能を使ってLambdaパフォーマンスを上げよう

Takashi Nasu

November 09, 2022
Tweet

More Decks by Takashi Nasu

Other Decks in Technology

Transcript

  1. Lambda拡張機能を使って
    Lambdaパフォーマンスを上げよう
    JAWS-UG朝会 #39
    2022.11.9
    Takashi Nasu

    View full-size slide

  2. Copyright © 2022 BeeX Inc. All Rights Reserved. 2
    那須 隆
    超略歴
    • ネットワークエンジニア
    • インフラエンジニア
    • SRE
    • SAPコンサル
    • New Relicプリセールス
    過去の受賞的なもの
    • Japan APN Ambassador 2019/2020

    View full-size slide

  3. Copyright © 2022 BeeX Inc. All Rights Reserved. 3
    AWS Parameters and Secrets Lambda Extension
    投稿日: Oct 18, 2022
    AWS は本日、AWS Parameters and Secrets Lambda Extension をリリースしました。これは、AWS
    Lambda ユーザーが AWS Systems Manager Parameter Store からパラメータを取得し、AWS Secrets
    Manager からシークレットを取得するための便利な方法です。AWS Lambda のお客様は、この拡張機
    能を活用すれば、パラメータとシークレットを取得するレイテンシーとコストを削減でき、アプリケー
    ションのパフォーマンスを向上させることができます。これまでお客様は、シークレットとパラメータ
    を取得するためにサービスのコアライブラリ、または Lambda 関数内のサービス SDK 全体を初期化す
    る必要がありました。現在はこの新しい拡張機能を使用するだけで簡単にシークレットとパラメータを
    取得できます。この軽量で使いやすい拡張機能は、パラメータとシークレットをキャッシュし、
    Lambda 関数のライフサイクル全体で保持します。この拡張機能は、Lambda 関数を実行しているユー
    ザーのロールと同じアクセス許可を使用して、独立した実行環境の中で動作します。
    https://aws.amazon.com/jp/about-aws/whats-new/2022/10/aws-parameters-secrets-lambda-extension/

    View full-size slide

  4. Copyright © 2022 BeeX Inc. All Rights Reserved. 4
    AWS Parameters and Secrets Lambda Extension
    投稿日: Oct 18, 2022
    AWS は本日、AWS Parameters and Secrets Lambda Extension をリリースしました。これは、AWS
    Lambda ユーザーが AWS Systems Manager Parameter Store からパラメータを取得し、AWS Secrets
    Manager からシークレットを取得するための便利な方法です。AWS Lambda のお客様は、この拡張機
    能を活用すれば、パラメータとシークレットを取得するレイテンシーとコストを削減でき、アプリケー
    ションのパフォーマンスを向上させることができます。これまでお客様は、シークレットとパラメータ
    を取得するためにサービスのコアライブラリ、または Lambda 関数内のサービス SDK 全体を初期化す
    る必要がありました。現在はこの新しい拡張機能を使用するだけで簡単にシークレットとパラメータを
    取得できます。この軽量で使いやすい拡張機能は、パラメータとシークレットをキャッシュし、
    Lambda 関数のライフサイクル全体で保持します。この拡張機能は、Lambda 関数を実行しているユー
    ザーのロールと同じアクセス許可を使用して、独立した実行環境の中で動作します。
    https://aws.amazon.com/jp/about-aws/whats-new/2022/10/aws-parameters-secrets-lambda-extension/
    本当にパフォーマンス向上するのかどうか確かめた
    (疑っているわけではない

    View full-size slide

  5. Copyright © 2022 BeeX Inc. All Rights Reserved. 5
    計測内容
    以下の方法で計測して応答時間を比較しました。
    1. 新機能で SSM パラメータストアから String パラメータを取得
    2. SDK を使って SSM パラメータストアから String パラメータを取得
    3. 新機能で SSM パラメータストアから SecureString パラメータを取得
    4. SDK を使って SSM パラメータストアから SecureString パラメータを取得

    View full-size slide

  6. Copyright © 2022 BeeX Inc. All Rights Reserved. 6
    計測結果
    新機能&String SDK&String
    新機能&
    SecureString
    SDK&
    SecureString
    1 回目 20.1 ms 63.6 ms 19.8 ms 49.2 ms
    2 回目 59.4 ms 193.7 ms 20.2 ms 64.9 ms
    3 回目 19.6 ms 212.4 ms 19.8 ms 54.3 ms
    4 回目 40.6 ms 192.3 ms 19.6 ms 57.1 ms
    5 回目 1.3 ms 202.0 ms 18.8 ms 67.1 ms

    View full-size slide

  7. Copyright © 2022 BeeX Inc. All Rights Reserved. 7
    新機能&String SDK&String
    新機能&
    SecureString
    SDK&
    SecureString
    1 回目 20.1 ms 63.6 ms 19.8 ms 49.2 ms
    2 回目 59.4 ms 193.7 ms 20.2 ms 64.9 ms
    3 回目 19.6 ms 212.4 ms 19.8 ms 54.3 ms
    4 回目 40.6 ms 192.3 ms 19.6 ms 57.1 ms
    5 回目 1.3 ms 202.0 ms 18.8 ms 67.1 ms
    計測結果
    新機能を使うとSDKを使ってパラメータを
    取得する場合と比較して半分以下の時間で済む!

    View full-size slide

  8. Copyright © 2022 BeeX Inc. All Rights Reserved. 8
    New Relicで可視化すると効果がわかりやすい

    View full-size slide

  9. Copyright © 2022 BeeX Inc. All Rights Reserved. 9
    サービスクオータには気をつけよう
    Lambda Function w/Extention
    Systems Manager Parameter Store / Secrets Manager Cache
    キャッシュがあればキャッシュから情報取得
    スループット制限の影響を受けない
    Cold Start時
    or キャッシュがない場合
    or キャッシュの有効期限が切れた場合は
    GetParameter / GetSecretValue APIで取得
    スループット制限の影響を受ける
    スループット制限によりAPIリクエストがエラーになることを回避する方法
    • スループット制限を引き上げる(Parameter Storeのみ)
    • APIリクエスト部分にExponential Backoffを実装する
    Parameters and Secrets Lambda Extentionの仕組み
    (参考)サービスのAPIリクエスト上限値
    • Parameter Store:GetParameter、GetParameters、GetParametersByPath合計でデフォルト 40 TPS (高スループット 3,000TPS)
    • Secrets Manager:DescribeSecret および GetSecretValue API リクエストの合計で 5,000 TPS (上限緩和不可)

    View full-size slide

  10. Copyright © 2022 BeeX Inc. All Rights Reserved. 10
    ということを記事にしてます
    https://www.beex-inc.com/blog/get-parameter-via-lambda-extention

    View full-size slide