LoginSignup
0
3

More than 3 years have passed since last update.

[AWS Lambda] 処理時間計測方法(AWS X-Rayの使用)

Last updated at Posted at 2019-11-03

AWS Lambdaの処理時間をAWS X-Rayを用い計測する。

 Lambadaでの処理時間を計測するためにAWS X-Rayを使用したときの備忘録です。間違いがありましたら、ご指摘ください。

(1) Lambda関数作成と事前設定

 今回、処理時間を計測するLambda関数を作成します。

①AWS LambdaページにてTestSample関数を作成。(Python使用)

 Lambda作成1.png

② トレースの有効化する

  Lambda関数を選択し「AWS X-Ray」のアクティブトレースにチェックを入れる。
Lambda作成3.png

③Lambda関数のIAMロールに「AWSXrayWriteOnlyAccess」を付与する。

  処理時間を計測するサービスのAWS-Xrayを使用するためです。
  上記②の画像にあるLambda関数ページ内の実行ロール箇所にある、
 「IAMコンソールでTestSample***ロール表示します」をクリックする。
  IAMロールのページに遷移し、下記のように「AWSXrayWriteOnlyAccess」を
 付与します。
 Lambda作成2.png
 

(2) Lambda関数の作成

①処理時間を計測するために必要なSDKを取得

 今回は、AmazonLinux環境(EC2)上でSDKを取得しました。
 ※各コマンドの応答結果は省略しました。


# pipのインストール
[ec2-user@ip-10-0-0-155 ~]$ sudo easy_install pip
# pipのupgrade
[ec2-user@ip-10-0-0-155 ~]$ sudo easy_install --upgrade pip
# pipコマンドのパスを移動
[ec2-user@ip-10-0-0-155 ~]$ sudo cp /usr/bin/pip /usr/sbin/
# X-Ray SDK をダウンロードする
# SDKがコマンド実行ディレクトリ配下に取得できるため
# 適当にディレクリを作成してから実行します。
[ec2-user@ip-10-0-0-155 tmp]$ pip install aws-xray-sdk -t .

⇒上記にてsdkを取得した中で、下記の3ディレクトリを使用します。
•awsxray_sdk
•jsonpickle
•wrapt
これらのフォルダ一式をLambda関数を作成するディレクトリに移動します。
※WindowsやMacといったローカル環境のPC上で実施してもよいですし、
 このままEC2インスタンス上で実施しても構いません。
 

②Lambda実行関数を作成

 今回、処理時間を作成する実行関数(lambda_function.py)は下記とします。
(Lambdaでデフォルト生成されるpython関数です)
デフォルト生成される関数に対し、X-Rayを使用するために組み込んでいます。

import json
import boto3

from aws_xray_sdk.core import patch
patch(['boto3'])

def lambda_handler(event, context):
    return {
        'statusCode': 200,
        'body': json.dumps('Hello from Lambda!')
    }

③SDKを組み込んだソースコード一式を作成

 ①で取得したSDKと②で作成した関数をまとめます。
 以下のようなフォルダ一式を作成、zip化します。
```
TestSample.zip内に以下のフォルダ/ファイルを格納
・awsxray_sdk/
・jsonpickle/
・wrapt/
・lambda_function.py
※フォルダ生成時、上記の4つのフォルダ/ファイル群に対してzip化します。
 この4つが格納された上位のフォルダに対し、zip化しないようにしてください。

(3) Lambda関数にzip圧縮したソースコードを登録

 関数コードのコードエントリタイプを「.zipファイルをアップロード」を選択、
 (2)で作成したzipファイルをuploadします。

Lambda作成4.png

upload後、Lambda関数のコードが反映されます。
 Lambda作成5.png

(4)Lambda関数の処理時間計測をテスト

 Lambda関数の右上にある"テスト"をクリックし、デフォルトままで、適当にイベント名を付けます。その後、テストを実行します。
Lambda作成6.png

 しばらくすると、テストが完了します。以下のようなログが出力されます。
Lambda作成7.png

 ここで、ログ出力の中にXRAYのTraceIdが表示されていることがわかります。このIDを(5)で使用します。

(5)Lambda関数の処理時間を確認

 AWSのサービス一覧より、AWS X-Rayのページに遷移します。そして、(4)で確認したXRAYのTraceIdに該当するTraceを選択します。
Lambda作成8.png
⇒Lambda関数での処理時間の結果がTraceされていることがわかります。
 Lambda関数は、初回実行時には時間を要します。
 そのことが処理時間の結果からも見て取れます。

以上で、Lambda関数の処理時間の計測方法となります。

0
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
3