AppSyncでX-Rayを有効化してみた!使い方や用途についても解説します😎

AppSyncでX-Rayを有効化してみた!使い方や用途についても解説します😎

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

こんにちは!

今回は AppSync のニッチなところを解説していきます。AppSync を利用していて、AWS X-Ray(以下、X-Ray)って何?と思われた方、これ有効化するとどうなるの?と思われた方。この記事で解説していきますので、ぜひご一読ください。

想定する読者

  • AppSync で X-Ray を利用するパターンが知りたいヒト
  • AppSync のトレースに興味のあるヒト

そもそも X-Ray とは何か?

X-Ray は、アプリケーションが処理するリクエストに関するデータを収集し可視化してくれるサービスです。

利用する目的は、アプリケーションのリクエストの計測などです。つまりボトルネックを探したり、最適化できる箇所がないのかを分析したりするのに役立つということです。

X-Ray は様々な AWS リソースと統合することができます。EC2、ECS、Lambda、そして今回のタイトル通り AppSync にも利用できます。

AppSync で X-Ray を使ってみる

百聞は一見に如かず、有効化するとどんなことがわかるのか確かめてみましょう。AppSync の設定画面から有効にしてみます。

AWS AppSync > API名 > Settings

ちなみに CloudFormation で有効にする場合は、リソースタイプ「AWS::AppSync::GraphQLApi」にて、以下のようにパラメータ「XrayEnabled」を加え、値を true にしてください。

Resources:
  GraphQLApi:
    Type: AWS::AppSync::GraphQLApi
    Properties:
      AuthenticationType: API_KEY
      Name: AppSyncDemo
      XrayEnabled: true

では、GUI で「X-Ray でトレースを表示する」をクリックし、X-Ray のコンソール画面に移動してみましょう。一度もクエリを実行されていない場合は、何も表示されないので、その場合はなんでもいいのでクエリを実行してみてください。いくつかのクエリを実行した後では、以下のように表示されます。

X-Rayのコンソール画面

トレースのリストから確認したいリクエストを選択すると、以下のように計測および可視化されます。

画像にある「Trace Map」は AppSync が利用しているデータソースを視覚化しています。表示方法をカスタマイズできるので、ぜひ試してみてください。

Trace Map のおかげでリクエストの経路がわかりやすい
リクエストを計測した結果

画像の通り、どこでどのぐらいの時間がかかっているのかが X-Ray を有効化することで分かります。複雑な構成の場合でもマップやグラフになっているので、問題の箇所をすぐに把握することができます。

ちなみに AppSync のキャッシュ機能を利用した場合は、以下のようにマッピングされます。

画像はトラフィックに応じてアイコンの大きさが変わる表示方法にしています

AppSync における X-Ray の使い方

AppSync で X-Ray を有効化すれば、リクエストを計測できることは先ほど解説いたしました。ほかの使い方としては、エラーを正確に特定する場合などに利用できます。

GraphQL は REST と違い、http status を200で統一しているため、どこでエラーが発生したのかがわかりにくいかと思います。しかし X-Ray を利用すれば、エラーの発生箇所の特定が容易になります。

また X-Ray では発生したエラーに対して例外の詳細も表示されるため、原因の特定にも役立つかと思われます。

関連記事

まとめ

AppSync における X-Ray の有効化および無効化は簡単にできますので、気軽に使ってみるのもありかと思います。これを機に一度利用されてはいかがでしょうか?

このブログでは、GraphQL や GraphQL のマネージドサービスである AWS AppSync の記事を随時公開しておりますので、ご興味のある方はほかの記事ものぞいてみてください!

AppSync に関する開発は、お気軽にお問い合わせください。