グレース・ホッパーが「デバッグ」という用語を生み出して以来、何千行ものコードをチェックしてエラーやバグを見つける作業は世界中の開発部門で延々と終わることなく続行されています。 従来のウォーターフォールソフトウェア開発環境では、テストプロシージャは単一リポジトリ内のコードに限定されていました。ところが、クラウドコンピューティングと仮想化テクノロジーによって、異種ネットワークとモノのインターネット(IoT)が登場し、状況が大きく変化しました。

すべてのリソースが仮想化されてクラウドに移行する一方で、モノリシックなソフトウェア開発はマイクロサービスアーキテクチャへと移行しています。

クラウドで非同期および通知ベースのアーキテクチャと組み合わされたマイクロサービスアーキテクチャは、数百から数千にも及ぶ可動部分で構成されるプラットフォームで動作します。コンテナ、Docker、データベースサービス、メッセージングサービス、アプリケーションサービス、コンピューティングインスタンスなどで、単独のプロセスとして実行されます。

システムを改善するためにパフォーマンスのボトルネックを分析したり、リクエストをチェックしたりすることが困難なのが難点ですが、Amazon では、この課題に対するソリューションを提供しています。

AWS X-Ray とは何か?

AWS X-Ray は、Amazon が提供する、本番アプリケーションと分散アプリケーションをデバッグするための開発者向けツールで、特にマイクロサービスアーキテクチャに対応できるよう考慮されています。アプリケーションとその基盤となるサービスのパフォーマンスを分析することで、パフォーマンス問題の根本原因を特定し、速やかに解決できます。

X-Ray を使用して、本番および開発中のアプリケーションのパフォーマンスを追跡することができます。シンプルな3層アプリケーションでも、何千ものサービスで実行される複雑にコード化されたマイクロサービスベースのアプリケーションでも動作します。OpenTracing API、Twitter Zipkin、Google Dapper などに類似しています。

AWS X-Ray は、Amazon EC2、Amazon Elastic Beanstalk、Amazon EC2 Container Service で使用できます。Node.js、.NET、Java で記述されたアプリケーションをサポートします。MySQL、PostgreSQL、Amazon DynamoDB に対して行われたリクエストを追跡し、Amazon Simple Notification Service や Amazon Simple Queue Service などのサービスをサポートします。

AWS X-Ray はどのように機能するか?

AWS X-ray を設定するには、AWS X-Ray SDK をアプリケーションと統合し、X-Ray エージェントをインストールする必要があります。AWS Elastic Beanstalk を使用すると、X-Ray がすでにインストールされているのでより簡単で、AWS X-Ray SDK をアプリケーションと統合するだけで開始できます。

  • X-Ray でエンドツーエンドのアプリケーション実行が可能
  • AWS X-Ray は、アプリケーションに対して行われたリクエストをトレース
  • アプリケーションの各コンポーネントとサービスを通過するデータが記録される
  • 各サービスからのデータ全体が、トレースと呼ばれる単一ユニットに
  • サービスマップを位置関係がわかるグラフィック形式で表示

これらのトレースをチェックして、レイテンシの問題、メタデータ、HTTP ステータスを確認することができます。異常な動作を記録するサービスをさらにドリルダウンして、パフォーマンスの問題の根本的な原因を解明することも可能です。CLI、AWS マネジメントコンソール、AWS SDK を使用してトレースを表示できます。

X-Ray API を使用して、トレースデータをカスタマイズされた分析ダッシュボードにインポートしたり、他のツールにエクスポートしたりできます。AWS X-Ray は、セキュリティを高く保つために AWS Identity and Access Management (IAM) と統合されており、トレースされたデータへのアクセス権限を厳密に管理することができます。

AWS X-Ray のメリット

開発者は、AWS X-Rayを使って簡単にサービスマップを作成したり、バグの特定と解決を迅速に行ったり、アプリケーションのパフォーマンスを向上させたりすることができます。

アプリケーションリクエストの流れを把握

複数のプラットフォームが統合され、数千のサービスが同時に実行される複雑なクラウドベースのマイクロサービスアーキテクチャでは、アプリケーションリクエストの流れを的確に把握できることが重要になります。

AWS X-Ray は、トレースをエンドツーエンドビューで表示し、アプリケーションリクエストの明確な詳細情報を提供します。この情報を活用して、パフォーマンスのボトルネックを取り除き、アプリケーションの全体的なパフォーマンスを向上させることができます。

アプリケーション問題の特定

AWS X-Rayは、アプリケーションのすべての領域と基盤となるサービスで、アプリケーションがどのように実行されるかを追跡します。アプリケーションの問題をピンポイントで解明するために、トレースにメタデータの形式で注釈を追加できます。トレースデータにタグを付けてフィルタリングすれば、実行時の想定外の状況を簡単に検出することができ、速やかに解決できます。

アプリケーションパフォーマンスの向上

AWS X-Ray のウェブ UI は、トレースのトポロジマップを表示します。X-Ray サービスマップは総合的なビューを提供するので、各サービスとリソースがアプリケーション内でどのように相互作用しているかを簡単に確認できます。エンドツーエンドのビューで待機時間をチェックして、待機時間が長くなるサービスを検出することができます。そういったサービスに修正を加えて、アプリケーションの全体的なパフォーマンスを向上させることが可能です。

1つのツールで多くのアプリケーションに対応

AWS X-Ray は、種々多様なアプリケーションで機能します。シンプルなアプリケーションでも、マイクロサービスアーキテクチャベースの複雑なアプリケーションでも、アプリケーション全体の実行を簡単にトレースできます。また、複数のAWSプラットフォーム、リージョン、ゾーンにわたって、アプリケーションリクエストをトレースすることができます。

価格体系

AWS X-Ray は現在プレビューモードで実行されており、無料で使用できます。ただし、デバッグ中のアプリケーションで使用されるリソースについては課金されます。使用量に応じて課金される料金体系になっており、前払い料金はありません。料金は、スキャン、記録、または取得されたトレースの数に基づいて決定します。1か月に記録、取得、またはスキャンされる最初の100,000トレースは無料です。それを超えると、1か月に記録された100万トレースあたり5ドル、1か月に取得およびスキャンされた100万トレースあたり0.50ドルの料金が発生します。

詳細については、AWS Xray のページをご覧ください。

Tags