Amazon Web Services ブログ

新登場 – アプリケーションのエラーと修正の特定に役立つ Amazon DevOps Guru

本日、完全マネージド型運用サービスの Amazon DevOps Guru を発表します。Amazon DevOps Guru は、運用上の問題を自動的に検出して修正を推奨することで、デベロッパーやオペレーターがアプリケーションの可用性を容易に向上させることができるようにするサービスです。DevOps Guru は、Amazon.com とアマゾン ウェブ サービス (AWS) の長年にわたるオペレーショナルエクセレンスを習得した機械学習を適用し、アプリケーションメトリクス、ログ、イベントなどのデータを自動的に収集および分析し、通常の運用パターンから逸脱した動作を特定します。

動作が運用上の問題またはリスクとして特定されると、DevOps Guru はデベロッパーとオペレーターに問題の詳細を通知し、問題の範囲と原因の可能性を迅速に把握できるようにします。DevOps Guru では問題を解決するためのインテリジェントな推奨事項が提供されるため、解決までにかかる時間を節約できます。DevOps Guru では、ハードウェアやソフトウェアをデプロイする必要はなく、分析されたデータに対してのみ課金されます。前払いコストやコミットメントは発生しません。

分散された/複雑なアーキテクチャとオペレーショナルエクセレンス
アプリケーションの分散化と複雑化が進むにつれ、オペレーターはアプリケーションの可用性を維持し、運用上の問題の検出、デバッグ、および解決に費やす時間と労力を削減するために、より自動化されたプラクティスを必要とします。例えば、設定ミス、不均衡なコンテナクラスター、またはリソースの枯渇などによるアプリケーションのダウンタイムは、企業にとって大きな収益損失につながる可能性があります。

多くの場合、企業は、メトリクス、ログ記録、トレース、イベントなどの複数のモニタリングツールをデプロイおよび管理し、それらをさまざまな場所に保存して分析するといった、デベロッパーの作業にかかる時間に投資する必要があります。また、デベロッパーやオペレーターは、ロードバランサーでのエラーのスパイクやアプリケーションのリクエストレートの異常な低下などの問題を警告するために、カスタムアラームの開発と保守に時間を費やしています。問題が発生すると、オペレーターは同じ問題に関連する複数のアラートを受け取り、アラートを組み合わせて、すぐに対応しなければならないアラートに優先順位を付けます。

DevOps Guru の仕組み
DevOps Guru の機械学習モデルは、過去 20 年にわたって、AWS の専門知識を活用して世界最大の電子商取引ビジネス向けに高可用性アプリケーションを実行しています。DevOps Guru は、運用上の問題を自動的に検出し、考えられる原因を詳述し、修復アクションを推奨します。DevOps Guru は、Amazon CloudWatchAWS ConfigAWS CloudTrailAWS CloudFormationAWS X-Ray をサポートする複数のソースにまたがるデータを統合することにより、運用データを検索および可視化する単一のコンソールエクスペリエンスをお客様に提供し、複数のツールを使用する必要がなくなります。

DevOps Guru の開始方法
DevOps Guru のアクティブ化は簡単で、AWS マネジメントコンソールにアクセスして [Enable (有効)] をクリックだけです。DevOps Guru を有効にすると、IAM ロールを選択できます。次に、分析する AWS リソースを選択します。これには、AWS アカウント内のすべてのリソース、または指定した CloudFormation StackSets のみが含まれます。最後に、DevOps Guru から SNS 経由で通知を送信したい場合、Amazon SNS トピックを設定できます。

DevOps Guru はログの収集と環境の分析を開始します。この作業には数時間かかる場合があります。この図に示すような、単純なサーバーレスアーキテクチャについて考えていきましょう。

システムにエラーがある場合、オペレーターは、エラーが Amazon API GatewayAWS Lambda、または AWS DynamoDB から発生したかどうかを調査する必要があります。その後、根本原因と問題の解決方法を特定する必要があります。DevOps Guru では、このプロセスが簡単かつシンプルになります。

デベロッパーが DevOps Guru の管理コンソールにアクセスすると、インサイトのリストが表示されます。これは、異常を収集したリストであり、アプリケーション内で設定された AWS リソースの分析中に作成されます。ここでは、Amazon API Gateway、AWS Lambda、および Amazon DynamoDB がリストに入っています。各インサイトに含まれている観測値、推奨事項、コンテキストデータを使用することで、運用上の問題を深く理解し、解決することができます。

以下のリストには、インサイト名、ステータス (解決済みまたは進行中)、重要度、およびインサイトが作成された日時が表示されています。ログをチェックしなくても、最新の問題 (1 行目) では、スタック内の Lambda 関数に関する問題が根本原因になっていて、それが実行時間に関連していたことがすぐにわかります。問題がまだ発生している場合は、ステータスは [Ongoing (進行中)] と表示されます。この問題は一時的なものであるため、ステータスは [Closed (解決済み)] と表示されます。

インサイト

最初のインサイトのリンクをクリックして、最新の異常を詳しく見てみましょう。[Aggregated metrics (集計されたメトリクス)] と [Graphed anomalies (グラフ化された異常)] の 2 つのタブがあります。

[Aggregated metrics (集計されたメトリクス)] には、インサイトに関連するメトリクスが表示されます。オペレーターは、メトリクスを出力したリソースが作成された AWS CloudFormation スタック、リソース名、およびリソースタイプを確認できます。タイムラインの赤い線は、メトリクスの異常値が出力された時間の範囲を示します。この場合では、オペレーターは、各メトリクスで異常が発生した 11 月 24 日の特定の時刻を確認できます。

[Graphed anomalies (グラフ化された異常)] には、インサイトの異常ごとに詳細なグラフが表示されます。オペレーターは、リソースレベルと統計ごとに異常を調査および確認できます。グラフはメトリクス名に基づいてグループ化されます。

メトリクス

オペレーターは、集計されグラフ化された異常を確認することによって、問題が発生した日時、問題が今も進行中かどうか、および影響を受けたリソースを確認できます。ここでは Lambda の実行時間の増加に伴い API Gateway が影響を受け、タイムアウトが発生し、結果的に API Gateway で 5XX エラーが発生したようです。

Dev Ops Guru では、以下に示すように、アプリケーションの設定を変更するアクティビティに関連する[Relevant events (関連イベント)] も確認できます。

イベント

ここで、この問題が発生する 2 時間前に設定が変更されたことがわかります。グラフ上で 11/24 の 20:30 にあるポイントをクリックすると、その変更の詳細を表示できます。

[Ops event (Ops イベント)] をクリックすると、AWS CloudTrail のログに、次の 2 つの設定変更が表示されます。1) Lambda 関数でのプロビジョニングされた同時実行キャパシティの変更、2) API 統合のレイテンシーでの統合タイムアウトの軽減。

修正の推奨事項

推奨事項では、Lambda のプロビジョニングされた同時実行性を評価し、API Gateway のエラーのトラブルシューティング方法をオペレーターに指示します。さらに評価を進めていくと、オペレーターはこの判断が正しいことがわかります。根本原因は、Lambda でプロビジョニングされた同時実行設定と API Gateway 統合のレイテンシータイムアウトが一致していないことです。前回のデプロイで Lambda 設定が更新された時、このアプリケーションでのバーストトラフィックへの応答方法が変更されたため、API Gateway のタイムアウトウィンドウに収まらなくなっていました。このエラーはユニットテストで発見されることはほとんどなく、設定が更新されなければ繰り返し発生します。

DevOps Guru は Amazon SNS 経由でオペレーターに異常のアラートを送信でき、AWS Systems Manager OpsCenter と統合されているため、お客様は OpsCenter 内で直接インサイトを受け取り、問題を迅速に診断および修復できます。

プレビュー可能なリージョン
Amazon DevOps Guru のプレビュー版は、米国東部 (バージニア北部)米国東部 (オハイオ)米国西部 (オレゴン)欧州 (アイルランド)アジアパシフィック (東京) でご利用いただけます。DevOps Guru の詳細については、当社のウェブサイトおよび技術ドキュメントにアクセスしてください。今すぐ利用開始しましょう。

– Kame