or its affiliates. All rights reserved. Lambda 関数によるカスタムウィジェット C L O U D W A T C H D A S H B O A R D S を 使 い 倒 そ う 💪 • ほぼ任意の処理や表示が可能なウィジェット • HTML 文書を返却する Lambda 関数を用意 • カスタムウィジェットを通じて関数が呼ばれる • インタラクティブ性の追加 • セキュリティ上の理由から JavaScript は利用不可 • ボタン: 指定した Lambda 関数の呼出など • フォーム: Lambda 関数呼出時の引数へ値を渡す
or its affiliates. All rights reserved. ダッシュボード変数による柔軟性の追加 C L O U D W A T C H D A S H B O A R D S を 使 い 倒 そ う 💪 • 2023年6月末リリース New! • ダッシュボード定義の任意の箇所を置換可能 • 自動検知されたフィールド (InstanceId など) • 任意の正規表現 • 用途 • リソース・リージョン・環境の切り替え • 垂直注釈による事象発生時刻の可視化 • Logs ウィジェットでフィルター条件変更
or its affiliates. All rights reserved. ダッシュボード変数とカスタムウィジェットの組み合わせ C L O U D W A T C H D A S H B O A R D S を 使 い 倒 そ う 💪 • ダッシュボード変数は カスタムウィジェットでも利用可能 • 例: リソースに応じた回復アクションの実行 etc.. 置換された値を Lambda 関数の引数に
or its affiliates. All rights reserved. 特定のエラータイプを監視から除外する M E T R I C M A T H で 複 雑 な ア ラ ー ム を 実 現 す る • TotalErrors (合計エラー数) の監視 • ただし AccessDeniedErrors は問題とならないので、監視の対象から除外したい 数式を追加 TotalErrors - AccessDeniedErrors アラーム費用 (対象メトリクス数) の点で不利 ServerErrors + UnexpectedErrors + InvalidRequestErrors
or its affiliates. All rights reserved. 1 日の内の特定時間帯のみの監視 M E T R I C M A T H で 複 雑 な ア ラ ー ム を 実 現 す る • 10:00 – 16:59 JST で稼働する EC2 インスタンスを監視 • 稼働時間外ではアラームによる監視を無効化したい 数式を追加 IF(1 <= HOUR(m1) && HOUR(m1) <= 7, m1, 0) 17:00 – 09:59 JST では常にしきい値内となる アラーム作成
or its affiliates. All rights reserved. CloudWatch Dashboards との連携 • ダッシュボードのウィジェットを選択・表示 • アラーム通知に対するトリアージ • 表示範囲、期間、統計は変更可能 • Chatbot を通じたコマンド実行により実現 • よく利用するコマンドはエイリアス(別名)で保存可能
or its affiliates. All rights reserved. CloudWatch Synthetics のスクリプトを自動で生成する • CloudWatch Synthetics • エンドポイントや API に対する外形監視のための模擬クライアント「Canary」を作成 • Synthetics は定期的に Canary スクリプトを実行し、ウェブサイトの問題を検知する • レイテンシーの確認や、スクリーンショットの保存・変分検知も可能
or its affiliates. All rights reserved. AWS Synthetics Canary Recorder プラグインが便利! C L O U D W A T C H S Y N T H E T I C S の ス ク リ プ ト を 自 動 で 生 成 す る • シナリオ • ログインページの外形監視 • ユーザー名とパスワードを入力し、ログインボタンをクリック • 課題 • Python/Selenium もしくは Node.js/Puppeteer を用いた Canary スクリプトが必要に • → AWS Synthetics Canary Recorder プラグインで解決!
or its affiliates. All rights reserved. AWS Synthetics Canary Recorder プラグインが便利! C L O U D W A T C H S Y N T H E T I C S の ス ク リ プ ト を 自 動 で 生 成 す る • AWS Synthetics Canary Recorder プラグイン • ウェブサイト上のクリックや文字入力の操作を記録 • 同じステップを実行する、Node.js の Canary スクリプトを自動で生成 • Google Chrome の拡張機能として提供 アクセス!
or its affiliates. All rights reserved. AWS Synthetics Canary Recorder プラグインが便利! C L O U D W A T C H S Y N T H E T I C S の ス ク リ プ ト を 自 動 で 生 成 す る Canary に 実行させたい操作を 実際に行う 記録を開始
or its affiliates. All rights reserved. Synthetics Canary Recorder プラグインの注意点 C L O U D W A T C H S Y N T H E T I C S の ス ク リ プ ト を 自 動 で 生 成 す る • Canary Recorder が生成するスクリプトにはパスワード等が直接含まれる • AWS Secrets Manager への保存がベストプラクティス! • Canary のスクリプトを以下のように変更 await synthetics.executeStep('Type_7', async function() { await page.type('.wrapper > div > form > .form-group:nth-child(2) > .form-control', ”Test1234!"); }); // Secrets Manager からシークレットを取得 let secrets = await secretsManager.getSecretValue({SecretId: “<SECRET_ID>”}).promise(); let secretsObj = JSON.parse(secrets.SecretString); await synthetics.executeStep('Type_7', async function() { await page.type('.wrapper > div > form > .form-group:nth-child(2) > .form-control’, secretsObj.Password); });
or its affiliates. All rights reserved. CloudWatch Internet Monitor の仕組み • 対象リソースへ直接アクティブ監視をするものではない • 対象リソースへの追加の負荷やコストが生じず、変更も不要 • AWS リージョンとエッジロケーションで取得した膨大なデータを活用! • 対象リソースのトラフィック特性 (ユーザーロケーション等) と AWS が取得するグローバルネットワークフットプリントを重ね合わせ
or its affiliates. All rights reserved. CloudWatch Internet Monitor 活用事例 – AdTech を例に - • AdTech で利用されているリアルタイム広告オークションの事例 • 入札者 (広告主; DSP) と広告取引所 (Ad exchange) の間のネットワークパフォーマンス • → ユーザーのページビュー・広告体験に影響
or its affiliates. All rights reserved. CloudWatch Agent の AWS X-Ray/OTelトレースの統合 AWS X-Ray: • アプリケーションが処理するリクエストに関するデータを収集するサービス • トレースを取得 https://aws.amazon.com/jp/xray/features/
or its affiliates. All rights reserved. Contributor Insights C L O U D W A T C H M E T R I C S で 高 カ ー デ ィ ナ リ テ ィ に 立 ち 向 か う • CloudWatch Logs のログデータから 高カーディナリティ時系列データを抽出 • 出力は通常の CloudWatch メトリクスと異なる • 限られた方法でのみメトリクスが取得可能 • GetInsightRuleReport API • トップ N コントリビューター、統計データ • アラーム利用不可 • Metric Math 関数 INSIGHT_RULE_METRIC • 統計データのみ、アラーム利用可
or its affiliates. All rights reserved. 埋め込みメトリクス形式 (Embedded Metric Format, EMF) C L O U D W A T C H M E T R I C S で 高 カ ー デ ィ ナ リ テ ィ に 立 ち 向 か う • CloudWatch Logs にメトリクスを埋め込む • EMF は、この埋め込みの形式を定めるもの • EMF を用いた構造化ログを出力 • → 自動でログから CloudWatch メトリクスを生成 • ログから複雑な分析が可能 • メトリクスは検知のための最小限の利用 • ログは検知された事象に対する詳細分析に利用 • Logs Insights による相関関係の分析 etc.. 追加の属性を 付与可能
or its affiliates. All rights reserved. Contributor Insights と EMF の比較 C L O U D W A T C H M E T R I C S で 高 カ ー デ ィ ナ リ テ ィ に 立 ち 向 か う Contributor Insights • 費用: • ログ (取込, 保管, 評価) + ルール数 • 適した場面: • JSON/CLF に従う任意の構造化ログ • メトリクス利用: • 通常のメトリクスと異なり特有の制限 Embedded Metric Format • 費用: • ログ (取込, 保管) + メトリクス数 • 適した場面: • アプリ側で出力ログの形式を変更可能 • OpenTelemetry での計装を利用 • メトリクス利用: • 通常のメトリクスと等価
or its affiliates. All rights reserved. CloudWatch Evidently の RUM 統合 • CloudWatch RUM • ウェブアプリケーションに、自動生成されたスクリプトをコピペするのみ • パフォーマンス、JavaScript エラー、HTTP エラーなどを記録 • どのブラウザ・デバイスからアクセスされているかも確認可能 https://aws.amazon.com/jp/blogs/news/cloudwatch-rum/
or its affiliates. All rights reserved. • ウェブアプリケーションに、Evidently を呼び出すコードを実装し、 CloudWatch RUM の自動生成されたスクリプトをコピペする • RUM の config に cookieAttributes を追加 • Evidently の EvaluateFeature API に渡す entityId の値は、cookie から sessionId を拾う • Evidently で、実験の成功を判断するために追跡するメトリクスに、RUM の メトリクスを選択することができる 複数の RUM の メトリクスから選択可能 CloudWatch Evidently の RUM 統合
or its affiliates. All rights reserved. フィルターパターンが正規表現に対応! • 2023年9月リリース New! • CloudWatch コンソールでの検索 • FilterLogEvents API でのログの取得 • メトリクスフィルター • サブスクリプションフィルター