本ブログではNew Relic Lambda CLIを使用して、New RelicとLambda関数を統合する手順について紹介します。New Relicを活用したLambdaモニタリングの概要については、ブログ「AWS Lambda関数のパフォーマンスをモニタリングする方法」を参照ください。

はじめに

 New Relic Lambda CLIは、AWS Lambda関数のモニタリングを簡単かつ効果的に行うためのコマンドラインツールです。このツールを使用することで、Lambda関数のメトリクス、トレース、ログデータをNew Relicに統合し、リアルタイムでパフォーマンス分析やトラブルシューティングを実施できます。New Relic Lambda CLIを使用すると、AWS Lambda Layerを利用して、Lambda関数にNew Relicの計装を迅速にインストールできます。これにより、関数の実行を自動的にトレースし、分散トレーシングを実現します。また、CLIを使ってLambda関数のLambda ExtensionからログデータをNew Relicに転送する設定も行えます。これにより、ログデータをNew Relicで一元的に分析し、アプリケーションのパフォーマンスや問題を迅速に特定できるようになります。

New Relic Lambda CLIは、AWS Lambda関数のモニタリング設定を迅速かつ簡単に行うための強力なツールです。これにより、開発者はアプリケーションのパフォーマンス管理や障害対応に注力し、サービスの品質向上に努めることができます。

前提条件

  • Python 3.3以上がインストール済み
  • AWS CLI をインストールし設定済み
  • New Relic アカウント ID
  • New Relic License key

導入手順

 New Relic Lambda CLIを使ったセットアップでは、まずメトリクスの収集のために、AWS Metric StreamsとNew Relicを統合し、リアルタイムのパフォーマンスデータを送信します。次に、トレースデータの収集のために、Lambda関数にNew RelicのLayerを設定し、分散トレーシングを有効化します。最後に、ログデータの収集のために、Lambda ExtensionからNew Relicへのログ転送設定を行い、一元的なログ分析を可能にします。

メトリクスデータの統合手順

 AWS Metric Streamsを設定することで、AWSからNew Relicへのメトリックデータのリアルタイムストリーミングが可能になります。これにより、AWSリソースのパフォーマンスや使用状況をNew Relicで一元管理できるようになります。

  1. AWSとの統合(Metric Streams)を設定する
    1. メニューからInfrastractureを選択      
    2. AWSのタブを開き、Add an AWS accountを選択
    3. 以下の画面で Use metric streams を選択しガイドに従って設定を実施

ガイドの手順を完了することでAWS Metric Streamsを利用したメトリクスデータの送信を開始します。AWS Metric Streamsの設定の詳細はドキュメントを参照ください。

  1. AWSアカウントをNew Relicにリンクする
    1. AWSアカウントとNew Relicのリンクには、New Relic Lambda CLIを使用するため、以下のコマンドを実行してインストールします。
pip3 install newrelic-lambda-cli
  1. 次にNew Relic Lambda CLIのintegrationsコマンドを実行してIAMロールやシークレットキーの設定等を行います。CLIの詳細はドキュメントを参照ください。
newrelic-lambda integrations install \
    --nr-account-id <new-relic-account-id> \
    --nr-api-key <new-relic-license-key>

<new-relic-account-id>、<new-relic-license-key>には適切な値を設定してください。

上記の設定方法により、New RelicでAWS Lambdaのメトリクスデータをモニタリングするための設定が完了します。New RelicでLambda関数のメトリクスデータを確認できるようになります。

トレースデータの統合手順

 New Relic Lambda CLIを使用して、AWS Lambda関数にNew Relicでの計装に必要なレイヤーの設定を実行し、関数のトレースデータを収集することができます。

New Relic Lambda CLIのlayersコマンドを実行して Lambda関数にNew RelicのLayerをインストールします。

 

newrelic-lambda layers install \
    --function <name or arn> \
    --nr-account-id <new-relic -account-id>

<name or arn>、<new-relic-account-id>には適切な値を設定してください。
上記のコマンドを実行することにより、New RelicでLambda関数のトレースデータを確認できるようになります。

ログデータの統合手順(Lambda Extensionの利用)

 New Relic Lambda CLIを使用して、AWS Lambda関数でNew RelicのLambda拡張を有効化することで、関数のログデータをCloudwatch Logsを経由せずにNew Relicへ直接転送することができます。

New Relic Lambda CLIのlayersコマンドを実行して Lambda関数にNew RelicのLayerをインストールします。

newrelic-lambda layers install \
    --function <name or arn> \
    --nr-account-id <new-relic -account-id> \
    --enable-extension-function-logs

<name or arn>、<new-relic-account-id>には適切な値を設定してください。
パラメータ“enable-extension-function-logs”をtrueに設定することでAWS Lambda拡張を活用してログデータをNew Relicへ転送しています。上記のコマンドを実行することにより、New RelicでLambda関数のログデータを確認できるようになります。

セットアップの確認

設定が正しく行われているか確認するために、以下の手順でNew Relic上のデータを確認します。

  1. AWS Lambda関数を何らかの形でトリガーし、データがNew Relicに送信されるようにします。例えば、API Gatewayを使用して関数をトリガーすることができます。
  2. New Relicのアカウントにログインします。
  3. メニューから「Serverless」を選択し、「Lambda functions」の一覧から対象のアプリケーションをクリックします。メニューに「Serverless」がない場合は「All Capabilities」から「Serverless」を選択してください。

メトリクスデータの確認手順

  1. Monitoring」の「CloudWatch metrics」を選択します。
  2. メトリクスデータが表示されていることを確認します。
Lambda関数のメトリクス情報の確認

トレースデータの確認手順

  1. 「Monitoring」の「Distributed Tracing」または「Events」の「Invocations」を選択します。
  2. トレースデータが表示されていることを確認します。
分散トレーシングの詳細を確認する
Lambda関数のInvocationsの情報を確認する

ログデータの確認手順

  1. 「Monitoring」の「Logs」を選択します。
  2. ログデータが表示されていることを確認します。
Lambda関数から出力されたログデータを確認する

まとめ

 New Relic Lambda CLIを使ったAWS Lambda関数のモニタリングセットアップは、簡単かつ効率的なプロセスで実施できます。CLIツールを使用することで、コマンドラインから手軽に各種設定を行うことができ、煩雑な手順を回避できます。さらに、デプロイプロセスに組み込むことで、アプリケーションの変更やアップデートがあるたびに自動的にモニタリング設定が適用され、継続的な監視が可能になります。これにより、開発チームは常に最新のパフォーマンス情報を得ることができ、迅速な問題解決や効果的な運用が実現できます。

次のステップ

 New RelicのChange Trackingはデプロイイベントの情報を連携することでサーバーレスアプリケーションのデプロイイベントとパフォーマンスの関連性を効果的に把握し、運用上の課題や最適化のポイントを特定しやすくなります。これにより、デプロイメントの影響を正確に把握し、問題が発生した場合の原因特定と対応が迅速に行えます。