AWS X-Rayのご紹介

こんにちは。AWS X-Rayを仕事でお試し使用したのでご紹介したいと思います。

 

AWS X-Ray

AWS X-Rayはアプリケーションのパフォーマンスや動作をモニタリングできるサービスになります。AWS上で動作するLambda、EC2上のWebアプリケーションなどにAWS SDKを使用してコードを組み込み、それを元にモニタリングを行います。

公式ドキュメント

https://docs.aws.amazon.com/ja_jp/xray/latest/devguide/aws-xray.html

 

プログラミング

Hello Worldレベルのモニタリングをしても面白くないので、今回はLambdaでDynamoDBからデータを取得して、平均値を計算して結果をファイルに書き出してS3にファイルをアップロードするプログラムを作成します。

DynamoDBに適当なデータを投入します。今回は2019年1月のドル円の始値と終値を使用しました。

テーブル名USDJPYで作成、CSVからデータ登録しました。

 

Lambda関数は、直接編集では作成できないので(aws-sdkを含める必要があるため)今回Cloud9で作成し、ダウンロードしてZIPファイルでLambdaにアップロードしました。

 

X-rayのログに出力するのは以下のコードになります。

 

また下記のコードにてAWS SDKのライブラリの使用時間が計測できます。

 

Lambdaの設定で「デバッグとエラー処理」の「アクティブとレースを有効にします」にチェックします。

 

Lambda関数を実行します。

まずServiceMapと呼ばれるもの。

main関数からDynamoDB、S3とそれぞれ呼び出していることが分かります。

 

次にTraces。DynamoDB、S3のアクセスにどのくらい時間がかかっているか詳細に取れます。

 

処理が正常に動いてるかの確認します。S3を開いてファイルを確認します。

 

 

 

 

おわりに

今回は、AWS X-rayをLambda関数に適応して動作を確認しました。あらかじめ組み込んでLambda関数を作成しておけば、何かあったときX-rayを有効にして、解析したり、速度が遅い箇所の判定などに使用できそうです。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です