概要

アプリケーション配信を監視することで、異常なイベントを検出して適切に対応できます。Amazon CloudWatch は、アプリケーション配信に使用される AWS エッジサービスを含むアマゾンウェブサービス (AWS) リソースをモニタリングします。たとえば、AWS Edge Services によって生成されるサーバー側のメトリックスは、トラフィック量の予想外の増加、キャッシュヒット率の大幅な低下、5xx エラーの急激な増加、DDoS 攻撃を検出するのに役立ちます。サーバー側のメトリックスに加えて、CloudWatch は CloudWatch RUM を使用してクライアント側のモニタリングからメトリクスを収集して追跡します。カスタムダッシュボードは、CloudWatch メトリックスを使用して作成でき、そのメトリックスにアラームを設定することもできます。

サーバーサイドメトリクス

AWS エッジサービスによって生成されるネイティブ CloudWatch メトリックス

アプリケーションの配信と保護を行う際に、AWS Edge サービスから生成される以下のほぼリアルタイムの CloudWatch メトリクスを考慮してください。

  • CloudFront は、リクエスト、ダウンロードされたバイト数、アップロードされたバイト数、4xx エラー率、5xx エラー率、および合計エラー率というメトリクスを出力します。CloudFront はグローバルサービスであるため、これらのメトリックスは us-east-1 リージョンで利用できることに注意してください。追加料金で、特定のステータスコードのキャッシュヒット率、オリジンレイテンシー、エラー率などの追加メトリックを有効にできます。
  • CloudFront Functions は us-east-1 リージョンで、呼び出し、検証エラー、実行エラー、コンピューティング使用率、スロットルというメトリクスを出力します
  • Lambda @Edge は AWS Lambda をベースにしているため、呼び出し、エラー、期間、同時実行、スロットルなどのメトリックスのサブセットを出力します。CloudFront 関数とは対照的に、Lambda @Edge メトリックスは CloudFront によって実行される各リージョンにあります。CloudFront コンソールでは、すべてのリージョンのこれらのメトリクスをまとめて表示できます。
  • AWS WAF は、許可されたリクエスト、ブロックされたリクエスト、カウントされたリクエスト、Captcha で検証されたリクエスト、チャレンジによって検証されたリクエストなどのメトリクスを出力します。各メトリクスは、WebACL、ルール、国、デバイスなどによって細かく測定できます。Web ACL が CloudFront に適用されると、AWS WAF メトリクスは us-east-1 リージョンで利用可能になることに注意してください。
  • Shield Advanced は、検出された DDoS 攻撃に関するメトリクス (攻撃ビット/秒、パケット/秒、1 秒あたりのリクエスト数など) を送信します。
    メトリックスが複数のリージョンやアカウントにわたる場合でも、AWS Edge Services によって生成された上記のメトリックスに基づいて CloudWatch ダッシュボードを作成できます。以下の例は、AWS WAF ルールによって生成されたメトリックスに基づくセキュリティダッシュボードです。

メトリックスが複数のリージョンやアカウントにわたる場合でも、AWS Edge Services によって生成された上記のメトリックスに基づいて CloudWatch ダッシュボードを作成できます。以下の例は、AWS WAF ルールによって生成されたメトリックスに基づくセキュリティダッシュボードです。

高度な指標

アプリケーションの高度なメトリクスは複数の方法で作成できます。1 つは、ネイティブの CloudWatch メトリクスをより高度なメトリックスに組み合わせる方法で、もう 1 つはサービスログに基づくものです。

最初の方法では、 CloudWatch メトリックス数学を使用します。 たとえば、CloudFront によって配信された 1 秒あたりの合計リクエスト数は、CloudFront のリクエストメトリクスを測定期間 (m1/期間 (m1)) で割ることによって計算できます。別の例としては、他のメトリクスを論理的に組み合わせてアプリケーションの状態を反映する複合メトリクスを作成することです (たとえば、CloudFront が 5xx < 0.5% で、サーバーのレイテンシーが 1 秒未満であれば正常です)。この複合メトリックは、Shield Advanced のヘルスチェックで使用できます。

2 つ目の方法では、AWS Edge サービスによって生成されたログを使用してカスタムメトリックスを生成します。いくつかの実装には以下が含まれます。

アラート

CloudWatch メトリックスが異常なイベントを示したときに通知を受け取るアラームを作成できます。このブログの手順に従って、CloudFront の 5xx エラー率のしきい値に基づいてアラームを設定します。しきい値に基づくアラームに加えて、CloudWatch の異常検出では、メトリクスをベースライン化したり、ベースラインと比較した異常な変化に基づいてアラームを作成したりできます。

セキュリティハブのセキュリティ結果

AWS ファイアウォールマネージャーは、コンプライアンス違反のリソースや Shield Advanced によって検出された攻撃について、AWS セキュリティハブで検出結果を作成します

クラウドウォッチインターネットモニター

CloudWatch Internet Monitor は、AWS がグローバルネットワークフットプリントからキャプチャした接続データを使用して、インターネットに接続するアプリケーションのパフォーマンスを可視化します。Internet Monitor では、AWS でのワークロードフットプリントに合わせて、可用性やパフォーマンスなどのインターネット測定値を継続的に監視できます。Internet Monitor を使用すると、時間の経過に伴う平均的なインターネットパフォーマンスメトリックや、場所やインターネットサービスプロバイダー (ISP) ごとの問題 (イベント) に関する洞察を得ることができます。Internet Monitor を利用すると、CloudFront などのサービスを利用するアプリケーションでのエンドユーザーエクスペリエンスに影響を及ぼしているイベントを簡単に特定できます。 Amazon CloudWatch Internet Monitor を利用して、ワンクリックで CloudFront エッジへのインターネットトラフィックをモニタリングする方法については、このブログ記事をご覧ください。

インターネットの問題がアプリケーションのパフォーマンスにどのように影響するかについての可視性

クライアント側の監視

サーバー側のメトリックスに加えて、CloudWatch RUM を使用してクライアント側のメトリクスを収集することをお勧めします。RUM は、ユーザーの視点から見たウェブアプリケーションの動作に関する最も正確なデータを提供します。CloudWatch RUM を使用するには、ウェブページに javascript タグを追加する必要があります。JavaScript は、ページロード時間、コアウェブバイタル、アプリケーションエラーなどのデータをブラウザ API から収集し、それらを CloudWatch RUM に送信してダッシュボードを作成します。さらに、CloudWatch RUM は、WebVitalsCumulativeLayoutShift、WebVitalsFirstInputDelay、WebVitalsLargestContentfulPaint、JS エラー数、 HTTPStatusCodeCount などの CloudWatch メトリクスを出力します

リソース

このページはお役に立ちましたか?