Amazon Web Services ブログ

Amazon Q Developer CLI を使用した運用のトラブルシューティング効率化

本記事は、2025 年 6 月 19 日に公開された Streamline Operational Troubleshooting with Amazon Q Developer CLI を翻訳したものです。

Amazon Q Developer は、開発者が複雑なワークフローを実行するのを支援する、最も高機能な生成 AI を活用した開発アシスタントです。Amazon Q Developer のコマンドラインインターフェイス (CLI) は、対話型 AI と AWS サービスへの直接アクセスを組み合わせることで、アプリケーションの理解、構築、運用をより効果的に行うことができます。Amazon Q Developer CLI は、コマンドを実行して出力を分析し、ローカルマシン上で利用可能なトラブルシューティングツールとプラットフォームのベストプラクティスに基づいて、コンテキストに応じた推奨事項を提供します。

今日のクラウドネイティブ環境では、本番環境の問題のトラブルシューティングは、複数のターミナルウィンドウを切り替えたり、大量のログファイルを解析したり、数多くの AWS コンソールページを行き来したりする必要があります。このような絶え間ないコンテキストの切り替えは、問題解決を遅らせ、クラウドインフラストラクチャを管理するチームに認知負荷を加えることになります。

このブログ記事では、Amazon Q Developer CLI が対話形式のインタラクションを通じて困難なシナリオを効率化し、トラブルシューティング体験を変革する方法について見ていきます。

従来のトラブルシューティング体験

問題が発生すると、エンジニアは通常、インフラストラクチャの構成や複数のサービスにわたるログを手動で確認し、エラーパターンの分析に何時間も費やします。このプロセスでは、複数のインターフェース間の切り替え、さまざまなソースからの情報の相関付け、AWS に関する深い知識が必要です。この複雑なワークフローにより、問題解決に数時間から数日を要し、インフラストラクチャチームの負担が増加することがよくあります。

ソリューション: Amazon Q Developer CLI

Amazon Q Developer CLI は、初期調査から問題解決までのトラブルシューティングプロセス全体を効率化し、シンプルな対話を通じて AWS の複雑なトラブルシューティングを取り組みやすく効率的なものにします。

Amazon Q Developer CLI の仕組み:

  • 自然言語インターフェース: 対話形式のプロンプトを使用して AWS CLI コマンドを実行し、AWS サービスと対話します
  • 自動検出: インフラストラクチャのマッピングと構成の分析を行います
  • 高度なログ分析: 複数のサービスにわたるログの解析、相関付け、分析を行います
  • 根本原因の特定: AI を活用した推論により問題を特定します
  • ガイド付き修復: 最小限の手作業で修正を実施します
  • 検証: ソリューションをテストし、複雑な問題をわかりやすく説明します

図 1 に示すように、Amazon Q Developer CLI の組み込みツールの 1 つである use_aws は、AWS サービスと自然言語で対話することを可能にします。このツールは、ローカルマシンで設定された AWS CLI のアクセス許可を活用し、AWS リソースへの安全で承認されたアクセスを提供します。

図 1: Amazon Q Developer CLI のツール一覧

実際のトラブルシューティングシナリオ

デモ環境のセットアップ

このデモは、以下の環境構成で実施されました。

この環境には、必要なツールがインストールされたローカル開発マシン、適切な AWS アカウントの権限、およびターミナルアクセスが含まれています。プロジェクトディレクトリで Amazon Q Developer CLI を起動すると、関連するコードと設定ファイルにすぐにアクセスできます。

シナリオ: NGINX の 5xx エラーのトラブルシューティング

このシナリオでは、図 2 の Amazon ECS Fargate にデプロイされた多層アプリケーションアーキテクチャのトラブルシューティングを示します。

  • Application Load Balancer (ALB) がアベイラビリティーゾーン間でトラフィックを分散
  • NGINX リバースプロキシサービスが受信リクエストを処理
  • Node.js バックエンドサービスがビジネスロジックを処理
  • Service Discovery が内部通信を実現
  • CloudWatch Logs が統合ログ管理を提供

図 2: このブログ記事で使用するアプリケーションの AWS アーキテクチャ図

従来のトラブルシューティング手順

図 2 のアーキテクチャにおいて、502 Gateway Timeout エラーが発生した場合、従来のトラブルシューティングでは以下が必要です。

  1. ALB ターゲットグループのヘルスステータスのチェック
  2. 複数のコンソールで ECS サービスステータスの確認
  3. 異なるロググループの CloudWatch ログの分析
  4. サービス間のエラーパターンの相関分析
  5. インフラストラクチャコードの設定不具合のレビュー
  6. 修正の実装とデプロイ

Amazon Q Developer CLI アプローチ

ここでは、Amazon Q Developer CLI が体系的に処理する方法を、順を追って見てみましょう。

ステップ 1: 最初の問題報告

図 3 のスクリーンショットに示すように、アプリケーションのプロジェクトディレクトリ内で、Amazon Q Developer CLI に問題の説明として最初のプロンプトが与えられます。Amazon Q Developer が応答して、NGINX アプリケーションの 502 Gateway Timeout エラーを調査すると回答しています。

プロンプト:

Our production NGINX application is experiencing 502 Gateway Timeout errors.
I have checked out the application and infrastructure code locally and the AWS CLI
profile 'demo-profile' is configured with access to the AWS account where the
infrastructure and application is deployed to. Can you help investigate and diagnose the issue?

※訳者注: 本番環境の NGINX アプリケーションで 502 Gateway Timeout エラーが発生しています。アプリケーションとインフラストラクチャのコードをローカルに取得しており、AWS CLI プロファイル ‘demo-profile’ にはインフラストラクチャとアプリケーションがデプロイされている AWS アカウントへのアクセス権限が設定されています。この問題の調査と診断を手伝ってもらえますか?

図 3: 問題の説明を入力した Amazon Q Developer CLI の画面

ステップ 2: 体系的なインフラストラクチャの検出

図 4 のスクリーンショットに示すように、Amazon Q Developer CLI が体系的にインフラストラクチャの検出を開始しました。最初のプロンプトにはアプリケーションが ECS でホストされているという情報は含まれていませんでしたが、Amazon Q Developer CLI はコンテキストを理解し、クラスターとその中のサービスを調べるために AWS CLI を実行します。クラスター内の両方のサービスで ECS タスクが実行されていることを確認しました。両方のサービスが正常なステータス (1/1 の希望数) を示していることから、サービスの可用性には問題がないことが判明します。

図 4: Amazon Q Developer CLI による AWS インフラストラクチャの検出

ステップ 3: 高度なログ分析

Amazon Q Developer CLI は NGINX コンテナから直近の CloudWatch ログを取得して分析し、図 5 のスクリーンショットに示すように、重要なエラーパターンを即座に特定します。Amazon Q Developer は「完璧です!問題が見つかりました。NGINX のログには、アップストリームのタイムアウトメッセージによる 504 gateway timeout が明確に示されています」と応答します。

図 5: Amazon Q Developer CLI による CloudWatch ログの分析

ステップ 4: Amazon Q Developer CLI による分析と根本原因の特定

Amazon Q Developer はバックエンドサービスのログを調査し、図 6 のスクリーンショットに示すように、バックエンドサービスのレスポンス時間と NGINX のタイムアウト設定の不一致を発見しました。

図 6: Amazon Q Developer CLI による根本原因の特定

ステップ 5: Amazon Q Developer CLI の根本原因分析

図 7 のスクリーンショットに示すように、Amazon Q Developer CLI は ECS タスク定義を調べて、設定の不一致を正確に特定します。Amazon Q Developer は以下のことを発見しました。

  • バックエンドサービスは response_delay=15000 (15 秒) で設定されています
  • NGINX プロキシは proxy_read_timeout 10 秒で設定されています

この不一致により、バックエンドのレスポンスが NGINX のタイムアウトしきい値を超えた場合に、504 gateway timeout エラーが発生します。

図 7: Amazon Q Developer CLI による根本原因分析と問題検出

ステップ 6: コードの自動修正

ここで Amazon Q Developer CLI の真価が発揮されます。問題の診断だけでなく、修正も実装してくれます。Amazon Q Developer CLI は ECS タスク定義の CDK コードが定義されているプロジェクト内で起動されているため、図 8 のスクリーンショットに示すように、コードの設定を特定し、修正しました。

図 8: Amazon Q Developer CLI による CDK コードの修正

ステップ 7: デプロイ

図 9 のスクリーンショットに示すように、Amazon Q Developer CLI は、最初のプロンプトで提供された ‘demo-profile‘ AWS CLI プロファイルを使用して、cdk synthcdk deploy を実行し、修正をビルドしてデプロイします。

図 9: Amazon Q Developer CLI による CDK コードのビルドとデプロイ

ステップ 8: 検証

図 10 のスクリーンショットに示すように、Amazon Q Developer CLI は、デプロイが成功した後、ALB エンドポイントに curl リクエストを送信してソリューションを検証します。

図 10: Amazon Q Developer CLI による修正の検証

さらに Amazon Q Developer は、図 11 のスクリーンショットに示すように、修正がデプロイされた後にヘルスチェックエンドポイントにリクエストを送信し、すべてが正常に動作していることを検証します。

図 11: Amazon Q Developer CLI によるヘルスチェックエンドポイントの検証

Amazon Q Developer CLI が成し遂げたこと

対話形式の指示だけで、Amazon Q Developer CLI は完全なトラブルシューティングサイクルを実行しました。

  • インフラストラクチャの検出: ECS クラスター、サービス、依存関係を自動的にマッピング
  • ログの相関分析: 複数のサービスにわたる多数のログエントリを分析
  • 根本原因分析: NGINX のタイムアウト (10 秒) とバックエンドの応答遅延 (15 秒) における設定の不一致を特定
  • コードレベルでの診断: CDK インフラストラクチャコード内の問題のあるタイムアウト設定を発見
  • 自動実装: NGINX のタイムアウト値を増やすためにインフラストラクチャコードを修正
  • エンドツーエンドのデプロイ: 完全なソリューションの構築、デプロイ、検証を実施
  • 包括的なテスト: 修正の有効性とシステム全体の正常性を検証

Amazon Q Developer CLI は、単一の対話型インターフェイスでトラブルシューティングタスクを処理し、複数のツールや AWS CLI コマンドを使用する必要性をなくします。

まとめ

Amazon Q Developer CLI は、クラウドインフラストラクチャの問題をトラブルシューティングする方法の大きな進化を示しています。自然言語理解と強力なコマンド実行機能を組み合わせることで、複雑なトラブルシューティングのワークフローを効率的で実践的な対話に変換します。NGINX の 5xx エラーや他の AWS サービスで発生する同様の問題に対処する場合でも、Amazon Q Developer CLI は、自然で直感的な対話型インターフェイスを通じて、問題の診断、修正の実装、解決策の検証を支援します。

次回トラブルシューティングの課題に直面した際は、Amazon Q Developer CLI を試してみてください。運用ワークフローにどのような変化をもたらすか、ぜひ体験してください。

Amazon Q Developer の機能と料金の詳細については、Amazon Q Developer の製品ページをご覧ください。

翻訳はパートナーソリューションアーキテクトの田根が担当しました。

著者について

Kirankumar Chandrashekar は AWS の生成 AI スペシャリストソリューションアーキテクトで、Amazon Q Developer に注力しています。AWS クラウドサービス、DevOps、モダナイゼーション、Infrastructure as Code に関する深い専門知識を活かし、AI を活用した革新的なソリューションを通じて、お客様の開発サイクルの加速と開発者の生産性向上を支援しています。Amazon Q Developer を活用することで、チームがより迅速にアプリケーションを構築し、定型タスクを自動化して、開発ワークフローを効率化できるようにしています。 Kirankumar は、複雑なお客様の課題を解決しながら開発者の効率性向上に尽力しており、音楽、料理、旅行を趣味としています。