1日1%成長する ~Amazon CloudWatch~
AWSの学習メモ
- AWSのblackbaltの動画を15分以上毎日見る
- 動画を簡単にまとめる
Amazon CloudWatch CloudWatch Alarmsの設定 - M out of N(N個中M個)のアラーム - 評価期間:アラームの状態を決定するまでに要する値 - Datapoint to Alarm:アラームがALARM状態に遷移するために超過する必要がある評価期間内のデータポイントの数 - 短時間で変化が大きいメトリクスで誤報を抑制 CloudWatch Alarmsのアクション - SNS - SNSトピックを追加してアラームの状態が変わったときにトピック発行 - 以下、例 - CloudWatch MetricsにEC2からメトリクスを送付 - 指定したしきい値を超えた時にSNSのアクションを実行 - SNSをトリガーにAWS Lambdaを実行 - GetMetricWidgetImage APIのグラフを取得する - 取得したグラフの画像ファイルを添付したEmailを送信/運用システムに連携 - EC2 - EC2インスタンスを自動的に停止、終了、再起動または復旧アラームを作成 - StatusCheckFailed_SystemアラームがトリガーとしたAutoRecovery - EC2 Auto Scaling - AutoScalingのEC2インスタンス台数を増減するアラームを作成 - 負荷に応じてリソース調整 クラウドならではの監視 Billingアラーム設定が可能 ※アラームの設定はVirginiaリージョンから可能 CloudWatch Logs - AWSサービス及び顧客システムのログを監視、保存、アクセスを提供 - エージェント経由でログメッセージをCloudWatchエンドポイントに転送 - ログデータの保存期間を設定可能(1日〜永久保存) - Amazon S3へのログのエクスポートが可能 階層 - ログイベント - 1つのログエントリ - アクティビティのレコード - ログストリーム - 複数のログイベントで構成 - モニタリングしているリソースのタイムスタンプ順でイベントを表す - ロググループ - 複数のログストリームで構成 CloudWatch Logsのメトリクスフィルタ - ログデータから特定の文字列のフィルタリングが可能 CloudWatch Logsサブスクリプションフィルタ - 集めたログをフィルタパターンに応じてリアルタイムにKinesis Data Streams/Firehose/Lambdaへ転送 - 1つのロググループにつき、1つのサブスクリプションフィルタが可能 - サブスクリプションフィルタはCLIからのみ設定可能 CloudWatch Logs Insights - 専用のクエリ言語といくつかのシンプルで強力なコマンドを提供 - サンプルクエリ、クエリの自動補完、ログフィードの検出 - サンプルクエリ例:VPCフローログ向けに「送信元と送信先のIPアドレス別の平均、最小、最大バイト転送」など - 2018/11/5以降にCloudWatchLogsに送信されたログデータを検索可能 - ログタイプに応じログフィールドも異なる - VPCフローログやRoute53ログ、Lambdaログなど - fields:指定したフィールドをログイベントから取得 - filter:クエリの結果を1つ以上の条件でフィルタリング - stats:ログフィールドの値に基づいて集約統計を計算 - sort:取得したログイベントをソート - limit:クエリから返されるログイベントの数を制限 - parse:ログフィールドからデータを抽出 Visualization - 集約関数「stat()」、グルーピングに期間切り上げで「bin()」を使用する必要有り - 時間軸に沿ってトレンドやパターンを特定、分析 CloudWatch Dashboards - CloudWatchコンソールでカスタマイズ可能 - 異なるリージョンのリソースでも1つのダッシュボードでモニタリング可能 - 自動更新間隔(10s、1m、2m、5m、15m) - 表示可能な5つのウィジェット - 折れ線グラフ - スタックエリア - 数値 - テキスト - マークダウン形式で表示可能 - ボタンとしてウェブリンクを指定 - クエリ結果 - Logs Insightsから結果を表示 APIとCLI有り AWSが推奨するベストプラクティスに基づいたダッシュボード 「Automated dashboard」 CloudWatch Alarmsと統合可能 CloudWatch Events - AWS上のリソースを変更する示すシステムイベントのストリームを提供 - システムイベントをトリガーとして、ターゲットがイベントの処理 - JSON形式のイベントを条件にあってるかどうかチェックして処理 イベントバス 「他のAWSアカウントとイベントを送受信するようなAWSアカウントを設定」 1. 受信側アカウントでイベント受信を許可するAWSアカウント番号/Organizationを指定 2. 送信側アカウントで受信したイベントをイベントソースにするルールを作成 3. 受信側アカウントで受信したイベントをイベントソースとするルールを作成 Amazon CloudWatch EventsでのAWS Healthイベントのモニタリング - AWS Healthイベントのステータスの変化を検出し、アクションするツールをGitHubで公開 Private Linkの対応(Metrics/Events/Logs) - オンプレもしくはプライベートサブネット環境におけるCloudWatch利用 料金 - APIの料金 - メトリクスの数(カスタムメトリクス含む)1つずつかかる - event(100万あたり)