Lambda実行ログ連携

Site24x7とのLambda拡張連携を用いて、Lambda環境にリアルタイムな観測性をもたらします。拡張機能は、Lambda関数のランタイムプロセスの外部でコンパニオンプロセスとして実行されるため、実行環境を構成できます。

Lambda拡張とSite24x7との連携により呼び込みの前、最中、あとの実行サイクルにプラグインできます。ログはCloudWatchではなくLambdaランタイムより取得され、Site24x7アプリケーションログにプッシュされた後、それらが診断されます。

JSONアクセスポリシーにlambda:UpdateFunctionConfigurationが追加されている場合、連携は自動的に行われます。

Site24x7はAWS承認済みのLambdaサービスプログラムパートナーです。

AWS-reviewed Lambda Service Ready Program partner

目次

要件

AWSコンソールで次のものが必要です。

  • AWSアカウントID.
  • Site24x7で監視されているLambda関数

Site24x7コンソールで次のものが必要です。

  • 有効かつアクティブなAWSアカウントを作成します。
  • AWSアカウントとSite24x7を連携します。詳細はこちら
  • Lambda拡張とアカウントを自動的に連携させる権限lambda:UpdateFunctionConfigurationを取得します。
  • 自動で行わない場合、次の手順で手動で連携設定を行えます。

Lambda拡張との手動連携

手動でSite24x7とLambda拡張を連携するには次の手順を行ってください。

  1. Site24x7アカウントにログインします。
  2. Cloud > AWS > 全アカウントサマリ > Lambda監視の順に移動します。
  3. Lambda拡張と連携したいLamnda関数監視の名前を選択します。
  4. テキスト項目のログコンフィグキーLambda拡張ARNがあるLambda拡張ログタブに移動します。
  5. AWS管理コンソールにログインし、ページ上部の検索バーに"AWS Lambda”と入力します。
  6. 関数にアクセスし、監視されているLambda関数を検索します。
  7. 関数を選択後、レイヤーを選択してレイヤーを追加します。
  8. レイヤーの選択で、ARNを入力を選択します。ARNの入力テキスト項目にSite24x7コンソールで表示されたLambda拡張ARNをペーストします。追加をクリックします。
  9. 成功メッセージを取得したら、環境変数タブまでスクロールダウンして編集を選択します。
  10. 環境変数の追加を選択します。
  11. デフォルトで、入力キーはlogTypeConfigで、値はSite24x7コンソールのログコンフィグキーで表示されたエンコード文字列です。保存をクリックすると、成功メッセージを受信します。
  12. Site24x7コンソールでLambda実行ログタブをリロードすると連携成功画面が表示されます。

Lambda実行ログのZIPアーカイブを用いたSite24x7とLambda拡張連携

Zipファイルを用いた連携の際に、SITE24X7_LAMBDA_LOG_EXTENSIONlogTypeConfigをキーとして追加する必要があります。コンテナイメージを使用して関数をデプロイするには、Zipファイルをダウンロードして、コンテナイメージの/opt/extensionsフォルダ内にある拡張ファイルに追加する必要があります。詳細はこちら

ZIPアーカイブでLambda拡張を連携するには

  1. Site24x7にログインします。
  2. Cloud > AWS > すべてのアカウントサマリー > Lambda監視に移動します。
  3. Lambda拡張を行いたい監視名を選択します。
  4. Lambda拡張またはLambda拡張ログタブに移動すると、ZIPファイルを用いて連携タブと、ログコンフィグキー環境キー (SITE24X7_LAMBDA_LOG_EXTENSION)、S3 URLのテキスト項目が、リージョン選択ドロップダウンとともに表示されます。
  5. ブラウザーで共有された(選択したリージョンに基づく)S3 URLをコピー&ペーストし、Zipファイルをダウンロードします。そのZipファイルに拡張内容が含まれています。
  6. AWS管理コンソールにログインし、ページ上部の検索バーでAWS Lambdaと入力します。
  7. レイヤーに移動して、レイヤーの作成をクリックします。
  8. 名前項目を入力して、手順5でダウンロードしたZipファイルをアップロードします。Site24x7で取得したS3 URLをペーストします。作成をクリックすると、成功メッセージを受け取れます。
  9. レイヤーを作成したら、Site24x7で監視している関数にレイヤーを含めることでLambda拡張を追加できます。レイヤー作成後に取得したバージョンARNをコピーし、監視しているLambda関数画面のARNの入力テキスト項目にペーストします。その後、追加をクリックします。
  10. 監視している関数の設定タブで、左側の移動バーから環境変数を選択し、編集をクリックします。
  11. 環境変数の編集ページで、環境変数の追加をクリックします。
  12. デフォルトで、入力したキーlogTypeConfigとなり、Site24x7で入力したログコンフィグキー項目のエンコード文字列が値となります。
  13. 環境キーにSITE24X7_LAMBDA_LOG_EXTENSIONを入力します。値にはどのような値を入力してもかまいません。保存をクリックします。その後、成功メッセージが受信されます。
  14. Site24x7のLambda拡張ログタブをリロードし、連携結果を表示します。

Lambda拡張メトリックの拡張ARNを用いた連携

Lambda拡張メトリックの拡張ARNを使用して、手動でSite24x7と連携する方法は次のとおりです。

  1. Site24x7にログインします。
  2. Cloud > AWS > すべてのアカウントサマリー > Lambda監視に移動します。
  3. Lambda拡張を行いたい監視名を選択します。
  4. Lambda拡張タブまたはLambda実行メトリックタブに移動すると、ログコンフィグキー環境キー (SITE24X7_LAMBDA_METRICS_EXTENSION)、Lambda拡張ARNが表示されます。
  5. AWS管理コンソールにログインし、ページ上部の検索バーでAWS Lambdaと入力します。
  6. 関数をクリックし、Site24x7監視しているLambda関数を検索します。
  7. 関数を選択後、レイヤーを選択後、レイヤーを追加します。
  8. レイヤーの選択配下で、ARNを指定します。Site24x7コンソールで取得したLambda拡張ARNをARNの指定にペーストします。追加をクリックします。
  9. 成功メッセージ受信後、監視している関数の設定タブに移動して、左側の移動バーから環境変数を選択します。
  10. 環境変数の追加を選択します。
  11. デフォルトで、入力したキーlogTypeConfigとなり、Site24x7で入力したログコンフィグキー項目のエンコード文字列が値となります。
  12. 環境キーにSITE24X7_LAMBDA_LOG_EXTENSIONを入力します。値にはどのような値を入力してもかまいません。
  13. 保存をクリックします。その後、成功メッセージが受信されます。
  14. Site24x7で、Lambda拡張メトリックタブをリロードし、連携された画面を表示します。

Lambda拡張メトリックのZipアーカイブを使用したLambda拡張連携

コンテナイメージを使用して関数をデプロイするには、Zipファイルをダウンロードして、コンテナイメージの/opt/extensionsフォルダ内にある拡張ファイルに追加する必要があります。

Lambda拡張メトリックのZipアーカイブを使用した連携方法は次のとおりです。

  1. Site24x7にログインします。
  2. Cloud > AWS > すべてのアカウントサマリー > Lambda監視に移動します。
  3. 連携を行いたいLambda関数監視名を選択します。
  4. Lambda拡張タブまたはLambda拡張メトリックタブに移動すると、Zipファイルを用いた連携タブと、ログコンフィグキー環境キー (SITE24X7_LAMBDA_METRICS_EXTENSION)、S3 URLとともにリージョン選択のドロップダウンが表示されます。
  5. ブラウザーで共有された(選択したリージョンに基づく)S3 URLをコピー&ペーストし、ZIPファイルをダウンロードします。Zipファイルには拡張情報が含まれます。
  6. AWS管理コンソールにログインし、ページ上部の検索バーでAWS Lambdaと入力します。
  7. レイヤーに移動し、レイヤーの作成をクリックします。
  8. 名前項目を入力し、手順5でダウンロードしたZipファイルをアップロードします。Site24x7コンソールで取得したS3 URLをペーストします。作成をクリックすると、成功メッセージが受信されます。
  9. レイヤーを作成したら、Site24x7で監視している関数にレイヤーを含むことで、Lambda拡張を追加できます。レイヤー作成後に取得したバージョンARNをコピーして、監視しているLambda関数画面のレイヤーの追加にあるARN指定のテキストにペーストします。追加をクリックします。
  10. 監視している関数の設定タブで、左側の移動バーから環境変数を選択します。編集をクリックします。
  11. 環境変数の編集ページで、環境変数の追加をクリックします。
  12. デフォルトで、入力したキーlogTypeConfigとなり、Site24x7で入力したログコンフィグキー項目のエンコード文字列が値となります。
  13. 環境キーにSITE24X7_LAMBDA_LOG_EXTENSIONを入力します。値にはどのような値を入力してもかまいません。保存をクリックすると、成功メッセージが受信されます。
  14. Site24x7のLambda拡張メトリックタブをリロードし、連携された画面を表示します。

Lambda拡張バージョンのアップグレード

(i) ARN方法

ARN方法で連携したLambda拡張のバージョンをアップグレードする方法は次のとおりです。

  1. ARN方法を使用したLambda拡張連携の手順1から3を行います。
  2. Lambda拡張ログタブに移動すると、上部に黄色ボックスが表示されます。Lambdaログ拡張のアップグレードをクリックすると、ポップアップが表示されます。拡張ARNでアップグレードを選択すると、ログコンフィグキーとLambda拡張ARNの項目が存在します。
  3. ログコンフィグキーとLambda拡張ARNの新しい値を使用して、手順5から11を行い、レイヤーの作成と環境変数の追加を行います
  4. Site24x7で、Lambda実行ログタブをリロードし、連携された画面を表示します。
(ii) .ZIPアーカイブ

Zipアーカイブ方法を使用したLambda実行のバージョンアップグレード方法は次のとおりです。

  1. Zipアーカイブを使用したLambda拡張連携の手順1から3を行います。
  2. Lambda拡張ログタブに移動しすると、上部に黄色ボックスが表示されます。Lambdaログ拡張のアップグレードをクリックすると、ポップアップが表示されます。Zipファイルでアップグレードを選択すると、S3 URL項目が表示されます。
  3. このS3 URLを使用して、手順5から11を行い、レイヤーの作成と環境変数の追加を行います。
  4. Site24x7でLambda拡張ログタブをリロードし、連携された画面を表示します。
  • Site24x7-Lambda拡張を連携した監視はLambda実行メトリックバージョン3以上でサポートしています。バージョン2を使用している場合は、バージョン3にアップグレードしてメトリックを収集してください。
  • Lambda拡張のログとメトリックを監視するには、連携の前に、Lambda拡張タブ内のログメトリックチェックボックスの両方にチェックを入力する必要があります。要件によって、ログとメトリックのいずれかを選択することもできます。
  • ログを収集するには、環境キーをSITE24X7_LAMBDA_LOG_EXTENSIONとして追加します。
  • メトリックを収集するには、環境変数SITE24X7_LAMBDA_METRIC_EXTENSIONとして追加します。

パフォーマンスへの影響

Lambda拡張は、コードとして同じリソースを共有するため、Lambda関数のパフォーマンスに影響を与えます。これら共有リソースには、CPU、メモリ、ネットワーク帯域、ストレージが含まれます。Lambda拡張のパフォーマンスを監視するには、拡張を使用したメトリックPostRuntimeExtensionsDurationで、コード実行完了後の外部時間を見積もってください。

Lambda拡張の関数実行時間とメモリ使用率の上昇により、AWSで追加費用が発生します。

例:

関数のコードサイズ、実行時間、レイテンシーで、Lambda関数のパフォーマンスへの影響を把握するには、次の2ケースがあります。

ケース1:Lambda拡張なしで関数実行を把握

ケース2:Lambda拡張ありで関数実行を把握