目次

AWS Systems Manager for SAP 完全ガイド v2.0

SAP HANA・S/4HANA 運用管理・自動化プラットフォーム


概要

AWS Systems Manager for SAP は、AWS 上で稼働する SAP HANA データベースと SAP NetWeaver・SAP S/4HANA アプリケーションの運用管理を一元化・自動化するサービス です。SAP ワークロードの自動検出・パッチ適用・バックアップ・ヘルス監視・パフォーマンス分析をシームレスに実行し、SAP システムの可用性・セキュリティ・効率性を向上させます。

初心者向けメモ:AWS Systems Manager for SAP は「SAP HANA・S/4HANA の運用タスク(バックアップ・パッチ・ヘルスチェック)を AWS コンソールから一元管理するサービス」です。複雑な SAP 運用の手作業を自動化し、ダウンタイム削減・リスク低減を実現します。


Systems Manager for SAP が解決する課題

課題 従来の方法 Systems Manager for SAP での解決
複数の SAP システム管理が散在 SAP Cockpit・SAP Solutions Manager・HANA Studio を個別に操作。設定が一元化されていない AWS Systems Manager コンソールで全 SAP システムを一元管理。SAP Solution Manager との連携
SAP HANA バックアップの複雑さ テープ・NFS への手動バックアップ。容量管理・保存期間管理が煩雑 AWS Backint Agent で S3 への自動バックアップ。Lifecycle ポリシーで自動アーカイブ
パッチ適用の時間・リスク 手動パッチ適用。ダウンタイム・テスト期間が長い。多数システムへの適用が負担 Systems Manager Patch Manager で自動・一括適用。Automation ドキュメントで停止→パッチ→起動を自動化
SAP インベントリ・ディスカバリーの困難 Spreadsheet で手動管理。SID・バージョン・コンポーネント情報がバラバラ Systems Manager Inventory で自動検出・一元記録
SAP パフォーマンス・ヘルス監視が限定的 HANA Cockpit・OS メトリクスを個別確認。統合ダッシュボードなし Systems Manager と CloudWatch 統合で SAP メトリクス・OS メトリクスを統合監視
SAP Disaster Recovery・フェイルオーバーの手作業 手動で複数ステップ実行。エラー・漏れが発生しやすい Systems Manager Automation で DR フローを完全自動化・テスト実施
AWS と SAP ネイティブツールの統合困難 SAP Solutions Manager・HANA Studio・AWS コンソールを並行使用 Systems Manager for SAP が AWS ネイティブ・SAP ネイティブ双方を統合

主な特徴

特徴 説明
SAP ランドスケープの自動検出 AWS アカウント内の SAP HANA・NetWeaver・S/4HANA を自動検出・登録。SID・バージョン・コンポーネント情報を一元記録
AWS Backup との統合 SAP HANA バックアップを AWS Backup で一元管理。バックアップポリシー・保存期間・リストア操作をコンソールから実施
Backint Agent for SAP HANA S3 への効率的なバックアップ。テープ不要・容量制限なし・Lifecycle で自動アーカイブ可能
SAP パッチ管理の自動化 Patch Manager で SAP HANA・NetWeaver パッチを自動検出・適用。Automation で停止→パッチ→起動をオーケストレーション
CloudWatch 統合 SAP HANA のメトリクス・ログ・イベントを CloudWatch に自動送信。統合ダッシュボード・アラーム・Logs Insights 分析が可能
ヘルス・パフォーマンス監視 SAP メモリ使用率・ディスク I/O・テーブルスペース・レプリケーション遅延をリアルタイム監視
複数 SAP System の一括運用 Patch Policy で組織全体(Organizations)の複数 SAP システムへ統一ポリシー適用
AWS Launch Wizard for SAP との統合 SAP HANA・S/4HANA のデプロイから運用まで End-to-End 自動化
SAP Solution Manager との連携 Systems Manager for SAP が SAP Solutions Manager とネイティブ統合。SAP ネイティブツール活用も可能
コンプライアンス・監査 CloudTrail・AWS Config で全操作を記録。SAP バックアップ・パッチ適用状態をコンプライアンス監査

アーキテクチャ

graph TB
    subgraph "SAP Systems on EC2"
        HANA["SAP HANA Database<br/>(primary・replica)"]
        NetWeaver["SAP NetWeaver<br/>(Application Server)"]
        S4HANA["SAP S/4HANA<br/>(ERP・CRM・SCC)"]
        GW["SAP Gateway"]
    end
    
    subgraph "AWS Systems Manager for SAP"
        Discovery["Automated Discovery<br/>(SID・バージョン・コンポーネント)"]
        Inventory["SAP Inventory<br/>(インスタンス・DB・アプリケーション)"]
        Health["Health Monitoring<br/>(メモリ・CPU・ディスク・レプリケーション)"]
        Patch["Patch Management<br/>(SAP パッチ検出・適用)"]
    end
    
    subgraph "Backup & Recovery"
        BackintAgent["Backint Agent<br/>for SAP HANA"]
        S3["S3<br/>(バックアップストレージ)"]
        AWSBackup["AWS Backup<br/>(バックアップ管理)"]
    end
    
    subgraph "Automation & Orchestration"
        SSMAutomation["Systems Manager Automation<br/>(Runbook:停止・パッチ・起動)"]
        EventBridge["EventBridge<br/>(スケジュール・イベントトリガ)"]
        Lambda["Lambda<br/>(カスタムロジック)"]
    end
    
    subgraph "Monitoring & Analytics"
        CloudWatch["CloudWatch<br/>(メトリクス・ログ・ダッシュボード)"]
        Logs["CloudWatch Logs Insights<br/>(SAP ログ分析)"]
        SNS["SNS<br/>(アラート・通知)"]
    end
    
    subgraph "Integration"
        SAPSolMan["SAP Solutions Manager<br/>(SAP ネイティブ連携)"]
        SAPLaunchWizard["AWS Launch Wizard for SAP<br/>(デプロイメント・最適化推奨)"]
    end
    
    HANA --> Discovery
    NetWeaver --> Discovery
    S4HANA --> Discovery
    GW --> Discovery
    
    Discovery --> Inventory
    Inventory --> Health
    
    HANA --> BackintAgent
    BackintAgent --> S3
    S3 --> AWSBackup
    
    Health --> CloudWatch
    Patch --> SSMAutomation
    SSMAutomation --> EventBridge
    EventBridge --> Lambda
    
    CloudWatch --> Logs
    CloudWatch --> SNS
    
    Inventory --> SAPSolMan
    Health --> SAPLaunchWizard
    
    style Discovery fill:#ff9999
    style Inventory fill:#99ccff
    style Health fill:#99ff99
    style AWSBackup fill:#ffcc99

コアコンポーネント

1. SAP ランドスケープ自動検出(Automated Discovery)

AWS アカウント・複数リージョン内の SAP システムを自動検出・登録。

検出対象:

SAP HANA Database:
  - Instance Name(HANA01 等)
  - System ID(HDB・PRD・DEV等)
  - Version(2.0・1.0)
  - Mode(Single/Multi-node、Stand-alone/Replicated)
  - HA 構成(System Replication Status)

SAP NetWeaver / S/4HANA:
  - System ID(ERP・CRM・BW等)
  - Instance Number(00・01・10等)
  - Kernel Version
  - Release(7.50・7.52等)
  - Gateway Instance
  - Dialog Instance

Components:
  - Batch Server
  - Web Dispatcher
  - Router
  - Message Server

自動検出の仕組み:

  1. Systems Manager Agent(EC2 インスタンスにインストール)がローカル検出
  2. SAP レジストリ・サービスデータから SID・バージョン読み取り
  3. CloudWatch Logs に検出情報を送信
  4. Systems Manager がメタデータを統一保存

CLI 例:

# SAP ランドスケープ検出の開始
aws ssm-sap register-application \
  --application-id my-erp-system \
  --application-type ERP \
  --instances i-1234567890abcdef0 \
  --sap-instance-number "00" \
  --sid "ERP" \
  --environment "Production"

# 検出された SAP アプリケーション一覧
aws ssm-sap list-applications \
  --filters Name=ApplicationType,Values=HANA

2. SAP HANA バックアップ(Backint Agent)

AWS Backint Agent for SAP HANA を使い、HANA バックアップを S3 に効率的に保存。

従来のバックアップ方法との比較:

テープ:
  - 物理メディア管理・保管コスト
  - リストア遅延・サイズ制限
  - 災害時の復旧困難

NFS:
  - ネットワーク帯域がボトルネック
  - ストレージ管理・冗長性構築が複雑

AWS Backint Agent(推奨):
  - S3 への直接ストリーミングアップロード
  - 無制限容量・並行アップロード
  - Lifecycle で自動アーカイブ
  - 異なるリージョンへの自動レプリケーション
  - きわめて低いリストア遅延(数分)

Backint Agent セットアップ:

# 1. HANA ホストに Agent をインストール
sudo wget https://d1uj6peq63e8mj.cloudfront.net/backint-agent-1.2.1.tar.gz
sudo tar -xzf backint-agent-*.tar.gz
sudo ./install.sh

# 2. IAM ロール作成(HANA EC2 に attached)
aws iam attach-role-policy \
  --role-name hana-instance-role \
  --policy-arn arn:aws:iam::aws:policy/AmazonS3FullAccess

# 3. HANA バックアップ設定
# HANA Studio / DBA Cockpit で Backint Agent を Catalog に登録

# 4. 自動バックアップスケジュール設定
# HANA Lifecycle Manager または Systems Manager で
aws ssm send-command \
  --document-name "AWSSAP-SAPHANABackup" \
  --targets '[{"Key": "tag:SAPSystem", "Values": ["HDB"]}]' \
  --parameters '{
    "BackupPrefix": ["COMPLETE"],
    "BackupType": ["FULL"]
  }'

S3 Lifecycle ポリシー:

{
  "Rules": [
    {
      "Id": "HanaBackupLifecycle",
      "Prefix": "hana-backup/",
      "Status": "Enabled",
      "Transitions": [
        {
          "Days": 30,
          "StorageClass": "STANDARD_IA"
        },
        {
          "Days": 90,
          "StorageClass": "GLACIER"
        }
      ],
      "NoncurrentVersionTransitions": [
        {
          "NoncurrentDays": 90,
          "StorageClass": "GLACIER"
        }
      ],
      "Expiration": {
        "Days": 2555  // 7年保持
      }
    }
  ]
}

3. SAP パッチ管理(Patch Manager)

Systems Manager Patch Manager が SAP HANA・NetWeaver・S/4HANA パッチを自動検出・適用。

パッチタイプ:

SAP HANA:
  - Revision Patch(バグ修正)
  - Support Package(新機能・問題修正)
  - Kernel Patch(Oracle DB)

SAP NetWeaver / S/4HANA:
  - Kernel Patch
  - Abap/Java Stack Patch
  - Solution Manager Patch
  - SAP GUI Patch

Operating System:
  - Linux Kernel Patch
  - Security Updates
  - Driver Updates

Patch Manager 実行例:

# 1. SAP Patch Baseline 作成
aws ssm create-patch-baseline \
  --name SAP-HANA-Patch-Baseline \
  --operating-system-family AMAZON_LINUX_2 \
  --approval-rules 'ComplianceLevel=HIGH,ApproveAfterDays=14' \
  --patch-groups "sap-prod"

# 2. Patch Compliance スキャン実行
aws ssm send-command \
  --document-name "AWS-RunPatchBaseline" \
  --parameters "Operation=Scan" \
  --targets '[{"Key": "tag:SAPSystem", "Values": ["HDB"]}]'

# 3. パッチコンプライアンス確認
aws ssm describe-instance-patch-states \
  --instance-id i-1234567890abcdef0

# 4. Patch をメンテナンスウィンドウで自動適用
aws ssm create-maintenance-window \
  --name SAP-Patch-Window \
  --schedule "cron(0 2 ? * SUN)" \
  --duration 4 \
  --cutoff 1 \
  --allow-unassociated-targets

Automation Runbook(パッチ適用の自動化):

{
  "schemaVersion": "0.3",
  "description": "SAP HANA Patch Application Runbook",
  "parameters": {
    "InstanceId": {
      "type": "String",
      "description": "SAP HANA EC2 Instance ID"
    }
  },
  "mainSteps": [
    {
      "name": "StopHANA",
      "action": "aws:executeScript",
      "inputs": {
        "Runtime": "python3.8",
        "Handler": "stop_hana",
        "Script": "def stop_hana(events, context):\n  # HANA停止(backup mode含む)\n  # hdbsql -u SYSTEM -p {password} 'BACKUP DATA CLOSE'\n  # hdbnameserver --stop\n  return {'status': 'stopped'}"
      }
    },
    {
      "name": "ApplyPatches",
      "action": "aws:executeAwsApi",
      "inputs": {
        "Service": "ssm",
        "Api": "SendCommand",
        "DocumentName": "AWS-RunPatchBaseline",
        "InstanceIds": ["{{ InstanceId }}"],
        "Parameters": {
          "Operation": ["Install"]
        }
      }
    },
    {
      "name": "RestartHANA",
      "action": "aws:executeScript",
      "inputs": {
        "Runtime": "python3.8",
        "Handler": "start_hana",
        "Script": "def start_hana(events, context):\n  # HANA起動(HDB Start)\n  # hdbnameserver --start\n  # hdbsql 接続確認\n  return {'status': 'started'}"
      }
    },
    {
      "name": "ValidationCheck",
      "action": "aws:executeScript",
      "inputs": {
        "Runtime": "python3.8",
        "Handler": "validate_health",
        "Script": "def validate_health(events, context):\n  # HANA が正常に起動したことを確認\n  # M_SYSTEM_OVERVIEW.ACTIVE_STATUS == 'YES'\n  return {'validation': 'passed'}"
      }
    }
  ]
}

4. SAP Inventory(在庫管理)

SAP システムの詳細な構成情報を自動収集・記録。

収集情報:

Database Information:
  - HANA Version
  - Database Size
  - Tablespacce Usage
  - Backup Status
  - Replication Status
  - Database Parameter

Application Server:
  - Instance Name / Number
  - Kernel Version
  - Patch Level
  - Dialog Process Count
  - Work Process Status

Network & Storage:
  - IP Address
  - Hostname
  - Mounted Filesystems
  - NIC Configuration
  - S3 Bucket Configuration(Backint)

Compliance & Security:
  - HANA Security Rules
  - User Privileges
  - Encryption Status
  - Certificate Information

5. Operations Insight(運用インサイト)

SAP パフォーマンス・ヘルス情報をダッシュボードに統合表示。

監視メトリクス:

Database Performance:
  - Data Volume Memory Usage
  - Memory Pressure Index
  - SQL Execution Time
  - Lock Time
  - Backup Completion Time

Application Server:
  - Dialog Response Time
  - Update Task Time
  - RFC Processing Time
  - Batch Job Duration

System Health:
  - Instance Availability
  - Replication Lag(DR 構成)
  - Disk Space
  - Network Latency

主要ユースケース

1. オンプレミス SAP HANA の AWS への段階的移行

Step 1: パラレル運用
  ├─ オンプレ SAP HANA(既存)
  └─ AWS SAP HANA(新規)
     ↓(Systems Manager for SAP で統一管理)
     両システムの Performance・Availability を監視

Step 2: フェーズドカットオーバー
  ├─ オンプレ:Read-Only に変更
  ├─ AWS HANA:System Replication からフェーズアウト
  └─ アプリケーション接続を AWS に切り替え

Step 3: オンプレ廃止
  └─ Systems Manager で AWS SAP のみ運用

2. マルチ SAP System の統一パッチ管理

3 ヶ月ごとのパッチ適用サイクル:

前提:
  - SAP HANA(ERP・BW・CRM:合計 5 システム)
  - SAP NetWeaver(異なるリージョン)
  - OS Kernel(Amazon Linux 2)

従来:各システムを手動確認・パッチ適用・テスト

Systems Manager for SAP:
  → Patch Policy で全 5 システムに自動適用ポリシー設定
  → Automation で停止→パッチ→起動を自動化
  → CloudWatch で全システムのコンプライアンス状態を一元監視
  → 報告書を自動生成(監査対応)

3. SAP HANA Disaster Recovery(DR)自動化

Primary Site(ap-northeast-1):
  ├─ SAP HANA Primary
  ├─ S/4HANA Application Server
  └─ Backint Agent → S3 Backup

DR Site(us-east-1):
  ├─ SAP HANA Secondary(Replication mode)
  └─ Application Server(Standby)

Failover Automation(Systems Manager):
  1. 定期的な DR テスト(Systems Manager Automation)
  2. Primary 障害検知(CloudWatch Alarms)
  3. 自動フェーバー(Replication → Promote to Primary)
  4. アプリケーション接続切り替え(Route 53 weighted routing 更新)
  5. 通知(SNS → Email・Slack)

4. SAP Solutions Manager との統合

SAP Solutions Manager(オンプレ・クラウド):
  ├─ SAP Technical Monitoring Cockpit
  ├─ Solution Manager Diagnostics Agent
  └─ Early Watch Alert

↓ Systems Manager for SAP が統合連携

AWS Systems Manager:
  ├─ Inventory(SAP ランドスケープ)
  ├─ Patch Management
  ├─ Backup Management
  ├─ Health Monitoring
  └─ Compliance & Audit Trail

メリット:
  - Single Pane of Glass
  - AWS ネイティブ・SAP ネイティブツールの重複排除
  - Cost Optimization(AWS-native サービス活用)

設定・操作の具体例

CloudFormation:SAP Systems Manager セットアップ

AWSTemplateFormatVersion: '2010-09-09'
Description: AWS Systems Manager for SAP Setup

Resources:
  # IAM ロール:Systems Manager Agent 実行用
  SSMAgentRole:
    Type: AWS::IAM::Role
    Properties:
      AssumeRolePolicyDocument:
        Version: '2012-10-17'
        Statement:
          - Effect: Allow
            Principal:
              Service: ssm.amazonaws.com
            Action: sts:AssumeRole
      ManagedPolicyArns:
        - arn:aws:iam::aws:policy/service-role/AmazonSSMPatchAssociation
        - arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy
      Policies:
        - PolicyName: S3BackintAccess
          PolicyDocument:
            Version: '2012-10-17'
            Statement:
              - Effect: Allow
                Action:
                  - s3:*
                Resource:
                  - arn:aws:s3:::sap-backup-bucket
                  - arn:aws:s3:::sap-backup-bucket/*

  # CloudWatch ロググループ
  SAPLogsGroup:
    Type: AWS::Logs::LogGroup
    Properties:
      LogGroupName: /aws/ssm-sap/hana
      RetentionInDays: 90

  # CloudWatch ダッシュボード
  SAPDashboard:
    Type: AWS::CloudWatch::Dashboard
    Properties:
      DashboardName: SAP-HANA-Health
      DashboardBody: |
        {
          "widgets": [
            {
              "type": "metric",
              "properties": {
                "metrics": [
                  ["AWS/SAP", "HANAMemoryUsage", {"stat": "Average"}],
                  ["AWS/SAP", "HANABackupDuration", {"stat": "Maximum"}],
                  ["AWS/SAP", "ReplicationLag", {"stat": "Maximum"}],
                  ["AWS/SAP", "DiskUsage", {"stat": "Average"}]
                ],
                "period": 300,
                "stat": "Average",
                "title": "SAP HANA Health Metrics"
              }
            }
          ]
        }

  # SNS トピック(アラート通知)
  SAPAlertTopic:
    Type: AWS::SNS::Topic
    Properties:
      TopicName: sap-alerts
      DisplayName: SAP System Alerts

  # CloudWatch Alarm(HANA メモリ使用率)
  HANAMemoryAlarm:
    Type: AWS::CloudWatch::Alarm
    Properties:
      AlarmName: HANA-HighMemoryUsage
      MetricName: HANAMemoryUsage
      Namespace: AWS/SAP
      Statistic: Average
      Period: 300
      EvaluationPeriods: 2
      Threshold: 85
      ComparisonOperator: GreaterThanThreshold
      AlarmActions:
        - !Ref SAPAlertTopic

  # Patch Baseline
  SAPPatchBaseline:
    Type: AWS::SSM::PatchBaseline
    Properties:
      Name: SAP-HANA-Patch-Baseline
      OperatingSystemFamily: AMAZON_LINUX_2
      ApprovalRules:
        PatchRules:
          - PatchFilterGroup:
              PatchFilters:
                - Key: CLASSIFICATION
                  Values:
                    - Security
                    - Bugfix
            ApproveAfterDays: 14
      DefaultBaseline: false

Outputs:
  SSMAgentRoleArn:
    Value: !GetAtt SSMAgentRole.Arn
  DashboardURL:
    Value: !Sub "https://console.aws.amazon.com/cloudwatch/home?region=${AWS::Region}#dashboards:name=SAP-HANA-Health"

Terraform:Infrastructure as Code

terraform {
  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = "~> 5.0"
    }
  }
}

provider "aws" {
  region = "ap-northeast-1"
}

# IAM ロール
resource "aws_iam_role" "ssm_sap_role" {
  name = "ssm-sap-role"

  assume_role_policy = jsonencode({
    Version = "2012-10-17"
    Statement = [
      {
        Action = "sts:AssumeRole"
        Effect = "Allow"
        Principal = {
          Service = "ssm.amazonaws.com"
        }
      }
    ]
  })
}

# S3 バケット(バックアップ用)
resource "aws_s3_bucket" "sap_backup" {
  bucket = "sap-backup-bucket-${data.aws_caller_identity.current.account_id}"
}

resource "aws_s3_bucket_lifecycle_configuration" "backup_lifecycle" {
  bucket = aws_s3_bucket.sap_backup.id

  rule {
    id     = "hana-backup-lifecycle"
    status = "Enabled"

    transition {
      days          = 30
      storage_class = "STANDARD_IA"
    }

    transition {
      days          = 90
      storage_class = "GLACIER"
    }

    expiration {
      days = 2555  # 7年保持
    }
  }
}

# CloudWatch ロググループ
resource "aws_cloudwatch_log_group" "sap_logs" {
  name              = "/aws/ssm-sap/hana"
  retention_in_days = 90
}

# CloudWatch ダッシュボード
resource "aws_cloudwatch_dashboard" "sap_health" {
  dashboard_name = "SAP-HANA-Health-Dashboard"

  dashboard_body = jsonencode({
    widgets = [
      {
        type = "metric"
        properties = {
          metrics = [
            ["AWS/SAP", "HANAMemoryUsage", { stat = "Average" }],
            ["AWS/SAP", "HANABackupDuration", { stat = "Maximum" }],
            ["AWS/SAP", "ReplicationLag", { stat = "Maximum" }],
            ["AWS/SAP", "DiskUsage", { stat = "Average" }]
          ]
          period = 300
          stat   = "Average"
          title  = "SAP HANA Health Metrics"
        }
      }
    ]
  })
}

# Patch Baseline
resource "aws_ssm_patch_baseline" "sap_patch_baseline" {
  name             = "SAP-HANA-Patch-Baseline"
  operating_system = "AMAZON_LINUX_2"
  approval_rule {
    patch_filter {
      key    = "CLASSIFICATION"
      values = ["Security", "Bugfix"]
    }
    approve_after_days = 14
  }
}

data "aws_caller_identity" "current" {}

output "backup_bucket" {
  value = aws_s3_bucket.sap_backup.bucket
}

output "logs_group" {
  value = aws_cloudwatch_log_group.sap_logs.name
}

CloudWatch 統合・監視

import boto3
import json
from datetime import datetime, timedelta

cloudwatch = boto3.client('cloudwatch')
ssm_sap = boto3.client('ssm-sap')
logs = boto3.client('logs')

def publish_sap_metrics():
    """SAP システムのメトリクスを CloudWatch に送信"""
    
    # SAP HANA メトリクス取得(hdbsql または SAP SDK経由)
    hana_metrics = {
        'MemoryUsagePercent': 78.5,
        'DiskUsagePercent': 45.2,
        'CPU': 62.0,
        'BackupLastCompletionTime': 120,  # 分
        'ReplicationLagTime': 5  # 秒
    }
    
    # CloudWatch に送信
    cloudwatch.put_metric_data(
        Namespace='AWS/SAP',
        MetricData=[
            {
                'MetricName': 'HANAMemoryUsage',
                'Value': hana_metrics['MemoryUsagePercent'],
                'Unit': 'Percent',
                'Timestamp': datetime.utcnow(),
                'Dimensions': [
                    {'Name': 'SystemID', 'Value': 'PRD'},
                    {'Name': 'InstanceNumber', 'Value': '00'}
                ]
            },
            {
                'MetricName': 'HANADiskUsage',
                'Value': hana_metrics['DiskUsagePercent'],
                'Unit': 'Percent',
                'Timestamp': datetime.utcnow(),
                'Dimensions': [
                    {'Name': 'SystemID', 'Value': 'PRD'}
                ]
            },
            {
                'MetricName': 'ReplicationLag',
                'Value': hana_metrics['ReplicationLagTime'],
                'Unit': 'Seconds',
                'Timestamp': datetime.utcnow(),
                'Dimensions': [
                    {'Name': 'SystemID', 'Value': 'PRD'}
                ]
            }
        ]
    )

def analyze_sap_logs():
    """CloudWatch Logs Insights で SAP ログを分析"""
    
    query = """
    fields @timestamp, @message, @log
    | filter @message like /ERROR|WARNING/
    | stats count() as ErrorCount by @log
    """
    
    # CloudWatch Logs Insights クエリ実行
    response = logs.start_query(
        logGroupName='/aws/ssm-sap/hana',
        startTime=int((datetime.utcnow() - timedelta(hours=1)).timestamp()),
        endTime=int(datetime.utcnow().timestamp()),
        queryString=query
    )
    
    return response['queryId']

def create_sap_alarms():
    """SAP システム用の CloudWatch アラーム作成"""
    
    alarms = [
        {
            'AlarmName': 'HANA-HighMemoryUsage',
            'MetricName': 'HANAMemoryUsage',
            'Threshold': 85,
            'ComparisonOperator': 'GreaterThanThreshold'
        },
        {
            'AlarmName': 'HANA-HighDiskUsage',
            'MetricName': 'HANADiskUsage',
            'Threshold': 80,
            'ComparisonOperator': 'GreaterThanThreshold'
        },
        {
            'AlarmName': 'HANA-ReplicationLagTooHigh',
            'MetricName': 'ReplicationLag',
            'Threshold': 30,  # 30秒以上
            'ComparisonOperator': 'GreaterThanThreshold'
        }
    ]
    
    for alarm in alarms:
        cloudwatch.put_metric_alarm(
            AlarmName=alarm['AlarmName'],
            MetricName=alarm['MetricName'],
            Namespace='AWS/SAP',
            Statistic='Average',
            Period=300,
            EvaluationPeriods=2,
            Threshold=alarm['Threshold'],
            ComparisonOperator=alarm['ComparisonOperator'],
            AlarmActions=['arn:aws:sns:ap-northeast-1:123456789012:sap-alerts']
        )

類似サービス比較表

特徴 AWS Systems Manager for SAP SAP Solutions Manager SAP Cloud ALM Azure Center for SAP GCP SAP 対応
SAP 自動検出 ✅ フル自動 △ 手動設定 ~ ~
HANA バックアップ自動化 ✅ Backint + S3 △ Network Backup ~ ~
パッチ自動適用 ✅ Automation △ Solution Manager Patch ~ ~
クラウド統合度 ✅ AWS ネイティブ ~ ✅ SAP Cloud ✅ Azure 統合
複数 SAP System 一元管理 ✅ Organizations 対応 ~
CloudWatch/Monitoring ✅ 深い統合 ✅ SAP Fiori ダッシュボード ✅ Azure Monitor
コスト AWS 従量課金 SAP Enterprise SAP Cloud Azure 従量課金 GCP 従量課金
マルチクラウド対応 △(AWS中心)

ベストプラクティス

✅ 推奨

  1. Backint Agent で S3 バックアップを一元化

    • テープ・NFS 廃止
    • S3 Lifecycle で自動アーカイブ
    • 異なるリージョンへの複製設定
  2. Automation で運用タスクを完全自動化

    • 停止→パッチ→起動の一連を Runbook 化
    • スケジュール実行・エラー時の自動リトライ
    • ロールバック機能で安全性確保
  3. Systems Manager Inventory で SAP 構成を最新に保つ

    • 自動検出で SID・バージョン・コンポーネント把握
    • タグで環境・オーナーを分類
    • Compliance 監査に活用
  4. CloudWatch ダッシュボード・アラームで統合監視

    • HANA メモリ・CPU・ディスク使用率
    • Replication Lag(DR 構成)
    • バックアップ完了時間
    • エラーログ解析(CloudWatch Logs Insights)
  5. Organizations + Service Control Policy で統一ポリシー適用

    • 複数 Account の SAP System へ Patch Policy 一括適用
    • Backup Retention Policy を一元化
    • コンプライアンス要件の標準化

❌ アンチパターン

  1. テープ・NFS バックアップの継続

    • 管理コスト増加
    • リストア遅延
    • クラウドメリット不活用
  2. パッチ適用を手動実施

    • 対象漏れ・ダウンタイム増大
    • Automation で自動化すべき
  3. Inventory なしで SAP System を管理

    • SID・バージョン・配置が不明確
    • Patch Manager の適用対象を正確に把握できない
  4. CloudWatch 監視なし

    • リアルタイムのヘルス状態が見えない
    • 問題検知が遅延
  5. SAP Solutions Manager と Systems Manager の重複

    • ツール管理の複雑化
    • 統合して Single Pane of Glass へ

2025-2026 最新動向

2025年

  • AI-driven Health Prediction: SAP メトリクスを機械学習で分析・異常検知・故障予測
  • Enhanced HANA Replication Monitoring: System Replication の詳細監視・自動フェイルオーバー
  • S/4HANA 2025 対応: 新バージョンへの準備支援・アップグレード自動化
  • Cost Optimization: RI・Savings Plans との連携・コスト可視化強化

2026年

  • Multi-Region・Multi-Cloud対応: AWS + Azure + GCP の SAP System を統一管理(検討中)
  • Quantum-Ready Security: 量子耐性暗号への準備・移行支援
  • Edge SAP: エッジロケーションの SAP System 対応(HANA Edge)
  • Autonomous Operations: AI による完全自動運用(アラート対応・リソース自動スケーリング等)

学習リソース

AWS 公式

SAP 公式


実装チェックリスト

  • [ ] SAP Systems Manager for SAP エージェント導入・有効化
  • [ ] S3 バックアップバケット作成・Lifecycle Policy 設定
  • [ ] Backint Agent for SAP HANA インストール・設定
  • [ ] SAP Inventory で自動検出確認
  • [ ] Patch Baseline 作成・Patch Compliance スキャン実行
  • [ ] Automation Runbook(停止→パッチ→起動)作成
  • [ ] CloudWatch ダッシュボード・アラーム構築
  • [ ] CloudWatch Logs Insights クエリ定義
  • [ ] AWS Backup・リストア テスト実施
  • [ ] Organizations + Service Control Policy で統一ポリシー適用

まとめ

AWS Systems Manager for SAP は、AWS 上の SAP HANA・S/4HANA の運用管理を一元化・自動化するサービス です。

SAP ランドスケープの自動検出・バックアップ・パッチ・ヘルス監視・パフォーマンス分析をシームレスに実行し、複雑な SAP 運用の手作業を大幅削減します。

Backint Agent で S3 への効率的なバックアップ、Automation で停止→パッチ→起動の自動化、CloudWatch との統合で統合監視を実現。

AWS + SAP の統合を最大化し、エンタープライズ SAP ワークロードの可用性・セキュリティ・効率性を飛躍的に向上させる戦略的サービスです。


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