この記事の目次
AWS X-Rayとはどんなサービス?
![](https://b-engineer-media-cms.s3.amazonaws.com/item/image/user/356a192b7913b04c54574d18c28d46e6395428ab/272a2336-5b05-41db-9794-42346b1c6582.jpg)
AWS X-Rayの基本情報
![](https://b-engineer-media-cms.s3.amazonaws.com/item/image/user/356a192b7913b04c54574d18c28d46e6395428ab/509d3955-c085-447b-a801-fd2218c591b4.jpg)
対応アプリケーション | 下記のサービス上で実行されるアプリケーション・Amazon Elastic Compute Cloud (EC2) ・Amazon EC2 Container Service (Amazon ECS) ・AWS Lambda・AWS Elastic Beanstalk |
---|---|
X-Rayエージェント(※1)の対応OS | ・Amazon Linux AMI・Red Hat Enterprise Linux (RHEL)・Windows Server 2012 R2以降のOS |
対応言語 | ・node.js・java・.net |
料金※2 | 無料枠・トレースの記録は10万件/月まで・トレースの取得とスキャンは合計100万件/月まで追加料金X-Ray Tracing・トレースの記録 5.00USD/100万件(トレース 1 件あたり 0.000005 USD) ・トレースの取得 0.50USD/100万件(トレース 1 件あたり 0.0000005 USD) ・トレースのスキャン 0.50USD/100万件(トレース 1 件あたり 0.0000005 USD) X-Ray Insightsトレースの記録 1.00USD/100万件 (トレース 1 件あたり 0.000001USD) |
AWS X-Rayを利用するメリット3つ
![](https://b-engineer-media-cms.s3.amazonaws.com/item/image/user/8c7f204d9ede4027afb1e4450514b993d07cd4a1/660227e9-6a91-4eeb-9c7a-32517e6a6ec4.jpg)
AWS X-Rayのメリット1:パフォーマンスの向上
AWS X-Ray を使うことで、アプリケーションのパフォーマンスに対するボトルネックを特定し改善できます。 AWS X-Ray のサービスマップにより、アプリケーション内のサービスやリソースの関係性、高いレイテンシーが発生している部分などをリアルタイムに視覚化して表示できるため、パフォーマンスに影響を与える部分を効率的にドリルダウンすることが可能です。AWS X-Rayのメリット2:アプリケーションの実行状況を確認できる
AWS X-Rayでは、アプリケーション全体でのユーザーリクエストをトレースできます。 アプリケーションを構成する個々のコンポーネントによりデータを収集するため、エンドツーエンドでアプリケーションの実行状況を把握することが可能です。AWS X-Rayのメリット3:根本問題を検出できる
AWS X-Rayを使うことで、アプリケーションの問題について根本原因を調べられます。 X-Rayではトレースデータに注釈のメタデータを付与してフィルタリングする機能があり、これによって原因のパターンを発見・解決できます。AWS X-Rayと連携できるサービス4つ
![](https://b-engineer-media-cms.s3.amazonaws.com/item/image/user/9e08934fd24485c7d9e691a312f16a4ef7ff96eb/714e52a0-6a4c-461e-a93c-05cf315ac708.jpg)
AWS X-Rayと連携できるサービス1:Amazon EC2
Amazon Elastic Compute Cloud (Amazon EC2)は安全でサイズ変更が可能な仮想サーバをクラウド内で提供するウェブサービスです。 数分で仮想サーバを作ることができ、サイズ変更や可用性の設定なども自由にカスタマイズ可能です。最小限のコストで始められ、必要に応じてプロセッサやネットワーク、GPUなどのリソースを追加できます。また、同じAWS上のあらゆるサービスと容易にかつ安全に連携することが可能です。 X-Rayと連携することでEC2上に構築されたサーバがたとえ膨大であっても、サービスマップで開発ユーザーに対して分かりやすく可視化できます。EC2とX-Rayを連携するには、サーバでX-Rayデーモンを実行する必要があります。インスタンスの起動時にユーザーデータスクリプトを使用してデーモンを自動的に開始させます。 Linuxの場合(例)
#!/bin/bash
curl https://s3.us-east-2.amazonaws.com/aws-xray-assets.us-east-2/xray-daemon/aws-xray-daemon-3.x.rpm -o /home/ec2-user/xray.rpm
yum install -y /home/ec2-user/xray.rpm
Windows(例)
if ( Get-Service "AWSXRayDaemon" -ErrorAction SilentlyContinue ) {
sc.exe stop AWSXRayDaemon
sc.exe delete AWSXRayDaemon
}
$targetLocation = "C:\Program Files\Amazon\XRay"
if ((Test-Path $targetLocation) -eq 0) {
mkdir $targetLocation
}
$zipFileName = "aws-xray-daemon-windows-service-3.x.zip"
$zipPath = "$targetLocation\$zipFileName"
$destPath = "$targetLocation\aws-xray-daemon"
if ((Test-Path $destPath) -eq 1) {
Remove-Item -Recurse -Force $destPath
}
$daemonPath = "$destPath\xray.exe"
$daemonLogPath = "$targetLocation\xray-daemon.log"
$url = "https://s3.dualstack.us-west-2.amazonaws.com/aws-xray-assets.us-west-2/xray-daemon/aws-xray-daemon-windows-service-3.x.zip"
Invoke-WebRequest -Uri $url -OutFile $zipPath
Add-Type -Assembly "System.IO.Compression.Filesystem"
[io.compression.zipfile]::ExtractToDirectory($zipPath, $destPath)
New-Service -Name "AWSXRayDaemon" -StartupType Automatic -BinaryPathName "`"$daemonPath`" -f `"$daemonLogPath`""
sc.exe start AWSXRayDaemon
AWS X-Rayと連携できるサービス2:Amazon EC2 Container Service
Amazon Elastic Container Service (Amazon ECS) は、フルマネージド型のコンテナサービスです。Amazon ECSではAWS Fargateというサーバレスコンピューティングエンジンを利用できます。 プロビジョニングが不要でアプリケーション単位でリソースの指定、管理ができるため、EC2と比べてよりコストの削減、セキュリティの強化が期待できます。 x-rayと連携するメリットとしてはEC2と同様でサービスマップの可視化による全体像の把握が容易になる点が挙げられます。 ECSとx-rayを連携するにはECSにてx-rayデーモンを実行します。x-rayデーモンを実行するには公式のdockerイメージを使用します。AWS X-Rayと連携できるサービス3:AWS Lambda
AWS Lambdaはサーバをプロビジョニングすることなく、コードを実行するときだけ必要な分のみリソースを利用するサービスです。料金は、コードの実行に使用した時間分のみ発生します。 コードの実行に必要なスケーリングも自動的に行われるため、ユーザーはリソースの管理を一切する必要がありません。lambdaとX-Rayを連携することで、手元で開発したコードのパフォーマンスを迅速にモニタリングできます。AWS X-Rayと連携できるサービス4:AWS Elastic Beanstalk
AWS Elastic BeanstalkはJava、.NET、php、Node.js、Python、ruby、Go および docker を使用して開発されたアプリケーションやサービスを、apache、nginx、passenger、IIS など使用するのに慣れたサーバでデプロイおよびスケーリングするための、使いやすいサービスです。 ユーザーがコードをアップロードするだけで、サーバのデプロイから、ロードバランシング、自動スケーリング、さらにアプリケーションのヘルスチェックまでを自動的に行ってくれます。 また、AWS Elastic BeanstalkにはAWS X-Rayエージェントが予め含まれているため、アプリケーションをX-Ray SDKと統合するのみで使用を開始できます。AWS X-Rayの使い方
![](https://b-engineer-media-cms.s3.amazonaws.com/item/image/user/9e08934fd24485c7d9e691a312f16a4ef7ff96eb/92e5f7e9-db15-40b0-a27f-8f192f3215b1.jpg)
環境構築方法
①まずは以下のX-Rayのページより「AWS X-Rayを開始する」ボタンを押します。 【公式】AWS X-Ray ②ルートユーザーでログインしたら 「今すぐ始める」ボタンを押します。 ③サンプルアプリケーションまたは独自のアプリケーションを選択画面で サンプルアプリケーションの起動 (Node.js)を選択し「続行」ボタンを押します。 ④「サンプルアプリケーションを起動」するボタンを押して、サンプルアプリケーションを起動します。 ⑤テンプレートの準備で「テンプレートの準備完了」、テンプレートソースで「Amazon S3 URL」が選択された状態で、「次へ」ボタンを押します。 ⑥サブネットとVPCを選択して、「次へ」ボタンで進み、最後に「スタックの作成」ボタンを押します。※スタック名はデフォルトで「X-Ray Sample」となっていますが変更しても構いません。 ⑦数分後、X-Ray Sampleが「Create_Complete」となっていれば、作成完了です。 ⑧出力タブからElasticBeanstalkEnvironmentURLを検索してブラウザでアクセスしてみます。 ⑨アプリケーションにアクセスできたら、元画面で「完了」を押すとX-Rayのサービスマップ画面が開きます。フィルタリングの設定方法
フィルタリングを使用するには、グループを作成し、フィルター式を記述します。 [グループ]→[グループの作成] 名前:任意のグループ名を入力します。 フィルタ式:フィルター式を入力します。 (例)応答時間が5秒を超えるリクエスト responsetime > 5 [グループの作成]ボタンを押して作成完了です。 サービスマップに戻り、画面上部の検索窓左部分で作成したグループを選択すると 設定したトレース式に該当するトレースが表示されます。複数条件で行う場合
複数条件で行う場合は、以下のようにフィルター式でANDを使い記述します。 (例)合計時間が5〜8秒のリクエスト duration >= 5 AND duration <= 8AWS X-Rayの導入事例3選
![](https://b-engineer-media-cms.s3.amazonaws.com/item/image/user/9e08934fd24485c7d9e691a312f16a4ef7ff96eb/5db0f1f6-df58-485c-8ec5-27a6227f8533.jpg)
AWS X-Rayの導入事例1:ConnectWise
フロリダ州タンパを拠点とするConnectWiseのAWS X-Ray導入事例について紹介します。 ConnectWiseのソフトウェアは毎日約75,000人が利用しており、アプリケーションの問題に迅速な対応が求められております。数分で終わる処理が数時間もかかってしまうトラブルも起きていたこともあり、以前利用していたモニタリングソリューションでは解決できませんでした。 現在はAmazonCloudWatchとAWS X-Rayを利用してアプリケーションとインフラストラクチャの完全な可視性を実現することで、問題の特定から解決まで5分もかからなくなっています。AWS X-Rayの導入事例2:Comcast
動画配信を提供するComcastでの導入事例です。 動画配信で日々サービスを拡張しているComcastでは、AWSを利用して毎週にようにインフラストラクチャのデプロイを行っており、その膨大なサービスのパフォーマンスの監視にX-Rayを導入しています。AWS X-Rayの導入事例3:クックパッド
日本でもおなじみのお料理レシピアプリのクックパッドでは、積極的にAWSを活用してインフラストラクチャを構築していることもあり、AWS X-Rayを導入・検証中のようです。 ただし、クックッパッドではほとんどのサービスがRubyを用いて実装されており、当時AWS X-Rayが提供していたInstrumented libraryは、Ruby非対応であったため、クックパッドの開発者が自作されたようです。自作されたInstrumented libraryはOSSとして公開もされています。 公式な情報としてはx-rayは導入のみで、活用例は今のところ公開されていませんが、AWS上の自社サービスのパフォーマンス状況を可視化できているようです。AWS X-Rayを活用しよう
![](https://b-engineer-media-cms.s3.amazonaws.com/item/image/user/f5ef944a50653ad198392450d8cdba1dea4885cc/87a2e1f3-0fdc-4110-8476-dbf1920c6d4e.png)
この記事の監修者・著者
![株式会社オープンアップITエンジニア](https://tenshoku-careerchange.jp/wp-content/uploads/2023/07/fzxADbr-_400x400-1-150x150.jpg)
-
未経験からITエンジニアへのキャリアチェンジを支援するサイト「キャリアチェンジアカデミー」を運営。これまで4500人以上のITエンジニアを未経験から育成・排出してきました。
・AWS、salesforce、LPICの合計認定資格取得件数:2100以上(2023年6月時点)
・AWS Japan Certification Award 2020 ライジングスター of the Year 受賞
最新の投稿
- 2024年3月26日キャリア・転職保安職(自衛官・警察・消防官など)に向いている人の性格・特徴ランキング【現役保安職(自衛官・警察・消防官など)36人が回答】
- 2024年3月26日キャリア・転職保安職(自衛官・警察・消防官など)に必要なスキルランキング&スキルアップの方法とは?【現役保安職(自衛官・警察・消防官など)36人が回答】
- 2024年3月26日キャリア・転職クリエイター職(ライター・デザイナー・編集)に向いている人の性格・特徴ランキング【現役クリエイター職(ライター・デザイナー・編集)64人が回答】
- 2024年3月26日キャリア・転職クリエイター職(ライター・デザイナー・編集)に必要なスキルランキング&スキルアップの方法とは?【現役クリエイター職(ライター・デザイナー・編集)64人が回答】