AWS LambdaでX-Rayを有効化する方法と無効化する方法

LambdaでX-Rayを有効化する方法と無効化する方法について記載します。

X-Rayを有効化するには、以下の設定を行うだけで簡単に始められます

有効化の設定
  • 新規関数作成時
    • 関数の作成
    • ロールの設定
    • X-Rayの設定
  • 既存関数使用時
    • ロール設定
    • X-Rayの設定

X-Rayの使い方は以下の記事をご参照ください

AWS LambdaでX-Ray使用時のX-Ray画面の見方
LambdaでX-Rayを使用すると、Service Mapでサービス全体の性能を見ることができます。トレースではリクエスト毎の性能を見ることができます。トレースではコールドスタートの情報を取得することも可能です。Lambda 関数コード内の処理を AWS X-Ray でトレースすることもできます。

X-Rayを無効化したい場合は「AWS X-Rayの無効化(終了)方法」まで読み飛ばして大丈夫です。

それでは、関数作成して、X-Rayの有効化をしていきます

スポンサーリンク

X-Rayの有効化

関数作成して、X-Rayを有効化していきます。

やること

関数の作成
→既存関数のX-Rayを有効化する場合はこのステップはスキップしてください
ロールの設定
X-Rayの設定

Lambda関数の作成

Lambda関数を作成します。既存関数のX-Rayを有効化する場合はこのステップはスキップしてください。

  • 関数名:適切なもの
  • ランタイム:Node.js 18.x

Lambda関数作成

ソースコードを以下のソースコードに置き換えデプロイします。

1秒スリープ後にレスポンスを返すソースコードになります。


const sleep = (m) => {
  return new Promise((resolve) => setTimeout(resolve, m));
};
export const handler = async(event) => {
    console.log("Start!");
    await sleep(1000);
    console.log("End!");
    const response = {
        statusCode: 200,
        body: JSON.stringify('Hello from Lambda!'),
    };
    return response;
};

Lambdaのロール設定

X-Rayを開始するために必要なロールを割り当てます。

必要なロールは、トレースデータをアップロードするロールとなります。具体的には以下の設定を追加すれば大丈夫です。


{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "xray:PutTraceSegments",
                "xray:PutTelemetryRecords"
            ],
            "Resource": [
                "*"
            ]
        }
    ]
}

X-Rayを有効化(開始)する

「設定タブ→モニタリングおよび運用ツール」から開始します。

以下の画面で「AWS X-Ray」をONにします。

Lambda X-Ray 有効化

Lambda X-Ray 有効化

AWS X-Rayの確認

AWS X-Rayコンソール画面にアクセスし、Service Mapを選択して、以下のような画面が表示されればOKです。

X-ray service map

X-ray service map

AWS X-Rayの無効化(終了)方法

Lambda関数の「設定タブ→モニタリングおよび運用ツール」から終了します。

AWS X-Ray」をOFFにすればOKです。

Lambda X-Ray 有効化

Lambda X-Ray 有効化

まとめ

LambdaのX-Rayの有効化と無効化の切り替えは簡単に行えることが確認できましたー

X-Rayは有料ですので、パフォーマンスに問題発生時など調査が必要な時だけ有効化、不要な時は無効化した方がいいと思います。

料金の詳細は以下を参照していただければと思いますが、Lambda関数の実行数に応じて(トレースする数に応じて)料金も増えていくので、実行数が多い場合は要注意かと思いますー

料金- AWS X-Ray | AWS
AWS X-Ray では、使用した分のみ料金が発生します。最低料金設定はありません。1 か月に保存されたトレースの数、および 1 か月にスキャンまたは取得されたトレースの数に対して課金されます。トレースが保持される期間は、記録後 30 日間のみです。