AWSでアプリを実行しています。EC2インスタンスに障害が発生した場合、または応答しなくなった場合に通知するようにAmazon CloudWatchを設定するにはどうすればよいですか?
CloudWatchの画面を確認したところ、CPUやディスクの使用率などの特定の統計を監視できるようですが、「インスタンスがhttpリクエストを受け取り、X秒以上かかった」などのイベントを監視する方法がわかりませんでした。応答。"
AWSでアプリを実行しています。EC2インスタンスに障害が発生した場合、または応答しなくなった場合に通知するようにAmazon CloudWatchを設定するにはどうすればよいですか?
CloudWatchの画面を確認したところ、CPUやディスクの使用率などの特定の統計を監視できるようですが、「インスタンスがhttpリクエストを受け取り、X秒以上かかった」などのイベントを監視する方法がわかりませんでした。応答。"
CloudWatch でイベントを監視するには、指定されたしきい値に対してメトリクスを監視するAlarmを作成します。
アラームを作成するときに、通知を送信するための「アクション」を追加できます。AWS は SNS (Simple Notification Service) を介して通知を処理します。通知トピックを購読すると、アラームのメールが届きます。
CPU やディスク使用率などの EC2 メトリクスについては、AWS ドキュメントのガイドです: http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/US_AlarmAtThresholdEC2.html
すでに回答されているように、ELB を使用して HTTP を監視します。
これは、ELB で使用可能なメトリクスのリストです: http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/US_MonitoringLoadBalancerWithCW.html#available_metrics
特定の質問に答えるには、http 応答の X 秒を監視するために、ELB の「レイテンシ」を監視するアラームを設定します。
CloudWatch モニタリングは、あなたが発見した通りです。メトリクスを見ることで、インスタンスの 1 つがフリーズしていると推測できますが、CloudWatch は、たとえば、アプリがダウンしている場合や遅すぎる場合にメールを送信しません。
アプリまたはインスタンスがダウンしたときに何らかの通知を探している場合は、監視サービスを使用することをお勧めします。Pingdomは良いオプションです。また、AWS に新しいインスタンスをセットアップし、Nagiosなどの監視ツールをインストールすることもできます。これは私の好みのオプションです。
ロード バランシング ( Amazon ELB )、アプリケーションを実行する複数のインスタンス、自動スケーリング (インスタンスがダウンすると、Amazon は自動的に新しいインスタンスを開始し、SLA を維持します)を使用するなど、長い道のりで常に価値のあるグッド プラクティスです。カスタム監視。
私のチームは長い間、カスタムの監視スクリプトを使用しており、障害が発生するとすぐにそれを認識していました。基本的に、アプリを実行する 2 つのノードがある場合、ノード 1 は HTTP リクエストをノード 2 に送信し、ノード 2 はノード 1 に送信します。システム管理者。今日では、オペレーティング システム (スレッドなど) やアプリケーション サーバー (接続プールの状態など) なども監視できる Nagios のような、より堅牢なアプローチに依存しています。セットアップに投資する価値は十分にあります。
CloudWatch は最近、インスタンスがダウンしているかどうかに関する質問の 1 つに答える「ステータス チェック」メトリクスを追加しました。Web サーバーへのリクエストではなく、システム チェックを行います。前の回答が示唆するように、HTTP ヘルス チェックには ELB を使用します。
ツール/テスト用に別のインスタンスをいつでも用意できます。そのインスタンスは、スケジュールに基づいて http リクエストを試行し、応答時間を測定します。次に、その応答時間を CloudWatch で公開し、特定のしきい値を超えたときにアラームを設定できます。
インスタンス自体から行うこともできます。
Kurst Ursan が上で述べたように、"Status Check" メトリクスを使用するのが最善の方法です。場合によっては、そのメトリクスを参照できない場合があるため (つまり、AWS OpsWorks を使用している場合)、そのカスタム メトリクスを自分でレポートする必要があります。ただし、(OK 状態で) 常に一致するメトリクスに基づいて構築されたアラームを設定し、状態が「データ不足」状態に変化したときにアラームをトリガーすることができます。これは、技術的には、CloudWatch が状態が OK であるかどうかを判断できないことを意味します。または ALARM は、インスタンスに到達できないためです。つまり、インスタンスがオフラインです。