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

第121回 雲勉【オンライン】New RelicでAWS Lambdaをモニタリングする

第121回 雲勉【オンライン】New RelicでAWS Lambdaをモニタリングする

iret.kumoben

December 07, 2023
Tweet

More Decks by iret.kumoben

Other Decks in Technology

Transcript

  1. 0.講師⾃⼰紹介 2 n 朝枝 知之 • クラウドインテグレーション事業部 MSP開発セクション所属 ・社内向けの⾃動化サービスの開発・運⽤を担当 •

    2019年8⽉⼊社 … MSP開発⼀筋 • 前職︓企業や学校向けのホームページ制作(クラウドほぼ未経験) • 健康のため10⽉から朝5時に起きて散歩するようになりました
  2. 1.New Relicのサーバーレスモニタリング 9 n 取得できるデータ AWS Lambda関数の、 • 各種メトリクス (Metrics)

    • トレース情報 (Traces) • ログ (Logs) n データ取得の⽅法 • メトリクス … Amazon CloudWatch + Amazon Kinesis Data Firehose • トレース情報 … 監視対象のLambda関数に追加する「Lambdaレイヤー」 • ログ …監視対象のLambda関数に追加する「 Lambda拡張機能」
  3. 1.New Relicのサーバーレスモニタリング 10 n Lambdaモニタリングの新旧⽅式 ・ 旧⽅式︓APIポーリング⽅式 ・ New Relicドキュメントでは「AWSポーリングインテグレーション」

    「Lambdaモニタリングインテグレーション」等と記載 ・ 新⽅式︓CloudWatch Metric Streams(CMS)⽅式 ・ New Relicドキュメントでは「Lambdaモニタリング機能」等と記載 現在はCMS⽅式を利⽤することを推奨 APIポーリング⽅式も選択できるがいずれ使えなくなるかも
  4. 1.New Relicのサーバーレスモニタリング 11 n APIポーリング⽅式をお勧めしない理由 ・ New Relicが⾮推奨としている ・ CMS⽅式に⽐べ料⾦が⾼くなる可能性がある

    ・ 情報の更新が遅い(5分に1回程度) 詳しくはドキュメント参照 [Doc] Amazon CloudWatch Metric Streamsの統合の紹介 https://docs.newrelic.com/jp/docs/infrastructure/amazon-integrations/connect/aws-metric-stream/
  5. 2.Lambdaモニタリング機能(CMS⽅式)の導⼊ 13 n 事前準備 ・ New Relicアカウント ・アカウントIDをメモしておく ・ AWSアカウント

    ・ ユーザーの権限 ・ New Relic︓Adminグループ ・ AWS︓AdministratorAccessポリシー(最⼩限の権限は※1参照) ・ New RelicのAPIキー ・ LICENSEキー ・ USERキー ※1 https://docs.newrelic.com/jp/docs/serverless-function-monitoring/aws-lambda-monitoring/enable-lambda-monitoring/account-linking/
  6. 2.Lambdaモニタリング機能(CMS⽅式)の導⼊ 14 n 導⼊⼿順 以下の順番で実施 ① メトリクスの取得の設定 ② トレース&ログの取得の設定 ▪

    理由 ・ ドキュメントではそのような書き⽅はされていないが、 New RelicのServerless Functions画⾯がメトリクス、トレース、ログに 分かれている ・ 取得するデータの種類に対応した⼿順のほうがわかりやすい Serverless Functions画⾯のメニュー(の⼀部)
  7. 2.Lambdaモニタリング機能(CMS⽅式)の導⼊ 15 n ①メトリクス取得 設定⼿順 1 ・ New RelicとAWSアカウントのリンク ・

    ドキュメントにも説明はあるがNew Relicコンソールの設定画⾯を⾒たほうがわかりやすい Infrastracture > AWS > [Add an AWS account] をクリックし、案内に従って設定していく
  8. 2.Lambdaモニタリング機能(CMS⽅式)の導⼊ 16 n ①メトリクス取得 確認 ・ Infrastructure > AWS ⻩⾊の枠

    ・CMS⽅式の場合は”Stream”のラベルが付く ・1〜3分ほどで取得しはじめる オレンジの枠 ・”Account status dashboard” ボタン ・New RelicからのAPIコールやエラーを確認
  9. 2.Lambdaモニタリング機能(CMS⽅式)の導⼊ 17 n ①メトリクス取得 確認 ・ Infrastructure > AWS >

    Account status dashboard ・リンクしたAWSアカウントのメトリクスを取得しはじめて いるのが確認できる ・この時点ではFirehoseやMetricStreamsといった CMS⽅式の設定で作成されたリソースのみ取得している (⻩⾊枠内) ・時間がたつと他のAWSサービスのメトリクスも 取れるようになる
  10. 2.Lambdaモニタリング機能(CMS⽅式)の導⼊ 18 n ①メトリクス取得 設定⼿順 2 ・ newrelic-lambda CLIを使って統合の設定をインストール ・

    AWS CloudShellで以下のコマンドを実⾏ pip3 install newrelic-lambda-cli newrelic-lambda integrations install --nr-account-id {New Relic Account ID} --nr-api-key {New Relic License Key}
  11. 2.Lambdaモニタリング機能(CMS⽅式)の導⼊ 19 n ①メトリクス取得 確認 (AWS Lambdaのメトリクス) ・ Infrastructure >

    AWS > Account status dashboard ・Lambda統合をインストール後、Lambdaのメトリクスも 取得している
  12. 2.Lambdaモニタリング機能(CMS⽅式)の導⼊ 20 n ②トレース&ログデータ取得 設定⼿順 1. newrelic-lambda CLIを使って⼀度に設定できる ・ AWS

    CloudShellで以下のコマンドを実⾏ newrelic-lambda layers install --function {Function Name} --nr-account-id {New Relic Account ID} --enable- extension-function-logs true ・ 対象のLambda関数に対してNew Relic⽤のLambdaレイヤーを追加している → トレースデータの取得 ・ 最後の ”--enable-extension-function-logs true” でLambda拡張機能を追加 → ログデータの取得
  13. 2.Lambdaモニタリング機能(CMS⽅式)の導⼊ 21 n ポイント ・ モニタリングしたいリージョンごとに⼿順1と2を実⾏する ・ Amazon Kinesis Data

    Firehose がリージョンサービスのため ・ CloudFrontなどグローバルサービスをモニタリングしたい場合は us-east-1(⽶国東部) で⼿順1を実⾏する