【レポート】現代的なアプリケーションのモニタリング:AWS X-Rayの導入 #reinvent #DEV204

2017.11.29

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

本記事はAWS re:Invent 2017のセッション「DEV204 - Monitoring Modern Applications: Introduction to AWS X-Ray」のレポートです。

概要

Analyzing and debugging production distributed applications built using a service oriented, microservices, or serverless architectures is a challenging task. In this session, we introduce AWS X-Ray, an AWS service that makes it easier to identify performance bottlenecks and errors, pinpoint issues to specific services in your application, identify the impact of issues on application users, and visualize the service call graph and the request timelines for your applications. We will also showcase a customer, Chick-fil-A and how they have adopted AWS X-Ray to play a role throughout the microservice lifecycle in order to ensure quality, transparency, and operational visibility for their services on AWS

登壇者

  • Abhishek Singh - Sr. Mgr. Product Management
  • Alain Nicolet - Enterprise Architect for Operator and Restaurant facing systems, Chick-fil-A

レポート

このセッションで話すこと

  • 概要
  • コンセプト
  • ユースケース
  • 導入

デバッグについて

今までのデバッグ

今までのやり方のデバッグは、本番環境もしくはサービス志向、マイクロサービス、サーバレスのアーキテクチャに対してスケールしない。 退屈で、繰り返しが多く、時間を浪費する作業だった。

何がしたい?

サービス志向アーキテクチャのアプリケーションのデプロイと管理は、モノリシックなアプリケーションと比べてうまくいく。

AWS Lambda, Amazon EC2 Container Service, AWS Elastic Beanstake, AWS CloudFormationは、数百のオーダーから成るアプリケーションのデプロイと管理を簡単にする。

しかし、本番環境においてアプリケーションのデバッグが大変になるという問題がある。

  • サービスを跨いだインタラクション
  • サービスごとの様々なログフォーマット
  • サービスからログを集めたり、集約したり、組み合わせたり...

AWS X-Rayは何を助けてくれるのか?

  • パフォーマンスのボトルネックの特定
  • サービスの問題の特定
  • エラーの識別
  • ユーザへの影響の識別

コンセプト

  • 複数のスコープをカバーしている
    • Trace:リソースとユーザのエンドツーエンド
    • Segment:リソース間
    • Sub-segment:リソースそのもの

  • Annotations:トレースのフィルターに使われる業務データ
  • Metadata:トレースのフィルターに使われない業務データ
  • Errors:エラーメッセージとスタックトレースの標準化
  • Sampling:リクエストに対してトレースをキャプチャするサンプリングの割合

デモ

バックエンドにDynamoDBのある、ユーザの登録 、ログインが可能なWebアプリを例にデモがありました。

Service Mapによるレイテンシーや実行結果の可視化

詳細なトレース

レスポンスによるフィルタリング

レスポンスやその他要素でグルーピングしたレイテンシーを参照可能

詳細な例外ログ

X-Ray Daemon

  • UDPでログを待ち受けるデーモン
  • AWS X-Ray APIにログを中継する

X-Ray SDK

  • Java, .Net, Python, Go, Node.jsの対応

IDのトレースと伝搬

要素を経由するごとにバージョン番号がインクリメントされていく

(参考)Amazon API Gateway および AWS X-Ray - AWS X-Ray

価格

まとめ

サービスおよびサービス間のモニタリングサービス、Amazon X-Rayの概要でし た。「複数のコンポーネントにまたがったモニタリング」、「各要素によるログのグルーピング」「柔軟なログのフィルタリング」などが主な特徴でしょうか。

現在業務でマイクロサービスアーキテクチャ間の通信をトレースする面倒くささを強く感じているので、ぜひ試してみたいサービスです。

私からは以上です。