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. Copyright © 2022 BeeX Inc. All Rights Reserved. 2 那須

    隆 超略歴 • ネットワークエンジニア • インフラエンジニア • SRE • SAPコンサル • New Relicプリセールス 過去の受賞的なもの • Japan APN Ambassador 2019/2020
  2. 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/
  3. 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/ 本当にパフォーマンス向上するのかどうか確かめた (疑っているわけではない
  4. Copyright © 2022 BeeX Inc. All Rights Reserved. 5 計測内容

    以下の方法で計測して応答時間を比較しました。 1. 新機能で SSM パラメータストアから String パラメータを取得 2. SDK を使って SSM パラメータストアから String パラメータを取得 3. 新機能で SSM パラメータストアから SecureString パラメータを取得 4. SDK を使って SSM パラメータストアから SecureString パラメータを取得
  5. 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
  6. 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を使ってパラメータを 取得する場合と比較して半分以下の時間で済む!
  7. Copyright © 2022 BeeX Inc. All Rights Reserved. 8 New

    Relicで可視化すると効果がわかりやすい
  8. 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 (上限緩和不可)
  9. Copyright © 2022 BeeX Inc. All Rights Reserved. 10 ということを記事にしてます

    https://www.beex-inc.com/blog/get-parameter-via-lambda-extention