Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Amazon CloudWatch Application Signals(Preview) 徹底解説

Ryo Yoshii
December 17, 2023

Amazon CloudWatch Application Signals(Preview) 徹底解説

OpsJAWS Meetup#26 で話した資料を公開します。
AWS re:Invent 2023 で発表された Amazon CloudWatch Application Signals(Preview) とはどのようなサービスなのか、何が嬉しいのかを解説しています。

Ryo Yoshii

December 17, 2023
Tweet

More Decks by Ryo Yoshii

Other Decks in Technology

Transcript

  1. 自己紹介 吉井 亮 (YOSHII RYO) 経歴 HWエンジニア → 中小SIer →

    ERPコンサル → AWS パートナー → つながる会社 Community OpsJAWS, (AWS Community Builder) 好きな言葉 No human labor is no human error. Follow Me https://my.prairie.cards/u/YoshiiRyo1
  2. 公式アナウンス https://aws.amazon.com/jp/about-aws/whats-new/2023/11/amazon-cloudwatch-applications-signals-observe-preview/ Amazon CloudWatch Application Signals (プレビュー版) は、Amazon で何 千ものアプリケーションを運用してきた経験から得られたベストプラクティスに

    基づいて開発された新しい機能で、AWS でアプリケーションの自動計測や運用を 簡単に行うことができます。手動による計測、メトリクスの計算、観察された問 題と根本原因の関連付けなどの差別化につながらない面倒な作業を行うことな く、最も重要なビジネス目標に照らしてアプリケーションのパフォーマンスを追 跡できます。 8
  3. 機能要約 • アプリケーションからメトリクスとトレースを収集 (自動計装エージェントにより) • call volume, availability, latency, faults,

    and errors などの主要キーを表示 • ダッシュボードを作らなくても、アプリケーションのパフォーマンス目標を可視化 • SLO を作成、監視が可能 • サービスマップが自動的に作成される • サービスマップ内で SLI を追跡可能 • CloudWatch RUM、Cloudwatch Synthetics Canary、AWS Service Catalog AppRegistry と連携可能 9
  4. 10

  5. Java V2 SDK: aws s3 cp s3 cp s3://application-signals-preview-sdk/awsJavaSdkV2.zip ./

    JavaScript V3 SDK: aws s3 cp s3://application-signals-preview-sdk/jsSdkV3.zip ./ JavaScript V2 SDK: aws s3 cp s3://application-signals-preview-sdk/jsSdkV2.zip ./ Python SDK: aws s3 cp s3://application-signals-preview-sdk/pythonSdk.zip ./ Kotlin SDK: aws s3 cp s3://application-signals-preview-sdk/kotlin.zip ./ Android SDK: aws s3 cp s3://application-signals-preview-sdk/andriod.zip ./ C++ SDK: aws s3 cp s3://application-signals-preview-sdk/awsCppSdk.zip ./ PHP SDK: aws s3 cp s3://application-signals-preview-sdk/awsSdkPhp.zip ./ Ruby SDK: aws s3 cp s3://application-signals-preview-sdk/awsSdkRuby.zip ./ Go V2 SDK: aws s3 cp s3://application-signals-preview-sdk/awsSdkGoV2.zip ./ Go V1 SDK: aws s3 cp s3://application-signals-preview-sdk/go.zip ./ iOS SDK: aws s3 cp s3://application-signals-preview-sdk/iOS.zip ./ 13
  6. 構成要素 AWS Distro for OpenTelemetry - Instrumentation for Java Version

    1.31.1 以降 既存で何かしらの自動/手動計装している場合は、一旦全部削除してから このプレビューを試しましょうとのこと 16
  7. 伏線 Amazon CloudWatch Container Insights の Amazon EKS オブザーバビリティを強化 (2023/11/06)

    https://aws.amazon.com/jp/about-aws/whats-new/2023/11/amazon-cloudwatch-container-insights-enhanced-observability-eks/ AWS Distro for OpenTelemetry でログのサポートが利用可能に (2023/11/22) https://aws.amazon.com/jp/about-aws/whats-new/2023/11/logs-support-aws-distro-opentelemetry/ 17
  8. 料金 アプリケーションシグナルごと インバウンドリクエスト (アプリケーションが受信したサービスリクエスト) = 1 アウトバウンドリクエスト (依存関係に対して行われるリクエスト) = 1

    各 SLO は、SLI (サービスレベル指標) メトリクス期間ごと = 2 無料枠 プレビュー期間中は 1 か月あたり 1 億のアプリケーションシグナル 18
  9. 料金 有料枠 最初の 1 億のアプリケーションシグナル 1.50USD アプリケーションシグナル/月 次の 9 億のアプリケーションシグナル

    0.75USD アプリケーションシグナル/月 10 億を超えるアプリケーションシグナル 0.30USD アプリケーションシグナル/月 他 RUM、Synthetic Canary、X-Ray、CloudWatch Logs、アラーム、ダッシュボード 19
  10. 話が逸れますが 健康診断うけてますよね? 24 ▪ 一般検診 ▪ 問診 身体測定 尿検査 血液検査

    血圧検査、心電図 視力、聴力 胸部レントゲン ▪ 人間ドック ▪ 肥満度・BMI 眼底、眼圧検査 上部消化管レントゲン (バリウム)、胃カメラ 腹部超音波 血液検査 (多項目) 便潜血検査 モニタリング オブザーバビリティ
  11. メタボリックシンドロームとは ❏ 腹囲 男性:85cm以上 女性:90cm以上 ❏ (OR) 高血糖 空腹時血糖110mg/dl以上または HbA1c 5.5%以上

    ❏ (OR) 脂質異常症 中性脂肪150mg/dl以上または HDLコレルテロール40mg/dl未満 ❏ (OR) 血圧高値 収縮期血圧130mmHg以上または拡張期血圧85mmHg以上 腹囲 AND (OR のうち2つ以上該当) ⇒ メタボ、 健康のリスク高 27 SLO
  12. CloudWatch Agent 構成ファイル (SSM Parameter) { "traces": { "traces_collected": {

    "app_signals": {} } }, "logs": { "metrics_collected": { "app_signals": {} } } } 36 "app_signals": {} を書いておくと TCP 4315 ポートが開く (OTLP Receiver) アプリケーションは TCP 4315 に対して トレースとログを送信する (環境変数で送信先を指定する 127.0.0.1:4315)
  13. CloudWatch Agent 構成ファイル "app_signals": {} の中に細かいルールが書けます。 “action”: “keep”: CloudWatch へ送信する

    “drop”: CloudWatch へ送信しない 例えば、/health みたいなリクエスト “replace”: 値を変換して CloudWatch へ送信する 37 "rules": [ { "rule_name": "keep01", "selectors": [ { "dimension": "Service", "match": "pet-clinic-frontend" }, { "dimension": "RemoteService", "match": "customers-service" } ], "action": "keep"
  14. ADOT 自動計装エージェント JAVA_TOOL_OPTIONS " -javaagent:/anyDir/javaagent.jar" で ADOT 自動計装エージェントを読み込ませる。 1. jar

    ファイルをコンテナイメージに含む 2. ユーザーガイドにある通り、タスク起動時にコピーする 38
  15. コンテナの環境変数 OTEL_RESOURCE_ATTRIBUTES = "aws.hostedin.environment=$HOST_ENV,service.name=$SVC_NAME" OTEL_SMP_ENABLED = “true” OTEL_METRICS_EXPORTER = “none”

    OTEL_AWS_SMP_EXPORTER_ENDPOINT = “http://127.0.0.1:4315” OTEL_EXPORTER_OTLP_TRACES_ENDPOINT = “http://127.0.0.1:4315” OTEL_TRACES_SAMPLER = “xray” OTEL_PROPAGATORS = “tracecontext,baggage,b3,xray” JAVA_TOOL_OPTIONS = " -javaagent:/anyDir/javaagent.jar" 40
  16. 41

  17. 42

  18. 43

  19. 44

  20. 45

  21. 46

  22. 47

  23. 48

  24. 49

  25. 50