目次

CloudWatch Application Insights 完全ガイド v2.0

.NET / SQL Server / SAP ワークロードの自動監視とML根本原因分析

Amazon CloudWatch Application Insights は、.NET・SQL Server・SAP・Java・Ruby 等のアプリケーション(特に レガシー・Windows ワークロード)をリソースグループで登録し、ML が最適な監視設定を自動検出・配置するマネージド監視サービスです。CloudFormation スタック / リソースグループを登録するだけで、CloudWatch メトリクス・ログフィルター・アラームが自動生成。障害発生時は根本原因分析(RCA)を自動実施し、OpsCenter との統合で修復ワークフローの自動実行も可能です。本ドキュメントは Application Insights の本質・監視対象ワークロード・2026年最新動向を体系的に解説します。

ドキュメントの目的

本ガイドは以下を対象としています。

  • 初心者向け: Application Insights とは何か、.NET/SQL Server 監視の簡素化を学びたい方
  • DevOps / SRE 向け: レガシーアプリ監視設定を ML で自動化したい方
  • Windows / .NET 環境管理者向け: IIS エラー・SQL デッドロック・メモリリーク検出を実装したい方
  • 意思決定者向け: Datadog APM・New Relic・Dynatrace との比較検討

2025-2026年の最新動向

  • Application Signals との統合深化(2026年2月):Application Insights データを Application Signals SLO に自動フィード
  • OpsCenter 自動修復ワークフロー拡張(2026年3月):.NET Crash → 自動ダンプ取得・分析 の Systems Manager Automation
  • Java アプリ対応拡張(2026年4月):Java Spring Boot / Quarkus の自動検出強化
  • Cross-Platform 対応準備(2026年5月):Linux 上の .NET Core の自動検出

目次

  1. 概要
  2. Application Insights が解決する課題
  3. 主な特徴
  4. アーキテクチャ
  5. 対応ワークロード
  6. コアコンポーネント
  7. 主要ユースケース
  8. 設定・操作の具体例
  9. 類似サービス比較
  10. ベストプラクティス
  11. トラブルシューティング
  12. 2025-2026最新動向
  13. 学習リソース
  14. 導入ロードマップ
  15. 実装チェックリスト
  16. まとめ
  17. 参考文献

概要

初心者向けメモ: CloudWatch Application Insights は「.NET・SQL Server・SAP ワークロードの監視設定を ML で自動生成するサービス」です。従来は、IIS エラーログ・SQL パフォーマンスカウンター・メモリメトリクスを手動で CloudWatch に送信する設定が必要でしたが、Application Insights に登録すると ML が「このアプリには IIS とSQL Server があるから、これらのベストプラクティス監視設定を自動適用」と判定して自動構成します。

CloudWatch Application Insights は CloudFormation スタック / AWS リソースグループをアプリケーションとして登録し、ML(SageMaker)がインストール済みのアプリケーション・ミドルウェア・OS を自動検出。検出した要素ごとに最適な CloudWatch メトリクス・ログフィルター・アラーム設定を自動生成します。障害発生時は複数のメトリクス・ログ・イベントを相関分析して根本原因候補を自動提示。OpsCenter・Systems Manager・DevOps Guru との統合で、修復ワークフローの自動実行も可能です。

Application Insights の位置づけ

アプリケーション監視・可観測性スタック内での役割:

  • .NET / SQL Server / Windows 特化:汎用 CloudWatch メトリクス設定では不十分な Windows ワークロード向け
  • 監視設定の自動化:ベストプラクティス監視を ML で自動適用。手作業の監視設定工数を 70% 削減
  • 根本原因分析の自動化:障害時に複数メトリクス・ログを自動相関分析。手動調査時間を短縮
  • DevOps Guru との統合:Application Insights がリソースグループを提供することで Guru がより精度の高い異常検知を実施

Application Insights が解決する課題

Application Insights は、レガシー・Windows ワークロード監視における次の問いに答えるための基盤です。

課題 Application Insights のソリューション
EC2 上の .NET / SQL Server アプリの監視設定が複雑 リソースグループ登録 → ML が IIS・SQL・Windows メトリクス自動設定。手作業ゼロ
IIS エラー率が増加したが原因は何か Application Insights が SQL Server ロック競合・メモリ不足・CPU 過負荷を自動相関分析
SQL Server のクエリが遅い → DB 側か アプリ側か不明確 SQL Server デッドロック・テーブルロック・I/O 待機を自動検出・可視化
Windows の イベントログから問題を探すのが手作業 ブルースクリーン・サービス停止・メモリ枯渇を自動検出・アラーム化
OOM (Out of Memory) エラーが本番で発生 メモリリーク検出→ OpsCenter アラート→ Systems Manager で自動ダンプ取得
SAP HANA / SAP NetWeaver 監視を最小限で実現 SAP 特有の ABAP エラー・リソース監視を自動設定
監視設定後のメンテナンスが負担 ML が継続的にメトリクス・ログを最適化。設定変更不要
DevOps Guru の異常検知精度を上げたい Application Insights が高品質なリソースグループ提供。Guru の学習精度向上

主な特徴

特徴 説明
ML による自動検出・設定 インストール済みのアプリ・ミドルウェアを自動検出。最適な監視設定を ML が自動生成
CloudFormation / リソースグループ統合 スタック単位でアプリを登録。スタック内のすべての EC2・RDS・ECS を統一管理
.NET / SQL Server / Windows 最適化 IIS エラー・SQL パフォーマンスカウンター・Windows イベントログの自動監視
OpsCenter との統合 問題(Problem)を OpsCenter に OpsItem として登録。修復ワークフローを自動実行
Systems Manager Automation との統合 障害自動検出 → Automation ドキュメント自動実行(ダンプ取得・ログ収集等)
DevOps Guru との連携 Application Insights のリソースグループ データを Guru が活用。異常検知精度向上
根本原因分析(RCA)の自動化 複数メトリクス・ログを相関分析。「SQL ロック競合がアプリレイテンシ増加の原因」と自動判定
SAP ワークロード対応 SAP HANA / SAP NetWeaver / SAP ASE・・・を自動検出・監視設定
アラーム・ダッシュボードの自動生成 監視対象アプリごとに CloudWatch ダッシュボード・アラーム自動作成
Application Signals との統合準備(2026) Application Signals SLO データに Application Insights メトリクスを自動フィード

アーキテクチャ

【図1】Application Insights の構成図:

graph TD
    CloudFormation["CloudFormation Stack<br/>(アプリケーションの定義)"]
    ResourceGroup["AWS Resource Group<br/>(リソースグループ)"]
    
    CloudFormation -->|登録| AppInsights["CloudWatch Application Insights<br/>(ML自動検出・設定)"]
    ResourceGroup -->|登録| AppInsights
    
    AppInsights -->|自動検出| IIS["IIS 検出<br/>Web Site / App Pool"]
    AppInsights -->|自動検出| SQLServer["SQL Server 検出<br/>Instances / Databases"]
    AppInsights -->|自動検出| Windows["Windows OS 検出<br/>Services / Events"]
    AppInsights -->|自動検出| SAP["SAP ワークロード検出"]
    
    AppInsights -->|自動設定| Metrics["CloudWatch Metrics<br/>(パフォーマンスカウンター)"]
    AppInsights -->|自動設定| Logs["CloudWatch Logs<br/>(ログフィルター)"]
    AppInsights -->|自動設定| Alarms["CloudWatch Alarms<br/>(自動アラーム)"]
    
    Metrics -->|異常検知| RCA["根本原因分析(RCA)<br/>(複数メトリクス相関分析)"]
    Logs -->|異常検知| RCA
    
    RCA -->|Problem 登録| OpsCenter["OpsCenter<br/>OpsItem 作成"]
    RCA -->|検出結果表示| Dashboard["Application Insights Dashboard"]
    
    OpsCenter -->|トリガー| Automation["Systems Manager Automation<br/>(修復ワークフロー)"]
    
    style CloudFormation fill:#c8e6c9
    style ResourceGroup fill:#c8e6c9
    style AppInsights fill:#fff3e0
    style IIS fill:#bbdefb
    style SQLServer fill:#bbdefb
    style Windows fill:#bbdefb
    style SAP fill:#bbdefb
    style Metrics fill:#e8f5e9
    style Logs fill:#e8f5e9
    style Alarms fill:#e8f5e9
    style RCA fill:#f8bbd0
    style OpsCenter fill:#fff9c4
    style Automation fill:#fff9c4
    style Dashboard fill:#e0f2f1

【図2】Application Insights が監視する階層:

graph LR
    App[".NET Application<br/>(例:ASP.NET MVC)"]
    IIS["Internet Information Services<br/>(Web Server)"]
    AppPool["Application Pool<br/>(Worker Process)"]
    SQL["SQL Server<br/>(Database)"]
    OS["Windows OS<br/>(System)"]
    
    App -->|Hosted by| IIS
    IIS -->|Uses| AppPool
    AppPool -->|Queries| SQL
    IIS -->|Runs on| OS
    
    AppInsights["Application Insights監視"]
    AppInsights -.->|計測| App
    AppInsights -.->|計測| IIS
    AppInsights -.->|計測| AppPool
    AppInsights -.->|計測| SQL
    AppInsights -.->|計測| OS
    
    style App fill:#e1f5ff
    style IIS fill:#c8e6c9
    style AppPool fill:#bbdefb
    style SQL fill:#ffe0b2
    style OS fill:#f8bbd0
    style AppInsights fill:#fff9c4

対応ワークロード

.NET Application

環境 対応 検出内容
IIS + ASP.NET App Pool エラー・リサイクル・メモリ使用率
.NET Core ✅(Linux対応準備中) 自動検出・メトリクス収集
WCF Services サービス エラー・レスポンスタイム
Windows Services サービス停止・再起動・メモリリーク

SQL Server

機能 対応 検出内容
Instances CPU・メモリ・Disk I/O・バックアップ
Databases テーブルロック・デッドロック・クエリ遅延
Agent Jobs ジョブ失敗・実行時間
Replication レプリケーションラグ・エラー

SAP Workloads

SAP 製品 対応 検出内容
SAP HANA Memory / CPU / Disk / Alert Monitor
SAP NetWeaver Dialog / Background Job / Gateway
SAP ASE ✅(Deprecated) 後継 HANA への移行推奨

Other Supported Workloads

  • Active Directory:Domain Controller / Replication
  • SharePoint:Farm Health / Search Index
  • Exchange Server:Mailbox / DAG Replication
  • Java:Spring Boot / Tomcat(2026年強化)
  • Ruby:Puma / Passenger

コアコンポーネント

1. Application(アプリケーション)

CloudFormation スタック / リソースグループを登録したもの。

登録方法:

# CloudFormation スタックを登録
aws application-insights create-application \
  --resource-group-name my-app-rg \
  --auto-config-enabled

# リソースグループから登録
aws application-insights create-application \
  --resource-group-name production-app-resources \
  --ops-center-enabled

2. Component(コンポーネント)

Application Insights が自動検出したアプリケーション要素。

自動検出されるコンポーネント:

Application (my-app)
├─ IIS (Windows/IIS)
│  ├─ Default Web Site (website)
│  └─ AppPool-Production (app_pool)
├─ SQL Server (Windows/SQL)
│  ├─ MSSQLSERVER (instance)
│  └─ ProductionDB (database)
├─ Windows (OS)
│  ├─ EC2Instance-1 (ec2_instance)
│  └─ System Services (windows_service)
└─ RDS (Database)
   └─ prod-mysql-01 (rds_db_instance)

3. Problem(問題)

Application Insights が自動検出した障害・異常。

{
  "ProblemId": "app-problem-001",
  "Title": "High CPU Utilization Detected",
  "Severity": "High",
  "RootCauseDescription": "SQL Server query inefficiency (full table scan)",
  "HealthChecks": [
    {
      "ComponentName": "SQL Server (MSSQLSERVER)",
      "HealthCheckName": "CPU Utilization",
      "Status": "Alarm"
    }
  ],
  "ImpactedEntities": [
    "IIS (Default Web Site)",
    "SQL Server (ProductionDB)"
  ],
  "LastObservedTime": "2026-04-27T12:00:00Z"
}

4. OpsItem(運用項目)

OpsCenter に自動登録される運用タスク。

OpsItem
├─ Title: "Application Insights Problem - High CPU"
├─ Description: "SQL Server query inefficiency (full table scan) detected"
├─ Priority: High
├─ Source: CloudWatch Application Insights
├─ Related Resources:
│  ├─ EC2: i-1234567890abcdef0
│  ├─ RDS: prod-mysql-01
│  └─ CloudWatch Alarm: arn:aws:cloudwatch:...
├─ Remediation Runbook: SSM Automation Document
└─ Status: Open (自動修復前)

主要ユースケース

1. EC2 上の .NET / SQL Server アプリの自動監視設定

背景: IIS・SQL Server・Windows の監視設定を手動で構成 → 工数大・設定ミス多発。

Application Insights の役割:

  • リソースグループ登録 → ML が自動検出・設定
  • IIS エラー率・SQL クエリ時間・メモリ使用率を自動監視

実装例:

# 1. CloudFormation スタック で EC2・SQL を定義
aws cloudformation create-stack \
  --stack-name my-app-prod \
  --template-body file://app-template.yaml \
  --tags "Application=my-app" "Environment=prod"

# 2. リソースグループ作成
aws resource-groups create-group \
  --name my-app-prod-rg \
  --resource-query '{
    "Type": "TAG_FILTERS_1_0",
    "Query": "tag:Application=my-app AND tag:Environment=prod"
  }'

# 3. Application Insights 登録
aws application-insights create-application \
  --resource-group-name my-app-prod-rg \
  --auto-config-enabled

# 4. Application Insights が自動検出・設定
# → IIS ワーカープロセス CPU・メモリ
# → SQL Server クエリ時間・ロック
# → Windows CPU・メモリ・Disk I/O
# → CloudWatch ダッシュボード自動生成

結果:

  • 監視設定工数:50 時間 → 2 時間(96% 削減)
  • ダッシュボード作成時間:20 時間 → 自動生成
  • 初期設定ミス:従来は 30-40% → ML で自動化で 0%

2. IIS エラー増加の根本原因自動分析

背景: IIS エラーレート が 5% に増加 → SQL・OS・メモリのどれが原因か?

Application Insights の役割:

  • IIS エラー + SQL ロック + メモリ圧迫を相関分析
  • 「SQL Server デッドロック が IIS エラーの原因」と自動判定

実装例:

時刻: 10:32 UTC
IIS エラー率: 2% → 5% に増加(アラーム)

Application Insights 根本原因分析:
  ├─ IIS (Default Web Site)
  │  └─ Errors: 500/hour → 1,250/hour (↑250%)
  ├─ SQL Server (ProductionDB)
  │  ├─ Deadlock Rate: 0.1/min → 8.5/min (↑8500%)
  │  ├─ CPU: 30% → 85%
  │  └─ Connection Waits: 50ms → 1,200ms
  ├─ Windows OS
  │  ├─ Memory: 65% → 92%(メモリ圧迫)
  │  └─ Disk I/O: 30% → 45%
  └─ 根本原因判定: SQL Server デッドロック
     - 原因: long-running transaction が複数テーブルロック
     - 対応: クエリ最適化 / インデックス追加
     - 自動修復可能: ❌(アプリケーション修正必要)

OpsCenter アラート:
  Title: "SQL Server Deadlock causing IIS errors"
  Severity: High
  Runbook: "SQL-Deadlock-Investigation"(Systems Manager Automation)
  → DBA に通知 / 自動ログ収集開始

3. メモリリーク検出と自動ダンプ取得

背景: .NET アプリ メモリが徐々に増加 → メモリリークか?

Application Insights の役割:

  • ワーカープロセス メモリ使用率の 継続的増加を検出
  • 検出時に自動で メモリダンプを取得・OpsCenter に通知

実装例:

時刻: 過去 7 日間
ワーカープロセス メモリ: 500MB → 1,500MB に増加(100% 増)

Application Insights 異常検知:
  メモリ増加傾向 を ML が検出
  → 根本原因:メモリリーク の可能性が高い
  
自動対応:
  1. CloudWatch Alarm 発火
  2. EventBridge ルール トリガー
  3. Systems Manager Automation 実行
     - Target: EC2 インスタンス
     - Action: プロセス メモリダンプ取得
     - Output: S3 にアップロード
  4. OpsCenter に OpsItem 作成
     - Title: "Potential Memory Leak Detected in AppPool"
     - Attachments: メモリダンプファイル
  5. DBA / デベロッパーに通知

手動デバッグ:
  → ダンプファイル を WinDbg で分析
  → メモリリークの原因を特定・修正

4. SQL Server クエリパフォーマンス監視

背景: チェックアウト画面が遅い → SQL クエリが原因か?IIS か?

Application Insights の役割:

  • SQL Server クエリ実行時間・ロック時間・I/O 待機を自動監視
  • IIS レスポンスタイム と SQL クエリ時間の相関分析

実装例:

ユーザー報告: 「チェックアウト画面のレスポンスが 5 秒かかる」

Application Insights 分析:
  IIS (ASP.NET)
  ├─ Response Time: 4,800ms
  │  ├─ Application Processing: 500ms(正常)
  │  └─ SQL Server Wait: 4,300ms(遅延!)
  
  SQL Server
  ├─ Orders テーブル SELECT
  │  ├─ Execution Time: 3,200ms
  │  ├─ Lock Wait Time: 800ms(他トランザクション ブロック中)
  │  └─ I/O Wait: 300ms
  └─ 根本原因: 「Order Status テーブル の UPDATE トランザクション」
     が 「Orders SELECT」 をロック中

対応:
  1. 実行中の UPDATE ブロック解除
  2. クエリ最適化:インデックス追加 / クエリ改写
  3. トランザクション管理:長時間ロック回避
  
改善後:
  - SQL Query Time: 3,200ms → 150ms
  - IIS Response Time: 4,800ms → 700ms(85% 改善)

5. Windows サービス停止の自動復旧

背景: バックグラウンドサービスが停止 → 手動で再起動していた。

Application Insights の役割:

  • Windows サービス停止を自動検出
  • OpsCenter → Systems Manager Automation で自動復旧

実装例:

検出:
  時刻 03:15 UTC
  Windows Service "CustomWorkerService" が停止

Application Insights 自動対応:
  1. Health Check: Service Status = Stopped(アラーム)
  2. OpsCenter OpsItem 自動作成
     - Title: "CustomWorkerService stopped"
     - Severity: High
  3. EventBridge ルール トリガー
  4. Systems Manager Automation ドキュメント 実行
     - Automation: Start-Windows-Service
     - Parameter: ServiceName=CustomWorkerService
     - Target: EC2 インスタンス
  5. サービス自動再起動
  6. Health Check: Service Status = Running(復旧)
  7. OpsItem 自動クローズ

結果:
  - 自動検出: 1 分
  - 自動復旧: 1-2 分
  - MTTR 削減: 従来 30 分 → 2 分(93% 削減)

6. SAP 環境の自動監視設定

背景: SAP HANA / SAP NetWeaver は複雑な監視が必要 → 構成困難。

Application Insights の役割:

  • SAP コンポーネントを自動検出
  • SAP 特有のメトリクス(バックアップ・ワークプロセス)を自動監視

実装例:

# SAP CloudFormation スタック登録
aws application-insights create-application \
  --resource-group-name sap-prod-rg \
  --auto-config-enabled

# Application Insights が自動検出
# → SAP HANA Instance
#   ├─ Memory Usage: 85%
#   ├─ CPU: 65%
#   ├─ Disk I/O: 45%
#   └─ Alert Monitor: 0 alerts(正常)
# → SAP NetWeaver
#   ├─ Dialog Process CPU
#   ├─ Background Job Status
#   ├─ Gateway Connections
#   └─ Work Process Queue
# → Backup Monitor
#   ├─ Last Backup Time
#   ├─ Backup Duration
#   └─ Backup Status

# CloudWatch ダッシュボード 自動生成
# → SAP 監視の ベストプラクティス適用

設定・操作の具体例

AWS CLI での Application 作成

# リソースグループ作成
aws resource-groups create-group \
  --name production-app-rg \
  --resource-query '{
    "Type": "TAG_FILTERS_1_0",
    "Query": "tag:Application=prod-app"
  }'

# Application Insights アプリケーション作成
aws application-insights create-application \
  --resource-group-name production-app-rg \
  --auto-config-enabled \
  --ops-center-enabled \
  --cwe-monitor-enabled \
  --tags "Team=Operations" "CostCenter=12345"

# アプリケーション詳細表示
aws application-insights describe-application \
  --resource-group-name production-app-rg

# コンポーネント一覧表示
aws application-insights list-components \
  --resource-group-name production-app-rg

# 問題(Problem)一覧表示
aws application-insights list-problems \
  --resource-group-name production-app-rg \
  --start-time 2026-04-20T00:00:00Z

CloudFormation での構築

AWSTemplateFormatVersion: '2010-09-09'
Description: 'Application Insights Setup for .NET Application'

Resources:
  # EC2 インスタンス(IIS + .NET)
  WebServerInstance:
    Type: AWS::EC2::Instance
    Properties:
      ImageId: ami-0c55b159cbfafe1f0  # Windows Server 2022 with IIS
      InstanceType: t3.large
      Tags:
        - Key: Application
          Value: prod-app
        - Key: Environment
          Value: production

  # RDS SQL Server
  SQLServerDatabase:
    Type: AWS::RDS::DBInstance
    Properties:
      Engine: sqlserver-se
      DBInstanceIdentifier: prod-sqlserver
      DBInstanceClass: db.t3.large
      Tags:
        - Key: Application
          Value: prod-app
        - Key: Environment
          Value: production

  # CloudWatch Agent IAM Role
  ApplicationInsightsRole:
    Type: AWS::IAM::Role
    Properties:
      AssumeRolePolicyDocument:
        Version: '2012-10-17'
        Statement:
          - Effect: Allow
            Principal:
              Service:
                - ec2.amazonaws.com
                - application-insights.amazonaws.com
            Action: 'sts:AssumeRole'
      ManagedPolicyArns:
        - arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy
        - arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore

  InstanceProfile:
    Type: AWS::IAM::InstanceProfile
    Properties:
      Roles:
        - !Ref ApplicationInsightsRole

  # Systems Manager Automation ドキュメント(サービス再起動)
  RestartServiceAutomation:
    Type: AWS::SSM::Document
    Properties:
      DocumentType: Automation
      Content:
        schemaVersion: '0.3'
        description: Restart Windows Service
        parameters:
          ServiceName:
            type: String
            description: Windows Service Name
          InstanceId:
            type: String
            description: EC2 Instance ID
        mainSteps:
          - name: RestartService
            action: 'aws:runCommand'
            inputs:
              InstanceIds:
                - '{{ InstanceId }}'
              DocumentName: AWS-RunPowerShellScript
              Parameters:
                command:
                  - 'Restart-Service -Name "{{ ServiceName }}" -Force'

Outputs:
  WebServerInstanceId:
    Value: !Ref WebServerInstance
    Description: EC2 Instance ID

  SQLServerEndpoint:
    Value: !GetAtt SQLServerDatabase.Endpoint.Address
    Description: RDS SQL Server Endpoint

Terraform での構築

# EC2 インスタンス
resource "aws_instance" "web_server" {
  ami           = data.aws_ami.windows_server.id
  instance_type = "t3.large"
  iam_instance_profile = aws_iam_instance_profile.app_insights.name

  tags = {
    Name        = "prod-web-server"
    Application = "prod-app"
    Environment = "production"
  }
}

# RDS SQL Server
resource "aws_db_instance" "sql_server" {
  identifier     = "prod-sqlserver"
  engine         = "sqlserver-se"
  engine_version = "2022.04.01"
  instance_class = "db.t3.large"

  tags = {
    Application = "prod-app"
    Environment = "production"
  }
}

# Application Insights アプリケーション
resource "aws_appinsights_app" "main" {
  resource_group_name = aws_resourcegroups_group.app.name
  auto_config_enabled = true
  ops_center_enabled  = true
  cwe_monitor_enabled = true

  tags = {
    Team = "Operations"
  }
}

# リソースグループ
resource "aws_resourcegroups_group" "app" {
  name = "prod-app-rg"

  resource_query {
    query = jsonencode({
      ResourceTypeFilters = [
        "AWS::EC2::Instance",
        "AWS::RDS::DBInstance"
      ]
      TagFilters = [
        {
          Key    = "Application"
          Values = ["prod-app"]
        }
      ]
    })
  }
}

類似サービス比較

特性 Application Insights Datadog APM New Relic Dynatrace AppDynamics
.NET 対応 ✅ 最適化 ✅ 対応 ✅ 対応 ✅ 対応 ✅ 対応
SQL Server 特化 ✅ ネイティブ △ 限定 △ 限定 △ 限定 △ 限定
Windows 対応 ✅ 最適化 △ 対応 △ 対応 △ 対応 △ 対応
ML 根本原因分析 ✅ SageMaker ✅ 独自 AI ✅ 独自 AI ✅ AI Engine ✅ MDA
OpsCenter 統合 ✅ ネイティブ ❌ なし ❌ なし ❌ なし ❌ なし
AWS 統合 ✅ 深い △ インテグレーション △ インテグレーション △ インテグレーション △ インテグレーション
SAP 対応 ✅ HANA・NetWeaver △ 基本的対応 △ 基本的対応 ✅ 対応 △ 対応
コスト(AWS) ⭐⭐⭐⭐⭐ ⭐⭐ ⭐⭐ ⭐⭐ ⭐⭐
推奨用途 AWS .NET Multi-Cloud Multi-Cloud Enterprise Enterprise

ベストプラクティス

✅ 推奨される実装パターン

1. CloudFormation スタック単位での登録

# アプリケーション CloudFormation スタック定義
# タグで Application 識別
aws cloudformation create-stack \
  --stack-name my-app-prod \
  --tags "Key=Application,Value=my-app" "Key=Environment,Value=prod" \
  --template-body file://template.yaml

# リソースグループで自動グループ化
aws resource-groups create-group \
  --name my-app-prod-rg \
  --resource-query '{
    "Type": "TAG_FILTERS_1_0",
    "Query": "tag:Application=my-app AND tag:Environment=prod"
  }'

# Application Insights 登録(自動監視開始)
aws application-insights create-application \
  --resource-group-name my-app-prod-rg \
  --auto-config-enabled

2. OpsCenter / Systems Manager Automation との統合

import boto3

appinsights = boto3.client('application-insights')
ssm = boto3.client('ssm')

# Application Insights から Problem 取得
response = appinsights.list_problems(
    ResourceGroupName='my-app-prod-rg',
    StartTime='2026-04-20T00:00:00Z'
)

for problem in response['ProblemList']:
    # 自動修復ワークフロー実行
    if 'Service Stopped' in problem['Title']:
        ssm.start_automation_execution(
            DocumentName='RestartWindowsService',
            Parameters={
                'ServiceName': [problem['ServiceName']],
                'InstanceId': [problem['InstanceId']]
            }
        )
        print(f"Auto-remediation initiated: {problem['Title']}")

3. CloudWatch ダッシュボード + アラーム統合

{
  "widgets": [
    {
      "type": "metric",
      "properties": {
        "metrics": [
          ["AWS/ApplicationInsights", "IISErrors", {"stat": "Sum"}],
          [".", "SQLServerLocks", {"stat": "Average"}],
          [".", "WindowsCPU", {"stat": "Average"}]
        ],
        "period": 300,
        "stat": "Average",
        "region": "ap-northeast-1",
        "title": "Application Insights - Production App"
      }
    }
  ]
}

トラブルシューティング

問題 原因 解決方法
コンポーネント自動検出されない CloudWatch Agent 未インストール / 権限不足 SSM Session Manager で Agent 確認、IAM ロール確認
Problem が表示されない 監視期間不足 / データ量少ない 24 時間以上待機、ダッシュボード確認
OpsItem 自動作成されない ops-center-enabled = false 有効化後に Application 再作成

まとめ

Amazon CloudWatch Application Insights は、.NET・SQL Server・SAP・Windows ワークロードの 監視設定を ML で自動化するマネージド監視サービス です。CloudFormation スタック / リソースグループ登録 → ML 自動検出・設定 → 根本原因分析・OpsCenter 統合で、複雑な Windows アプリケーション監視を 70% 削減した工数で実現します。

特に EC2 上の IIS / ASP.NET・SQL Server の既存ワークロード、SAP HANA・SAP NetWeaver などのレガシーシステムで有効。2026 年の Application Signals 統合により、.NET / Windows ワークロードも SLO 目標達成率の可視化が可能になります。


参考文献

AWS 公式


最終更新:2026-04-27 バージョン:v2.0