AWS X-Rayとは
AWS X-Rayとは、一言でいうとアプリケーションのリクエストなどで送受信されるデータを、可視化するサービスを指します。
このAWS X-Rayを活用すれば、リクエストの中のデータを視覚的に把握することができるため、課題点やパフォーマンスの向上に役に立ちます。本記事では、このAWS X-Rayのサービスの特徴や料金、よくある疑問などを詳しく解説します。
アプリケーション開発者の方や、これからAWS X-Rayを使おうか検討されている方は、ぜひ本記事を参考にしてください。
【参考】:AWS公式 AWS X-Rayとは
AWS X-Rayの特徴
それでは、もう少し詳しくAWS X-Rayについて解説します。前述で、AWS X-Rayはリクエストなどのデータを収集し、可視化すると説明しました。AWS X-Rayではこの可視化するサービスを「サービスマップ」と呼び、クライアントとノードを図で表現してくれます。
一方で、リクエストにかかる時間やステータスを表示してくれる機能も用意されており、これを「トレース」と呼んでいます。
この2つの機能を利用することで、パフォーマンスが悪くなっている場所や、原因を追求することができます。また、このトレースした時のデータは暗号化してくれるため、セキュリティに関しても配慮がされています。
ちなみにセキュリティで使用しているキーは、暗号化の方法によって有料になることもあります。暗号化キーの詳細が気になる方は、公式サイトを確認してください。
【参考】:AWS公式 AWS X-Rayとは 【参考】:AWS公式 AWS X-Rayコンソール 【参考】:AWS公式 AWS X-Rayでのデータ保護
AWS X-Rayのサービスマップ
ここからは、AWS X-Rayのサービスマップについて詳しく説明します。サービスマップを使用すると、アプリケーションのどこのノードで問題が発生しているかが、すぐに分かります。
例えばAWS X-Rayのサービスマップを活用すれば、エラーが発生している場所や、リクエストが失敗した時のノードの状態を確認することができます。
サービスマップは図で表現されていますが、リクエストが失敗したときは、その原因別に色分けして表示されるため、どこで何のエラーが起きているのか分かりやすくなるでしょう。
AWS X-Rayのトレース
AWS X-Rayのトレース機能では、URL、レスポンスコードを始めとするデータを、コンソール画面から確認できます。さらに、URLでフィルタリングをしてトレースできるため、URLごとにレスポンスコードやレスポンスの時間などが分かります。
また、トレースのデータをJSON形式で表示することもできるため、図で情報を取得するだけでなく、加工していない状態のデータを取得することもできます。
【参考】:AWS公式 AWS X-Ray トレース
GoやJavaでX-Rayを使いたい場合
アプリケーションのパフォーマンスを向上するための機能が用意されているAWS X-Rayですが、このサービスはGoやJavaなどそれぞれのプログラミング言語向けに、オープンソースライブラリが用意されています。
これらのオープンソースライブラリは、GitHubからダウンロードすることができます。Javaアプリケーションを活用している方は、こちらを利用すると便利でしょう。
GitHubのAWSから「X-Ray」と検索すると、各言語のライブラリをダウンロードすることができます。もし、JavaやGoでアプリケーションを開発している方は、こちらも参考にしてみてください。
【参考】:AWS公式 各言語でのAWS X-Rayの利用について 【参考】:GitHub AWS
AWS X-Rayの料金
AWS X-Rayの概要について理解したところで、次にAWS X-Rayの料金について説明します。AWS X-Rayの料金は従課金制のため、利用した分だけ料金を請求されます。
さらにAWS X-Rayには無料利用枠が用意されており、毎月10万回までトレースは無料で、無料利用枠を超えると追加料金が発生します。ちなみにトレースの取得とスキャンは、100万回を超えると料金が発生します。
追加料金は、リージョンによって異なりますが、例えば「アジアパシフィック(東京)」というリージョンを選択した場合、トレースの記録100万件あたり5.00USDが発生します。
料金の詳細については公式サイトに掲載されていますので、利用する方は事前にサイトから料金を確認して下さい。
【参考】:AWS公式 AWS X-Rayの料金
料金計算ツールなども用意されている
AWS X-Rayでは、料金を計算するためのサービスも用意されています。例えば、「AWS 料金計算ツール」などがあり、予想される利用料が分かれば、月にどれくらいの料金が発生するか計算してくれます。
さらに、見積をしたい場合にはAWSの担当者に直接問い合わせすることも可能です。業務などで綿密に料金を計算したい方は、これらのサービスも活用してみましょう。
【参考】:AWS公式 問い合わせ 【参考】:AWS公式 料金計算ツール
AWS X-Rayでよくある疑問
AWS X-Rayの使い方や料金を紹介してきましたが、ここからはよくある疑問を紹介します。すでにAWSで他のサービスを利用していて、他のサービスを使えるか疑問に感じている方などは、こちらも参考にしてください。
AWS Lambdaとの併用は可能か
AWS X-Rayは、AWS Lambdaと併用して使用できます。Lambdaコンソールにて、関数を設定できますので、ここでAWS X-Rayのアクティブトレースという設定をすれば、X-Rayを使用できます。
すでにAWS Lambdaを使用している方は、関数から簡単に設定できますので、ぜひAWS X-Rayを活用してみましょう。AWS Lambdaの詳しい設定方法は、公式サイトから確認してください。
【参考】:AWS公式 AWS X-RayとAWS Lambdaとの併用
AWS X-Rayのログを、CloudTailで記録できるか
AWS X-Rayのログを、AWSのサービスであるCloudTailで記録できるか気になる方もいると思います。結論から言うと、AWS X-Rayのログを、AWSのサービスであるCloudTailで記録することは可能です。
AWS X-RayのAPIリクエストを監視して、ログを記録することができます。また、サポートされているAPIのアクションは、公式サイトに掲載されていますので、気になる方はサイトを確認してください。
【参考】:AWS公式 AWS X-Rayでのログ記録について 【参考】:AWS公式 CloudTaliでAWS X-Rayのログを記録する
AWS X-Rayを活用してみよう
AWS X-Rayはアプリケーションのリクエストや、レスポンスを可視化できる便利なサービスだとお分かりいただけたかと思います。また、AWS X-Rayの利用料金には、無料の利用枠が用意されているため、無料利用枠の上限を超えなければ、試しにサービスを利用できます。
編集部オススメコンテンツ
アンドエンジニアへの取材依頼、情報提供などはこちらから