AWS License Manager

目次

初心者から実務者向けの包括的解説

AWS License Manager は、ソフトウェアライセンス(Microsoft・Oracle・SAP 等)の使用量を追跡・管理し、ライセンス違反を防ぐ無料マネージドサービス であり、BYOL(Bring Your Own License)での AWS 移行時にコンプライアンスを維持します。EC2 インスタンス起動時にライセンス上限をチェックし、超過起動を自動ブロック。組織全体(複数アカウント・複数リージョン)のライセンス使用状況を一元管理し、定期的な監査レポート生成を自動化します。このページでは、ライセンス構成・ルール強制・マルチアカウント管理・近年の動向を体系的に解説します。

このページの目的

このページでは以下を対象としています:

  • 初心者向け: License Manager とは何か、なぜ必要かを学びたい方
  • IT 管理者向け: ライセンス数管理・BYOL 移行・コンプライアンス遵守
  • 財務・調達向け: ライセンスコスト最適化・過剰購入削減
  • 監査・コンプライアンス向け: 監査レポート生成・証拠保全
  • DevOps・インフラ向け: AWS Organizations 統合・ルール強制の自動化

2026 年の License Manager エコシステム

  • AI 駆動ライセンス最適化: 機械学習による使用パターン分析・推奨
  • Managed Entitlements 拡大: AWS Marketplace ISV との統合強化
  • Linux サブスクリプション統合: Red Hat・Ubuntu 等の自動追跡
  • Cross-Account 可視化: Organizations 全体のリアルタイム監視
  • 自動コンプライアンスレポート: ベンダー監査への即時対応

概要

初心者向けメモ: License Manager は「ソフトウェアライセンスの在庫管理システム」です。従来、IT 管理者が Excel スプレッドシートでライセンス数を管理していましたが、AWS 移行で EC2 インスタンスが自由に起動・削除されるため、ライセンス数が把握できずに超過・違反のリスクが高まります。License Manager は 自動でライセンス使用量を追跡し、超過起動をブロック することで、この課題を解決します。完全無料で、EC2・RDS に統合されています。

AWS License Manager は以下を提供するライセンス管理プラットフォームです:

機能 説明
License Configuration ライセンス数・計数単位(コア・ソケット等)を定義
Rule Enforcement 上限チェック・起動ブロック・警告の自動実行
Multi-Account Management Organizations 全体の使用量一元把握
Inventory Tracking Systems Manager と統合した自動検出
Audit Reports ベンダー監査対応のレポート生成
AWS Marketplace Integration ISV ライセンスの自動配布・追跡

License Manager が解決する課題

1. BYOL 移行でのライセンス超過リスク

課題

オンプレ環境:
  - SQL Server Enterprise: 100 コア分ライセンス購入済み
  - ライセンス数が固定

AWS 移行:
  - EC2 インスタンスを自由に起動可能
  - m5.24xlarge(96 vCPU)を 10 台起動 → 960 コア消費
  - 100 コア分のライセンスでは足りない → ライセンス違反
  - ベンダー監査で罰金

License Manager の解決

License Configuration で上限を設定:
  SQL Server Enterprise: 最大 100 コア

EC2 起動時に自動チェック:
  インスタンス vCPU 数がライセンス上限を超える場合:
    ✅ Hard Limit: 起動をブロック(エラー返却)
    ⚠️ Soft Limit: 警告のみ(起動は進行、管理者に通知)

2. マルチアカウント環境での使用量把握の困難

課題

複数アカウント環境:
  アカウント A: SQL Server 50 コア消費
  アカウント B: SQL Server 30 コア消費
  アカウント C: SQL Server 20 コア消費
  ────────────────────────────
  合計: 100 コア

各アカウントで個別追跡している場合:
  ❌ 全社的な使用量把握が困難
  ❌ ライセンス購入判断ができない
  ❌ 監査時に統計データ作成が手動

License Manager の解決

License Asset Groups(中央管理):
  - Organizations 全体の使用量をリアルタイム集計
  - アカウント・リージョン別の内訳表示
  - 月次・四半期・年次レポート自動生成
  - ダッシュボードで一目瞭然

3. ベンダーライセンス監査への対応負荷

課題

Microsoft・Oracle の年 1 回の定期監査:
  - ライセンス使用実績を提示する必要
  - Excel による手動集計が必要
  - 数週間かかる
  - エラーのリスク

License Manager の解決

Audit Reports 機能:
  - 監査用 CSV・PDF レポートを自動生成
  - CloudWatch Metrics でグラフ化
  - 監査期間中の毎日の使用状況を記録
  - ワンクリックで提出可能

4. ライセンス数と実際の使用状況の乖離

課題

  • 実際の例:
  • SQL Server ライセンス 100 コア分を購入
  • 但し実際に使用しているのは 60 コア
  • 40 コア分(年数千万円)が無駄

License Manager の解決

使用実績の可視化:
  - 過去 12 ヶ月の使用パターン
  - ピーク時・通常時の違い
  - 季節変動の検出
  - 最適なライセンス数を提案

主な特徴

1. 複数のカウント方式に対応

vCPU Counting:
  EC2 インスタンス vCPU 数でカウント
  用途: SQL Server・Oracle(多くの DB ライセンス)

Core Counting:
  EC2 物理コア数でカウント
  用途: Windows Server・SAP

Socket Counting:
  サーバーソケット数でカウント
  用途: Oracle(一部)

Named User:
  ユーザー数でカウント
  用途: SAP・IBM・クラウドアプリ

Instance:
  インスタンス数でカウント
  用途: アンチウイルス等のライセンス

Custom:
  ベンダー定義のカウント方式

2. Hard Limit vs Soft Limit

Hard Limit:
  - EC2 起動時にライセンス数を超える場合は起動を完全ブロック
  - スポット購入の失敗
  - CloudWatch アラーム送信
  用途: コンプライアンス厳格な環境(金融・医療)

Soft Limit:
  - 警告のみで起動は進行
  - CloudWatch アラーム送信
  - 管理者は手動で対応(例:ライセンス追加購入)
  用途: 開発・テスト環境(柔軟性重視)

3. License Tracking(自動追跡)

Systems Manager Inventory と統合:

オンプレミス サーバー:
  ├─ Systems Manager SSM Agent をインストール
  └─ License Manager が SQL Server インストール状況を検出

AWS EC2 インスタンス:
  ├─ Systems Manager が自動接続
  └─ License Manager が OS・アプリケーション検出

結果:
  ✅ インスタンス起動時に自動追跡
  ✅ インストール状況リアルタイム更新

4. Organizations 統合

単一アカウント管理:
  ├─ 自身のアカウントのライセンス設定のみ

Organizations(推奨):
  ├─ 管理アカウント(マスター)が全メンバーアカウントを監視
  ├─ リソースタグで部門別・プロジェクト別に分類
  └─ 一元的なダッシュボード・レポート生成

アーキテクチャ

License Manager 構成

┌─────────────────────────────────────────────────────────────┐
│ License Manager Console / API                               │
│ (管理画面・設定)                                            │
└────────────────┬────────────────────────────────────────────┘
                 │
    ┌────────────┼──────────────────┐
    │            │                  │
    ▼            ▼                  ▼
┌──────────┐ ┌──────────┐  ┌──────────────┐
│License   │ │License   │  │License Asset │
│Config    │ │Rules     │  │Groups        │
│(設定)    │ │(強制)    │  │(集計)        │
└────┬─────┘ └────┬─────┘  └──────┬───────┘
     │            │                │
     └────────────┼────────────────┘
                  │
    ┌─────────────┼─────────────┐
    │             │             │
    ▼             ▼             ▼
┌─────────┐  ┌──────────┐  ┌──────────────┐
│EC2      │  │RDS       │  │Systems Mgr   │
│Instances│  │Databases │  │Inventory     │
└─────────┘  └──────────┘  └──────────────┘
    │             │             │
    └─────────────┴─────────────┘
          │
   ┌──────▼──────┐
   │CloudWatch   │
   │Metrics/Logs │
   └─────────────┘

License Configuration と Rules のフロー

ステップ 1: License Configuration を作成
  License Type: SQL Server
  Counting Unit: vCPU
  Count: 100
  Hard Limit: 100
  Soft Limit: 80(警告は 80 で開始)

ステップ 2: EC2 インスタンス起動要求
  インスタンスタイプ: m5.4xlarge(16 vCPU)

ステップ 3: License Manager が Rules をチェック
  現在の使用量: 70 vCPU
  新規起動による増加: 16 vCPU
  合計: 86 vCPU

ステップ 4: Limit チェック
  Soft Limit(80 vCPU)を超過 → CloudWatch アラーム送信
  Hard Limit(100 vCPU)には未達 → 起動許可

ステップ 5: 起動処理
  インスタンス起動成功
  CloudWatch に「ライセンス警告」を記録

ステップ 6: 管理者対応
  ダッシュボードでアラーム確認
  ライセンス追加購入を検討

ライセンスの種類

ライセンス種別 説明 計数単位 用途例
Microsoft Windows Server サーバー OS ライセンス Core / Socket EC2 OS
Microsoft SQL Server RDBMS ライセンス vCPU / Core RDS SQL Server
Oracle Database RDBMS ライセンス vCPU / Named User RDS Oracle
SAP ERP ライセンス SAPS(処理能力単位) EC2 SAP インスタンス
IBM ミドルウェア等 PVU(プロセッサ単位) EC2 IBM ソフトウェア
Adobe デスクトップアプリ Named User WorkSpaces Adobe
Linux(RHEL・Ubuntu) Linux サブスクリプション vCPU / Instance EC2 Linux
Custom ベンダー定義 カスタム その他

License Configuration(ライセンス設定)

ライセンス設定の作成

# SQL Server Enterprise: 100 vCPU
aws license-manager create-license-configuration \
  --name "SQL-Server-Enterprise-100vCPU" \
  --license-counting-type vCPU \
  --license-count 100 \
  --license-count-hard-limit \
  --license-rules "#minimumCores=4" \
  --description "SQL Server Enterprise with 100 vCPU limit" \
  --tags Key=Application,Value=Database Key=Team,Value=Platform

# Oracle Database: 50 Named User
aws license-manager create-license-configuration \
  --name "Oracle-Database-50-Users" \
  --license-counting-type NAMED_USER \
  --license-count 50 \
  --license-count-hard-limit \
  --description "Oracle Database with 50 named user limit"

# Windows Server: Core 単位(100 コア)
aws license-manager create-license-configuration \
  --name "Windows-Server-Core-100" \
  --license-counting-type Core \
  --license-count 100 \
  --license-count-hard-limit=false \  # Soft Limit
  --description "Windows Server with soft limit at 100 cores"

ライセンス設定の確認

# 全ライセンス設定を一覧
aws license-manager list-license-configurations \
  --query 'LicenseConfigurations[*].[Name,LicenseCountingType,LicenseCount,Status]' \
  --output table

# 特定の設定を詳細表示
aws license-manager get-license-configuration \
  --license-configuration-arn arn:aws:license-manager:ap-northeast-1:123456789012:license-configuration:lc-abc123 \
  --query '[Name, LicenseCountingType, LicenseCount, LicenseCountHardLimit, AssociatedInstances]' \
  --output json

License Rules(ルール強制)

Rules の種類

ルール1: #minimumCores
  説明: インスタンスが最小コア数を満たす場合のみカウント
  例: #minimumCores=4
        4 コア未満のインスタンスはライセンスカウント対象外

ルール2: #allowedTenancy
  説明: 実行テナンシーを制限
  例: #allowedTenancy=Default,Dedicated
        Default(共有)Dedicated テナンシーのみカウント

ルール3: #maximumCores
  説明: 最大コア数を超えるインスタンスは除外
  例: #maximumCores=16
        16 コア以上のインスタンスはカウント対象外

ルール4: #allowedInstanceTypes
  説明: 特定インスタンスタイプのみをカウント
  例: #allowedInstanceTypes=m5.*,m6.*
        m5 ファミリー・m6 ファミリーのみカウント

Rules の適用例

# ルール付きライセンス設定
aws license-manager create-license-configuration \
  --name "SQL-Server-with-Rules" \
  --license-counting-type vCPU \
  --license-count 100 \
  --license-count-hard-limit \
  --license-rules \
    "#minimumCores=2" \
    "#maximumCores=32" \
    "#allowedInstanceTypes=m5.*,m6.*,r5.*,r6.*" \
  --description "SQL Server with specific instance rules"

# ルール確認
aws license-manager get-license-configuration \
  --license-configuration-arn arn:aws:license-manager:ap-northeast-1:...:license-configuration/lc-abc123 \
  --query 'LicenseConfiguration.LicenseRules'

主要ユースケース

1. SQL Server BYOL で 100 コア制限

# ステップ 1: License Configuration を作成
aws license-manager create-license-configuration \
  --name "SQLServer-BYOL-100vCPU" \
  --license-counting-type vCPU \
  --license-count 100 \
  --license-count-hard-limit

# ステップ 2: EC2 インスタンスに適用
aws ec2 create-tags \
  --resources i-1234567890abcdef0 \
  --tags Key=LicenseConfiguration,Value=arn:aws:license-manager:ap-northeast-1:123456789012:license-configuration/lc-abc123

# ステップ 3: インスタンス起動時にチェック
# EC2 起動時に License Manager が自動的にルール確認
# 100 vCPU を超える場合は起動をブロック

2. Oracle Database の監査対応

# ステップ 1: 現在の使用状況をレポート
aws license-manager list-associations-for-license-configuration \
  --license-configuration-arn arn:aws:license-manager:ap-northeast-1:...:license-configuration/lc-oracle \
  --output table

# ステップ 2: CloudWatch で使用トレンド確認
aws cloudwatch get-metric-statistics \
  --namespace AWS/LicenseManager \
  --metric-name LicenseUtilization \
  --dimensions Name=LicenseConfigurationName,Value=Oracle-Database-50-Users \
  --start-time 2026-01-01T00:00:00Z \
  --end-time 2026-04-27T00:00:00Z \
  --period 86400 \
  --statistics Average,Maximum

# ステップ 3: 監査レポートを生成
# License Manager コンソール → Reports → Generate Report

3. Windows Server コア制限(開発環境)

# ステップ 1: Soft Limit でライセンス設定
aws license-manager create-license-configuration \
  --name "Windows-Server-Dev-Soft-50cores" \
  --license-counting-type Core \
  --license-count 50 \
  --license-count-hard-limit=false  # Soft Limit
  --description "Development environment with soft limit"

# ステップ 2: インスタンス起動
aws ec2 run-instances \
  --image-id ami-12345678 \
  --instance-type m5.4xlarge \
  --tag-specifications 'ResourceType=instance,Tags=[{Key=LicenseConfiguration,Value=arn:aws:license-manager:ap-northeast-1:123456789012:license-configuration/lc-windows-soft}]'

# ステップ 3: 上限超過時の警告
# 60 コア使用時 → Soft Limit(50 コア)を超過
# CloudWatch アラームで管理者に通知(起動は継続)

4. マルチアカウント環境での集計

# License Asset Groups で複数アカウントを統合管理

# アカウント A・B・C の SQL Server 使用量を集計
arn:aws:license-manager:ap-northeast-1:111111111111:license-configuration/lc-sql-a
arn:aws:license-manager:ap-northeast-1:222222222222:license-configuration/lc-sql-b
arn:aws:license-manager:ap-northeast-1:333333333333:license-configuration/lc-sql-c

# License Asset Group で一元管理
aws license-manager create-license-configuration \
  --name "SQL-Server-All-Accounts" \
  --license-counting-type vCPU \
  --license-count 300 \  # 全アカウント合計
  --description "Consolidated SQL Server for all accounts"

Self-Managed License(自己管理)

個別アカウントでのライセンス管理

# シングルアカウント管理

# 例1: SQL Server 100 vCPU
aws license-manager create-license-configuration \
  --name "SQL-Server-Single-Account" \
  --license-counting-type vCPU \
  --license-count 100 \
  --license-count-hard-limit

# 例2: Oracle 50 Named User
aws license-manager create-license-configuration \
  --name "Oracle-Single-Account" \
  --license-counting-type NAMED_USER \
  --license-count 50 \
  --license-count-hard-limit

# 使用状況確認
aws license-manager get-license-configuration \
  --license-configuration-arn arn:aws:license-manager:ap-northeast-1:123456789012:license-configuration/lc-sql

# 出力:
# {
# "Name": "SQL-Server-Single-Account",
# "LicenseCountingType": "vCPU",
# "LicenseCount": 100,
# "ConsumedLicenses": 68,
# "LicenseCountHardLimit": true,
# "AssociatedInstances": 15
# }

Granted Licenses(付与ライセンス)

AWS Marketplace・AWS Data Exchange のライセンス追跡

# AWS Marketplace で購入したライセンスを追跡

# 例: SaaS ライセンス(Datadog・New Relic 等)
aws license-manager list-received-licenses \
  --query 'Licenses[*].[LicenseName, Issuer, ExpirationDate, ConsumptionConfiguration]' \
  --output table

# ライセンスの使用状況確認
aws license-manager get-license \
  --license-arn arn:aws:license-manager:ap-northeast-1:...:license/... \
  --query '[LicenseName, Status, ReceivedMetadata]'

License Asset Groups(資産グループ)

マルチアカウント・マルチリージョン統合管理

# Organizations に基づいた License Asset Group を作成

# 手順1: License Asset Group を定義
aws license-manager create-license-configuration \
  --name "SQL-Server-Corporate-Pool" \
  --license-counting-type vCPU \
  --license-count 500 \  # 全アカウント合計ライセンス
  --license-count-hard-limit \
  --description "Consolidated SQL Server for entire organization"

# 手順2: リソースタグでグループ化
# Organizations 管理アカウント で:
aws organizations create-account \
  --email dev-account@example.com \
  --account-name "Development"

aws organizations tag-resource \
  --resource-id r-abcd1234 \
  --tags Key=LicenseGroup,Value=SQLServer-Pool

# 手順3: ダッシュボードで全体を監視
# License Manager Console → License configurations → SQL-Server-Corporate-Pool
# → 500 vCPU の合計に対して各アカウントの使用量を表示

Managed Entitlements(マネージド付与)

ISV・Marketplace ライセンス配布

# AWS Marketplace ISV がライセンスを配布

# ISV 側:
aws license-manager create-grant \
  --client-token "unique-token-123" \
  --grant-name "Customer-ABC-License" \
  --license-arn "arn:aws:license-manager:ap-northeast-1:333333333333:license/lic-123" \
  --principals "arn:aws:iam::123456789012:root"  # 顧客アカウント

# 顧客側:
aws license-manager accept-grant \
  --grant-arn "arn:aws:license-manager:ap-northeast-1:333333333333:grant/..." \
  --query 'GrantArn'

# 顧客側で追跡
aws license-manager list-received-grants \
  --query 'Grants[*].[GrantName, Status, ExpirationDate]'

設定・操作の具体例

AWS CLI での実装

# 例1: SQL Server ライセンス設定(複数ルール付き)
CERT_ARN=$(aws license-manager create-license-configuration \
  --name "SQL-Server-Enterprise-100vCPU" \
  --license-counting-type vCPU \
  --license-count 100 \
  --license-count-hard-limit \
  --license-rules \
    "#minimumCores=2" \
    "#allowedInstanceTypes=m5.*,m6.*,r5.*,r6.*" \
  --tags \
    Key=Application,Value=Database \
    Key=Team,Value=Data \
    Key=CostCenter,Value=Engineering \
  --query 'LicenseConfigurationArn' \
  --output text)

echo "Created License Configuration: ${CERT_ARN}"

# 例2: ライセンス設定一覧(フィルタ付き)
aws license-manager list-license-configurations \
  --filters Name=LicenseCountingType,Values=vCPU \
  --query 'LicenseConfigurations[*].[Name, LicenseCount, ConsumedLicenses, Status]' \
  --output table

# 例3: ライセンス使用状況の確認
aws license-manager get-license-configuration \
  --license-configuration-arn ${CERT_ARN} \
  --query '{Name: Name, Counting: LicenseCountingType, Total: LicenseCount, Used: ConsumedLicenses, Remaining: calculate(LicenseCount - ConsumedLicenses)}'

# 例4: インスタンスとライセンスの関連付け
aws ec2 create-tags \
  --resources i-0123456789abcdef0 i-0123456789abcdef1 \
  --tags Key=LicenseConfiguration,Value=${CERT_ARN}

# 例5: ライセンス設定の削除(未使用時のみ)
aws license-manager delete-license-configuration \
  --license-configuration-arn ${CERT_ARN}

CloudFormation での実装

AWSTemplateFormatVersion: '2010-09-09'
Description: 'License Manager Configuration for SQL Server'

Resources:
  SQLServerLicense:
    Type: AWS::LicenseManager::License
    Properties:
      Issuer:
        Name: AWS
      LicenseMetadata:
        - Name: LicenseType
          Value: SQL Server Enterprise
      LicenseName: SQL-Server-Enterprise-100vCPU
      ProductName: SQL Server
      Validity:
        BeginDate: '2026-01-01T00:00:00Z'
        EndDate: '2027-12-31T23:59:59Z'

  LicenseConfiguration:
    Type: AWS::LicenseManager::LicenseConfiguration
    Properties:
      LicenseCountingType: vCPU
      LicenseCount: 100
      LicenseCountHardLimit: true
      LicenseRules:
        - '#minimumCores=2'
        - '#allowedInstanceTypes=m5.*,m6.*,r5.*'
      Name: SQL-Server-Enterprise-100vCPU
      Description: SQL Server Enterprise with 100 vCPU limit
      Tags:
        - Key: Application
          Value: Database
        - Key: Team
          Value: Platform

Outputs:
  LicenseConfigurationArn:
    Description: License Configuration ARN
    Value: !GetAtt LicenseConfiguration.LicenseConfigurationArn
    Export:
      Name: !Sub '${AWS::StackName}-LicenseConfig-ARN'

Terraform での実装

# AWS License Manager を Terraform で管理

resource "aws_licensemanager_license_configuration" "sql_server" {
  name                          = "SQL-Server-Enterprise-100vCPU"
  license_counting_type         = "vCPU"
  license_count                 = 100
  license_count_hard_limit      = true
  description                   = "SQL Server Enterprise with 100 vCPU limit"

  license_rules = [
    "#minimumCores=2",
    "#allowedInstanceTypes=m5.*,m6.*,r5.*,r6.*"
  ]

  tags = {
    Application  = "Database"
    Team         = "Platform"
    CostCenter   = "Engineering"
  }
}

resource "aws_licensemanager_license_configuration" "oracle" {
  name                          = "Oracle-Database-50-Users"
  license_counting_type         = "NAMED_USER"
  license_count                 = 50
  license_count_hard_limit      = true
  description                   = "Oracle Database with 50 named user limit"

  tags = {
    Application  = "Database"
    Vendor       = "Oracle"
  }
}

# EC2 インスタンスにライセンス設定を関連付け
resource "aws_licensemanager_association" "instance" {
  license_configuration_arn = aws_licensemanager_license_configuration.sql_server.arn
  resource_arn              = aws_instance.example.arn
}

AWS Marketplace 統合

SaaS ライセンスの自動追跡

AWS Marketplace ISV がライセンスを販売

例: Datadog・New Relic・Jira・ServiceNow

フロー:

1. ISV がマーケットプレイスで販売
2. 顧客が購入
3. License Manager が自動検出
4. 使用量を追跡・レポート
5. 費用を AWS Bill に統合

ユースケース:

- SaaS ユーザーライセンス管理
- 従量課金の監視
- 年間契約 vs 月間契約の最適化

Organizations 統合

マネージドアカウント全体のライセンス管理

# Organizations 管理アカウントで実行

# 手順1: License Manager を有効化(全アカウント)
aws organizations register-delegated-administrator \
  --account-id 123456789012 \
  --service-principal license-manager.amazonaws.com

# 手順2: License Asset Group を作成(中央管理)
aws license-manager create-license-configuration \
  --name "Corporate-SQL-Server-License-Pool" \
  --license-counting-type vCPU \
  --license-count 1000 \  # 全アカウント合計
  --license-count-hard-limit

# 手順3: Organizations 内の全アカウントを監視
aws organizations list-accounts \
  --query 'Accounts[*].[Name,Id]' \
  --output table

# 各アカウントのライセンス使用状況を表示
aws license-manager list-license-configurations \
  --query 'LicenseConfigurations[*].[Name, ConsumedLicenses, LicenseCount]' \
  --output table

Systems Manager Inventory との連携

インストール状況の自動検出

# Systems Manager Inventory を有効化

# オンプレミス・クラウドサーバー上の Systems Manager SSM Agent
aws ssm describe-instance-information \
  --query 'InstanceInformationList[*].[InstanceId, PingStatus, PlatformType]' \
  --output table

# インベントリのスキャン
aws ssm list-inventory-entries \
  --instance-id i-1234567890abcdef0 \
  --type-name AWS:Application \
  --query 'Entries[?Name==`SQL Server*`]'

# License Manager が自動でライセンス消費を計算
# SQL Server インストール検出 → ライセンスカウント

ライセンス監査・レポート

監査レポート生成

# 方法1: AWS Console(推奨)
# License Manager → Reports → Generate Report
# 形式: CSV / PDF
# 期間: カスタマイズ可能(1 ヶ月〜 12 ヶ月)

# 方法2: AWS CLI
aws license-manager list-license-configurations \
  --query 'LicenseConfigurations[*]' \
  --output json > license-audit-$(date +%Y%m%d).json

# CloudWatch Metrics を CSV にエクスポート
aws cloudwatch get-metric-statistics \
  --namespace AWS/LicenseManager \
  --metric-name LicenseUtilization \
  --dimensions Name=LicenseConfigurationName,Value=SQL-Server-Enterprise \
  --start-time 2026-01-01T00:00:00Z \
  --end-time 2026-04-27T00:00:00Z \
  --period 86400 \
  --statistics Average,Maximum \
  --query 'Datapoints[*].[Timestamp, Maximum]' \
  --output table

コンプライアンス対応

ベンダー監査への対応

Microsoft・Oracle の定期監査に対応

License Manager の役割:

1. 過去 12 ヶ月の使用実績を記録
2. ピーク時の使用量をレポート
3. ライセンス超過がないことを証明
4. CloudTrail で操作ログを保全

手順:

① 監査通知を受け取る
  └─ Microsoft Compliance Center から監査要求メール

② License Manager でレポート生成
  aws license-manager list-license-configurations \
    --query 'LicenseConfigurations[*]' > audit-report.json

③ CloudWatch グラフをダウンロード
  License Manager Console → Reports → View Metrics

④ 監査人に提出
  └─ レポート + グラフ + CloudTrail ログ

トラブルシューティング

問題 原因 解決策
License Configuration が見つからない 別リージョンで作成 リージョン確認・切替
インスタンス起動がブロックされ続ける タグの関連付けが不正 タグを確認・再設定
使用量が更新されない Systems Manager Inventory が無効 SSM Agent をインストール・有効化
監査レポート生成に失敗 IAM 権限不足 license-manager:* の権限を追加
Organizations 統合ができない 管理アカウントで実行していない 管理アカウントで register-delegated-administrator 実行

類似サービス比較

観点 AWS License Manager Flexera Snow Software ServiceNow ITAM
コスト 無料 $5k-$20k/年 $10k-$50k/年 $10k+/年
運用 マネージド(AWS 統合) クラウド・オンプレ クラウド・オンプレ SaaS
自動追跡 ✅(EC2・RDS) ✅(より広い) ✅(より広い)
AWS 統合 ✅ ネイティブ ⚠️ 限定的 ⚠️ 限定的 ⚠️ API
Organizations ⚠️ ⚠️ ⚠️
カスタマイズ 基本的 高度 高度 高度
監査レポート

ベストプラクティス

✅ 推奨事項

1. Hard Limit を本番環境で設定
   理由: ライセンス違反を完全防止

2. Soft Limit を開発・テスト環境で設定
   理由: 開発の柔軟性を損なわない

3. License Rules で詳細に条件設定
   理由: 正確なライセンス計数

4. CloudWatch アラームで監視
   理由: 上限超過を早期検知

5. Organizations で一元管理
   理由: マルチアカウント環境での統一

6. 定期的なレポート生成と監査
   理由: ベンダー監査に備える

7. Systems Manager Inventory と統合
   理由: 自動追跡でヒューマンエラー排除

❌ アンチパターン

1. Hard Limit を使用しない
    ライセンス違反リスク

2. Rules を設定しない
    不適切なインスタンスをカウント

3. Organizations 統合を無視(シングルアカウント管理続行)
    マルチアカウント管理が困難

4. 監査レポートを生成しない
    ベンダー監査に対応できない

5. Systems Manager Inventory を無視
    手動追跡による誤り

近年の動向

1. AI 駆動ライセンス最適化

AWS は AI で使用パターンを分析

機能:
  - 機械学習による使用予測
  - 最適なライセンス数推奨
  - 季節変動の自動検出
  - コスト削減機会を提案

実装時期: 2025 年後半

2. Managed Entitlements 拡大

AWS Marketplace ISV との統合強化

目標:
  - SaaS ライセンスの自動配布
  - ユーザー単位での付与管理
  - チャーンの自動化

3. Linux サブスクリプション統合

  • Red Hat・Ubuntu・SUSE 等を自動追跡
  • 実装状況: 試験段階

学習リソース

公式ドキュメント

ベンダーリソース


実装例・チェックリスト

チェックリスト

## License Manager 導入前チェック

### 要件確認
- [ ] BYOL ライセンスがある(SQL Server・Oracle 等)
- [ ] マルチアカウント環境か単一アカウントか確認
- [ ] ベンダー監査の頻度を確認
- [ ] 現在のライセンス数を把握

### 設計
- [ ] ライセンスタイプ(Microsoft・Oracle・SAP 等)を確認
- [ ] 計数単位(vCPU・Core・Named User)を確認
- [ ] Hard Limit vs Soft Limit の判断
- [ ] ルール設定(#minimumCores 等)の決定

### 実装
- [ ] License Configuration を作成
- [ ] License Rules を設定
- [ ] EC2 インスタンスに タグを適用
- [ ] Systems Manager Inventory を有効化
- [ ] Organizations 統合(マルチアカウント環境)

### 運用
- [ ] CloudWatch アラーム設定
- [ ] CloudTrail ロギング有効化
- [ ] 定期的なレポート生成(月次)
- [ ] ベンダー監査対応体制

### セキュリティ
- [ ] IAM ロールに最小権限を設定
- [ ] CloudTrail ログ保護(S3 MFA Delete)
- [ ] アクセス権限の定期レビュー

まとめ

AWS License Manager(v2.0) は、以下を実現するライセンス管理プラットフォームです:

  1. 自動追跡 - EC2・RDS インスタンスのライセンス使用量をリアルタイム把握
  2. ルール強制 - Hard Limit で超過起動を完全ブロック、Soft Limit で警告
  3. マルチアカウント管理 - Organizations 統合で全社的な一元管理
  4. コンプライアンス対応 - 自動レポート生成でベンダー監査に即時対応
  5. 完全無料 - AWS マネージドサービスの一部として無料提供

導入フロー

1. 要件確認(ライセンスタイプ・数量)
   ↓
2. License Configuration 作成
   ↓
3. License Rules 設定
   ↓
4. EC2 インスタンスに関連付け
   ↓
5. CloudWatch で監視
   ↓
6. 定期的なレポート生成・監査対応

2026 年の進化

  • AI 駆動最適化 - 使用パターン分析・コスト削減提案
  • Managed Entitlements 拡大 - SaaS・ISV ライセンス統合
  • Linux サブスクリプション追跡 - RHEL・Ubuntu 等自動検出