【新機能】AWS X-Rayを試してみた #reinvent
大阪のガノタ市田です。 AWS re:Invent 2016で発表された新サービス「AWS X-Ray」のプレビュー申請が通ったので、早速試してみた内容をレポートしたいと思います。
AWS X-Rayとは
AWS X-Rayは簡単にいうとアプリケーションモニタリングのサービスになります。レスポンスタイムやレスポンスステータス等、アプリケーションに対するリクエストに関するデータを収集して表示、フィルタリングを行い、分析することで問題を特定することができます。
注意点
AWS X-Rayはまだプレビュー版ですので、今後のリリースにより仕様が変更になる場合があります。 また、プレビューなので利用するには利用申請が必要です。下記のX-Rayのページから利用申請を行いましょう。
https://aws.amazon.com/jp/xray/
使ってみた
それでは早速使ってみたいと思います。プレビューの利用申請が通ればメールが届きますので、メールにあるリンクをクリックしてコンソールにアクセスします。
今回は、既に用意されているサンプルアプリケーションを利用します。
次の画面でサンプルアプリケーションを利用する流れの説明が表示されます。これによるとCloudFormationを利用して、ElasticBeanstalkの環境が構築されるようです。一通り内容を確認したら「Launch Sample Application」をクリックして次に進みます。
「Next」をクリックします。
スタックの名前を指定します。今回はそのままにします。
オプションもそのままにします。
レビューでIAMリソースの作成に関するチェックを入れて、「Create」をクリックします。
CloudFormationによる環境構築が完了したら、「Outoput」タブの「ElasitcBeanstalkEnvironmentURL」にあるURLにブラウザでアクセスします。下記の場合はhttp://52.X.X.X
になります。
先程のURLにアクセスすると下記のようなページが表示されるので、「Start」をクリックします。 このサンプルアプリケーションでは、Startボタンを押すと自動的にアプリケーションに対するSignUPリクエストを投げる仕組みになっているようです。詳細は未確認ですが、フロントエンドのEC2に対してPOSTされた様々なメールアドレスがDynamoDBに格納されていました。 下にある「The next big thing is coming...」については、正式リリースの際に通知が届くようにする登録のようなので、必要に応じて入力してください。
これで準備完了です。リクエストが自動で投げられているので、1、2分待ってから先程のページにあった「AWS X-Ray Console」というリンクをクリックしてみます。
ログインすると「Service map」が表示されます。この図ではシステムの概要が表示されていて、サンプルアプリケーションはEC2、DynamoDB、SNSで構成されていることが分かります。
EC2インスタンスをクリックして、トレース内容を確認できます。
上記画面の下側にある「Trace list」の1つをクリックして詳細を見てみます。
レスポンスタイムやレスポンスコードなどが表示されます。下記の場合は、4XXのエラーであることが表示されています。
黄色い三角の注意マークをクリックすると、さらに詳細を確認できます。
DynamoDBがレスポンスコード400を返しているようです。
「Exceptions」でエラーの内容を確認できました。「ConditionalCheckFailedException」のエラーであることが確認できます。
また、X-Rayは画面の上部にある検索ボックスで、様々な形で出力をフィルタリングすることができます。例えば、レスポンスタイムが0.1秒よりも大きいものでフィルタする場合は「responsetime > 0.1」と入力します。
エラーコードの内容とレスポンスタイムの組み合わせなど、複数の条件を組み合わせてフィルタすることも可能です。
最後に
対応言語や対応サービスが広がるにつれて、AWSでアプリケーションを展開する上で欠かせないサービスになってくると思います。更に調べて紹介していきたいと思います。
以上になります。