目次
AWS Application Discovery Service 完全ガイド v2.0(2026年最新対応)
エンタープライズ移行計画のインベントリ・依存関係自動検出
AWS Application Discovery Service(ADS) は、「オンプレミスのサーバー・アプリケーション・データベースのインベントリ・構成・パフォーマンス・TCP依存関係を自動検出し、AWS への移行計画を支援するサービス」 である。Migration Hub・Migration Evaluator と統合し、数百~数千台のオンプレサーバーの全体像を把握し、ウェーブ計画・コスト見積もり・リスク評価に必須のデータを提供する。2026年現在、新規顧客受け入れ終了に近づいているが、既存ユーザーは継続利用可能。
目次
- ドキュメントメタデータ
- 概要と課題
- このサービスを選ぶ理由
- アーキテクチャと設計原則
- コアコンポーネント
- 発見方法の詳細
- 主要ユースケース
- 設定・操作の具体例
- 類似サービス比較表
- ベストプラクティス
- トラブルシューティング表
- 2025-2026 最新動向
- 学習リソース・参考文献
- 実装例・チェックリスト
- まとめ
ドキュメントメタデータ
- 最終更新: 2026-04-27
- バージョン: v2.0
- 対象者: Migration Architect、Infrastructure Manager、IT Portfolio Manager、Enterprise Architect
- 難易度: 初級~中級
- 関連サービス: Migration Hub、Migration Evaluator、MGN、DMS、Strategy Recommendations、AWS Transform
- 廃止・変更予定: 新規顧客受け入れ終了に近づいているが、既存顧客は継続利用可能。Migration Hub との統合は継続
概要と課題
本質
AWS Application Discovery Service は 「オンプレミス環境の全サーバー・DB・アプリケーション・依存関係を自動的に検出し、移行計画・コスト見積もり・リスク評価の根拠となるデータを収集するサービス」 である。以下を実現する:
- 全体インベントリの自動化:手作業による棚卸しの廃止、スプレッドシート管理の終焉
- 依存関係の可視化:TCP通信・プロセス・ネットワークフローから “このサーバー停止時の影響範囲” を自動算出
- Migration Hub との統合:発見データが自動的にハブに連携され、ウェーブ計画・進捗管理に反映
- コスト見積もり:サーバースペック・使用率データを Migration Evaluator に供給し、AWS月額コスト算出
従来の課題
| 課題 | 説明 |
|---|---|
| 手作業による棚卸しの膨大な工数 | 数百台のサーバーを手動で一覧化・スペック確認・ネットワーク図作成。プロジェクト遅延の主因 |
| 依存関係の漏落 | 隠れた依存関係(夜間バッチ、キャッシュサーバー等)を見逃し、移行後に問題発生 |
| サーバーの実際の使用率不明 | 構成スペックは分かるが、CPU/メモリ平均使用率が不明。右サイジングの根拠なし |
| ウェーブ計画の属人化 | 依存関係を人手で分析し、ウェーブ順序を決定。検証不足で計画変更が頻発 |
| 移行前後のコスト比較困難 | オンプレコスト(ライセンス・ハードウェア・電力)と AWS コストの正確な比較不可 |
| マルチツール環境での追跡困難 | Application Discovery 発見データ → Migration Hub への連携が手動。手間がかかる |
AWS Application Discovery Service が提供する解決策
✅ エージェント / エージェントレスでの自動発見:1 週間で数百~数千台のインベントリを自動収集
✅ TCP 依存関係の自動マッピング:サーバー間の通信フローをグラフ化
✅ パフォーマンスメトリクスの継続収集:CPU・メモリ・ディスクの平均・ピーク使用率を時系列記録
✅ Migration Hub との自動連携:発見データがハブに自動反映、ウェーブ計画に活用
✅ データベース発見機能:Oracle・SQL Server・MySQL・PostgreSQL の構成・スキーマを自動取得
✅ コスト見積もり支援:スペック・使用率データを Migration Evaluator に供給
このサービスを選ぶ理由
なぜ AWS Application Discovery Service なのか?
-
規模の大きなデータセンター移行
- 数百~数千台のサーバーを手動で棚卸しするのは実務的不可能
- Application Discovery は 1 週間で全体インベントリを自動化
- オンプレミス全体の見える化が初めて可能
-
正確なウェーブ計画
- 発見した TCP 依存関係(「WebサーバーA → DBサーバーB」)に基づいて、自動的に移行順序を提案
- 依存関係の漏落による移行失敗を事前防止
- Migration Hub と統合すれば、計画 → 実行 → 追跡が一貫
-
右サイジング・コスト見積もり
- CPU・メモリ使用率データがあれば、適切な EC2 インスタンスタイプを選定可能
- オーバープロビジョニング(高額インスタンス購入)を回避
- Migration Evaluator と連携して月額 AWS コスト 3 年予測を算出
-
複数の発見方法
- Agentless Collector(VMware vCenter 用):インストール最小化
- Discovery Agent(Linux / Windows):詳細なプロセス・ネットワーク情報
- File-based Import:既存のインベントリスプレッドシートからのインポート
- 環境に応じた柔軟な選択可能
-
パートナーツール統合
- CloudEndure・Carbonite 等のサードパーティ発見ツールの API も利用可能
- Application Discovery のデータと統合して、より包括的なインベントリを構築
このサービスを選ばない理由
- 小規模移行(< 10 台):管理手数料より工数が大きい
- クラウドネイティブな新規構築:既存インベントリ不要
- オンプレミス内部の実験:移行を前提としない
アーキテクチャと設計原則
全体構成図(Mermaid 1)
graph TB
subgraph OnPrem["On-Premises Environment"]
VM["VMware vCenter<br/>(VMs)"]
PS["Physical Servers<br/>(Windows / Linux)"]
DB["Databases<br/>(Oracle / SQL Server<br/>MySQL / PostgreSQL)"]
end
subgraph Discovery["Discovery & Collection Layer"]
AC["Agentless Collector<br/>(OVA / vCenter)"]
DA["Discovery Agent<br/>(Windows / Linux binary)"]
FI["File-based Import<br/>(CSV / Excel)"]
end
subgraph Processing["Data Processing & Analysis"]
DDAPI["Application Discovery Service<br/>Data Aggregation API"]
DEP["Dependency Mapper<br/>(TCP connections)"]
PM["Performance Metrics<br/>(CPU / Memory / Disk)"]
end
subgraph Migration["Migration Hub Integration"]
MH["Migration Hub<br/>(Home Region)"]
APP["Application Groups<br/>(Logical grouping)"]
WAVE["Wave Planning<br/>(Dependency-aware)"]
end
subgraph Integration["Integration & Analysis"]
ME["Migration Evaluator<br/>(Cost modeling)"]
SR["Strategy Recommendations<br/>(7R analysis)"]
EXPORT["Data Export<br/>(S3 / Athena / Excel)"]
end
VM --> AC
PS --> DA
DB --> AC
AC --> DDAPI
DA --> DDAPI
FI --> DDAPI
DDAPI --> DEP
DDAPI --> PM
DEP --> MH
PM --> MH
MH --> APP
APP --> WAVE
PM --> ME
DDAPI --> SR
MH --> EXPORT
データフロー詳細
1. 発見フェーズ(Week 1)
Agentless Collector / Discovery Agent
→ VM / Physical / DB インベントリ収集
→ CPU・メモリ・ディスク使用率の時系列記録(15秒~60分間隔)
→ TCP接続・プロセス一覧の取得
2. 分析フェーズ(Week 2-3)
Application Discovery Service API
→ 依存関係グラフの構築(サーバー間TCP通信を抽出)
→ Application の自動グループ化提案
→ パフォーマンス統計(平均・ピーク値)の計算
3. 計画フェーズ(Week 4-5)
Migration Hub統合
→ 発見データがハブに自動反映
→ Wave計画の自動提案(依存関係に基づく)
→ Application単位での進捗管理準備
4. 見積もりフェーズ(Week 5-6)
Migration Evaluator連携
→ Server spec + 使用率 → EC2 instance type 推奨
→ Database → RDS target 推奨
→ 3年間の Total Cost of Ownership 計算
コアコンポーネント
1. Agentless Collector(VMware エージェントレス)
役割:VMware vCenter 環境全体の VM 発見・スキャン(インストール最小化)
仕様:
- 形式:OVA ファイル(vCenter にデプロイする仮想アプライアンス)
- 収集対象:vCenter 傘下の全 VM・ホスト
- 静的データ:ホスト名・IP・MAC・ディスク容量・CPU/メモリスペック・DB エンジン・スキーマ
- パフォーマンスデータ:CPU・RAM・ディスク I/O の平均・ピーク値(60分間隔)
- ネットワーク:VM 間の TCP 通信フロー(ハイパーバイザーレベル)
- 収集間隔:60分(Agentless)
利点:
- 各 VM にエージェントインストール不要(数千台でも管理簡素)
- VM 内部を「見ることなく」ハイパーバイザーデータで発見可能
制限:
- プロセス一覧・ネットワーク接続の詳細が取得不可
- VM 内部の詳細分析が必要な場合は Discovery Agent 補完必須
2. Discovery Agent(エージェントベース・詳細)
役割:各サーバー(Linux / Windows)にインストール、詳細なパフォーマンス・プロセス・ネットワーク情報収集
仕様:
- インストール対象:Amazon Linux・RHEL・CentOS / Windows Server 2008R2 以降
- 静的データ:ホスト名・IP・MAC・ハードウェア・OS・インストールソフトウェア一覧
- パフォーマンス:CPU・メモリ・ディスク・ネットワーク使用率(15秒間隔・時系列)
- プロセス:実行中の全プロセス・コマンドライン
- ネットワーク:インバウンド・アウトバウンド TCP/UDP 接続・ポート・プロトコル
- 収集間隔:15秒(Agent ベース・高精度)
利点:
- VM 内部の詳細情報が取得可能(どのアプリがどのポートを使っているか)
- 依存関係マップの高精度化
- 時系列データで使用率パターンを分析可能(バッチ処理の時間帯等)
制限:
- 各サーバーへのエージェントインストール必要(数千台は工数かかる)
- ネットワークセグメント間の疎通確保必要
3. Application Groups(アプリケーション論理グループ)
役割:複数サーバー・複数 DB を 1 つのビジネスアプリケーションに統合
構成例:
"E-commerce Platform" Application Group
├── Web Servers(Apache Tomcat):3 台
├── API Servers(Java Spring Boot):2 台
├── Application Database(Oracle 100GB):1 台
├── Cache Server(Redis):1 台
├── Load Balancer(F5 BIG-IP):1 台
└── NAS Storage(NetApp):500GB
メリット:
- アプリケーション単位でのステークホルダー報告
- ウェーブ計画時に依存関係が自動反映
- 移行後のコスト追跡(Application 別の月額 AWS コスト可視化)
4. Dependency Mapping(依存関係マッピング)
役割:Discovery Agent が収集した TCP 接続から、サーバー間・サービス間の依存グラフを自動構築
具体例:
Web Server A (port 80)
↓ TCP:3306 (MySQL query)
Application Database B (port 3306)
↓ TCP:6379 (cache fill)
Redis Server C (port 6379)
Web Server A が停止 → B にも影響 → C も巻き添え
自動検出内容:
- 同期呼び出し(REST API・DB クエリ)
- 非同期呼び出し(メッセージキュー、Syslog)
- ファイル共有(NFS・SMB)
- ライセンスサーバー依存(複数アプリが共有)
5. データベース発見(Database Discovery Module)
役割:Agentless Collector のデータベース・分析系サーバー発見モジュール
対応 DB エンジン:
- Oracle(11g / 12c / 19c)
- SQL Server(2008R2 / 2012 / 2016 / 2019 / 2022)
- MySQL(5.7 / 8.0)
- PostgreSQL(9.6 / 10~15)
収集情報:
- DB サーバーのスペック・OS
- Database インスタンス数・スキーマ・オブジェクト数
- テーブルサイズ・インデックス構成
- CPU・メモリ使用率(LDAP / WMI クエリ)
用途:
- DMS Fleet Advisor と統合して移行ターゲット(Aurora / RDS)を推奨
- データベースサイズに基づいた RDS インスタンスタイプ推定
6. Performance Metrics(パフォーマンスメトリクス)
収集項目(Agentless & Agent 共通):
| メトリクス | 説明 | 用途 |
|---|---|---|
| CPU Utilization (%) | CPU 平均・ピーク使用率 | EC2 インスタンスタイプ決定 |
| Memory Usage (GB) | メモリ平均・ピーク使用率 | メモリ容量・インスタンスタイプ |
| Disk I/O (IOPS) | ディスク読み書き速度 | EBS gp3 IOPS 設定 |
| Network Throughput (Mbps) | ネットワーク送受信 | EC2 Enhanced Networking 必要性 |
| Disk Free Space (GB) | ディスク空き容量 | EBS ボリューム容量決定 |
発見方法の詳細
Agentless Collector(VMware vCenter デプロイ)
# 1. vCenter に OVA をデプロイ
# AWS コンソール → Application Discovery Service → Agentless Collector
# → Download Connector → vCenter にインポート
# 2. Collector の設定(vCenter IP・認証情報)
# ↓
# 3. スキャン開始(自動)
# Collector が vCenter を照会 → VM・ホスト一覧取得
# ↓
# 4. パフォーマンスデータ収集(60分間隔で継続)
# ↓
# 5. AWS Migration Hub へのデータ送信(自動)
# 7~10 日後:依存関係マップ・統計データ完成
対応バージョン:vCenter 5.5 以降
Discovery Agent(Linux / Windows インストール)
# 1. Agent ダウンロード
curl -O https://s3.us-west-2.amazonaws.com/aws-discovery-agent.us-west-2/linux/latest/aws-discovery-agent.tar.gz
# 2. 解凍・インストール
tar -xzf aws-discovery-agent.tar.gz
cd aws-discovery-agent-installer/
sudo ./install -r ap-northeast-1 -k <ACCESS_KEY> -s <SECRET_KEY>
# 3. インストール確認
sudo systemctl status aws-discovery-daemon
# 4. 収集開始
aws discovery start-data-collection-by-agent-ids \
--agent-ids agent-abc123 agent-def456 \
--region ap-northeast-1
# 5. 1~2 週間データ収集で依存関係完成
ハイブリッド(Agentless + Agent 併用)
- VMware VM 1 ← Agentless Collector(vCenter 経由)
-
- Discovery Agent(詳細分析用)
- Physical Server 1 ← Discovery Agent(必須・Agent のみ対応)
- Database Server 1 ← Agentless Collector(DB 発見モジュール)
主要ユースケース
1. データセンター全閉鎖プロジェクト(500 台サーバー移行)
シナリオ:レガシーオンプレミスデータセンター 3 施設(日本・米国・欧州)を AWS へ統合移行
Application Discovery Service の活用:
# フェーズ 1: 全体インベントリ自動化(Week 1-2)
→ Agentless Collector を 3 つの vCenter にデプロイ
→ 同時に Discovery Agent を 50 台の物理サーバーにインストール
→ 1 週間で 500 台全体のインベントリ・依存関係を自動検出
# フェーズ 2: ウェーブ計画自動生成(Week 3)
→ Discovery データから依存関係を分析
→ 「非本番環境」「ステージング」「本番」に自動分類
→ Wave 1(50 台)→ Wave 2(100 台)→ Wave 3-6(350 台)
# フェーズ 3: コスト見積もり(Week 4)
→ スペック・使用率データ → Migration Evaluator
→ 現在のオンプレコスト(ライセンス・ハード・電力)vs AWS 3 年コスト
→ ROI 計算:月 ¥500 万オンプレ → 月 ¥300 万 AWS(33% 削減)
# フェーズ 4: Migration Hub へのデータフィード(Week 5)
→ Application Discovery データが自動的にハブに連携
→ 500 台 × 100 アプリケーション の進捗管理準備完了
2. マルチクラウド統合(Azure VM + オンプレミス混在)
シナリオ:Azure で実行中の 100 台 VM と、オンプレミスで実行中の 200 台サーバーを AWS に統合
Discovery 方法:
# Azure VMs ← Discovery Agent(Azure VM 内にインストール)
# On-Premises VMs ← Agentless Collector(vCenter)
# On-Premises Physical ← Discovery Agent
# すべてのデータが同一の Application Discovery Service に集約
→ Migration Hub で統一管理(リージョン・ツール混在の複雑性を吸収)
3. レガシー ERP システム移行(Oracle ERP 数 TB)
シナリオ:Oracle ERP(Database 2TB、App Servers 20 台、報告ツール複数)を AWS に移行
Database Discovery の活用:
# Agentless Collector の DB モジュール
→ Oracle スキーマ自動分析(Table 数・Index 数・スペース使用率)
→ Dependent App Server の自動検出(JDBC 接続を追跡)
→ RDS Target 推奨:Oracle → Amazon RDS for Oracle / Aurora
# Migration Evaluator 連携
→ 2TB Database → RDS db.r6i.4xlarge 推奨
→ 3 年 AWC コスト:¥5,000 万(オンプレ:¥8,000 万)
4. 本番環境の Right-Sizing(過度にプロビジョニング)
シナリオ:「念のため高スペックを購入」した 50 台サーバーの実際の使用率を調査
パフォーマンスメトリクスの活用:
# Discovery Agent で 2 週間のパフォーマンス収集
→ CPU 平均使用率 5%、ピーク 15%
→ メモリ平均使用率 20%、ピーク 40%
→ 現在:16vCPU / 128GB メモリ → 推奨:4vCPU / 16GB(コスト 80% 削減)
# 複数台サーバーの類似パターン検出
→ 自動的に「軽量アプリ」グループを分類
→ 集約化・マイクロサービス化の検討対象を特定
5. アプリケーション依存関係の可視化(見えない接続を発見)
シナリオ:手作業のドキュメントでは把握不可能な隠れた依存関係を発見
具体例:
ドキュメント記載:
Web App A → Database B (明示的な JDBC 接続)
Discovery Agent が自動検出:
Web App A → Database B (JDBC)
Web App A → Cache Server C (Redis port 6379)
Web App A → License Server D (port 27005)
Batch Job E → Database B (夜間 22:00 実行)
Batch Job E → File Server F (NFS mount)
移行計画への反映:
Database B の移行 → Cache C・License D に影響確認必須
Batch Job E は Database B 移行完了後に実行
設定・操作の具体例
CLI ベースの操作
1. Home Region の設定
# Migration Hub ホームリージョン設定(必須・最初の 1 回)
aws migrationhub-config create-home-region-control \
--home-region ap-northeast-1 \
--target Type=ACCOUNT,Id=123456789012 \
--region us-east-1
# 確認
aws migrationhub-config describe-home-region-control \
--region us-east-1
2. Data Collection 開始
# Agent ベースのデータ収集開始
aws discovery start-data-collection-by-agent-ids \
--agent-ids agent-abc123 agent-def456 agent-ghi789 \
--region ap-northeast-1
# Agent 一覧確認
aws discovery list-agents \
--region ap-northeast-1 \
--query 'agentsSummary[*].[agentId, agentStatus, version]'
# 出力例:
# [
# ["agent-abc123", "RUNNING", "2.0.5"],
# ["agent-def456", "RUNNING", "2.0.5"]
# ]
3. Server Configuration データ取得
# 発見されたサーバー一覧
aws discovery describe-configurations \
--configuration-type SERVER \
--query 'configurations[*].{
ServerID: configurations[0].server.serverId,
HostName: configurations[0].server.hostName,
OS: configurations[0].server.osName,
CPUs: configurations[0].server.cpuCount,
Memory: configurations[0].server.ramInMbytes
}' \
--region ap-northeast-1 \
> server-inventory.json
4. Network Connection 取得(依存関係マッピング)
# サーバー間の TCP 接続一覧をエクスポート
aws discovery start-export-task \
--export-data-format CSV \
--filters '[{"name":"ConfigurationType","values":["CONNECTION"]}]' \
--region ap-northeast-1
# エクスポート進捗確認
aws discovery describe-export-tasks \
--region ap-northeast-1 \
--query 'exportsInfo[*].[exportId, exportStatus, configurationsDownloadUrl]'
# CSV ダウンロード(configurationsDownloadUrl から)
curl <URL> > network-connections.csv
5. Application Group 作成(Discovery API 経由)
# Application Group 作成
aws discovery create-application \
--name "E-commerce Platform" \
--description "Web + API + Database application" \
--region ap-northeast-1
# 出力:applicationId
# サーバーをアプリケーションに関連付け
aws discovery associate-configuration-items-to-application \
--application-configuration-id app-12345678 \
--configuration-ids ds-0abc1234 ds-0def5678 ds-0ghi9012 \
--region ap-northeast-1
SDK ベースの操作(Python)
import boto3
import json
discovery_client = boto3.client('discovery', region_name='ap-northeast-1')
# Step 1: サーバー一覧取得
def get_servers():
response = discovery_client.describe_configurations(
configurationType='SERVER'
)
return response['configurations']
# Step 2: 依存関係グラフ構築
def get_network_connections():
export_response = discovery_client.start_export_task(
exportDataFormat='CSV',
filters=[{'name': 'ConfigurationType', 'values': ['CONNECTION']}]
)
return export_response['exportId']
# Step 3: Application Group 作成
def create_app_group(app_name, server_ids):
app_response = discovery_client.create_application(
name=app_name
)
app_id = app_response['applicationId']
discovery_client.associate_configuration_items_to_application(
applicationConfigurationId=app_id,
configurationIds=server_ids
)
return app_id
# 実行例
if __name__ == "__main__":
servers = get_servers()
print(f"Found {len(servers)} servers")
export_id = get_network_connections()
print(f"Export job started: {export_id}")
# Web層サーバー抽出
web_servers = [s['configurations'][0]['server']['serverId']
for s in servers
if 'web' in s['configurations'][0]['server']['hostName'].lower()]
app_id = create_app_group("E-commerce Web Tier", web_servers)
print(f"Created application: {app_id}")
IaC ベースの操作(CloudFormation)
AWSTemplateFormatVersion: '2010-09-09'
Description: 'Application Discovery Service Export & Processing Infrastructure'
Resources:
# S3 bucket for export data
DiscoveryDataBucket:
Type: AWS::S3::Bucket
Properties:
BucketName: !Sub 'app-discovery-exports-${AWS::AccountId}'
VersioningConfiguration:
Status: Enabled
PublicAccessBlockConfiguration:
BlockPublicAcls: true
BlockPublicPolicy: true
# IAM Role for Discovery data processing
DiscoveryProcessingRole:
Type: AWS::IAM::Role
Properties:
RoleName: ApplicationDiscoveryProcessingRole
AssumeRolePolicyDocument:
Version: '2012-10-17'
Statement:
- Effect: Allow
Principal:
Service:
- discovery.amazonaws.com
- athena.amazonaws.com
Action: sts:AssumeRole
Policies:
- PolicyName: DiscoveryAccess
PolicyDocument:
Version: '2012-10-17'
Statement:
- Effect: Allow
Action:
- discovery:*
- s3:GetObject
- s3:PutObject
- s3:ListBucket
- athena:StartQueryExecution
- glue:CreateTable
- glue:UpdateTable
Resource: '*'
# Athena Table for dependency analysis
DiscoveryDependencyTable:
Type: AWS::Glue::Table
Properties:
CatalogId: !Ref 'AWS::AccountId'
DatabaseName: default
TableInput:
Name: discovery_dependencies
TableType: EXTERNAL_TABLE
Parameters:
EXTERNAL: 'TRUE'
format: 'csv'
StorageDescriptor:
Columns:
- Name: source_server_id
Type: string
- Name: target_server_id
Type: string
- Name: port
Type: int
- Name: protocol
Type: string
- Name: data_transfer_mbps
Type: double
Location: !Sub 's3://${DiscoveryDataBucket}/dependencies/'
InputFormat: org.apache.hadoop.mapred.TextInputFormat
OutputFormat: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
SerdeInfo:
SerializationLibrary: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
Parameters:
field.delim: ','
Outputs:
ExportBucketName:
Value: !Ref DiscoveryDataBucket
ProcessingRoleArn:
Value: !GetAtt DiscoveryProcessingRole.Arn
類似サービス比較表
| 項目 | Application Discovery Service | ServiceNow Discovery | Cloudockit | RVTools | Microsoft MAP Toolkit | Lansweeper |
|---|---|---|---|---|---|---|
| 用途 | AWS 移行計画のためのインベントリ・依存関係発見 | IT Asset Management・Network Discovery | AWS クラウドリソース可視化 | VMware VM インベントリ | Microsoft ライセンス・ハード資産調査 | IT Asset・Network Discovery |
| 発見方法 | Agentless / Agent / File Import | Agentless / Agent / SNMP | Agentless(API ベース) | vCenter Export / RVTools | Agent ベース | Agentless / Agent |
| 対応環境 | VMware / Physical / DB | Multi-Cloud(Azure 含む) | AWS only | VMware only | Windows / Server | Multi-Cloud |
| TCP依存関係検出 | ✅(詳細) | ✅ | ❌ | ❌ | ❌ | ✅(限定的) |
| パフォーマンスメトリクス | ✅(CPU / Memory / Disk) | ✅(詳細) | ❌ | ❌ | ❌ | ✅(限定的) |
| Database 発見 | ✅(Oracle / SQL Server 等) | ✅ | ❌ | ❌ | ❌ | ❌ |
| Migration Hub 統合 | ✅(ネイティブ統合) | 限定的 | ❌ | ❌ | ❌ | ❌ |
| 移行コスト見積もり | ✅(Migration Evaluator) | 限定的 | ❌ | ❌ | ❌ | ❌ |
| 価格モデル | 無料(AWS マネージド) | SaaS 月額課金 | SaaS 月額課金 | 1 回限りライセンス | 無料ツール | SaaS 月額課金 |
| 推奨対象 | AWS への大規模移行(100+ apps) | IT Asset Management | AWS リソース最適化 | VMware 環境の詳細分析 | Microsoft Volume Licensing | IT Asset 監査・コンプライアンス |
ベストプラクティス
1. 発見方法の選定
✅ 推奨:
- VMware 環境:Agentless Collector を vCenter にデプロイ(100+ VM なら必須)
- Physical サーバー:Discovery Agent(必須・Agentless は非対応)
- 混在環境:Agentless + Agent 併用(VM スキャン + Physical 詳細分析)
- Database:Agentless Collector の DB モジュール(別途スキャン不要)
❌ アンチパターン:
- 数千台の VM を個別に Discovery Agent インストール(管理負荷=無駄)
- Application Discovery Service なし、スプレッドシート手作業(漏落・不正確)
2. データ収集期間
✅ 推奨:
- 最小 1 週間:平均パフォーマンスメトリクス取得
- 理想 2~4 週間:月次変動・バッチ処理ピークを捉える
- 例:月初の請求バッチ、月末のレポート生成時のリソース変動を観測
❌ アンチパターン:
- 数日だけスキャン → 使用率データが不正確 → Right-Sizing 失敗
3. Application Group 設計
✅ 推奨:
- ビジネスアプリケーション単位:「顧客管理システム」「決済システム」
- 各グループ 5~50 サーバー:粒度が適切でダッシュボード見やすい
- 依存関係を明確に:Discovery データから自動抽出
❌ アンチパターン:
- 技術スタック単位(「Web Servers」「DB Servers」)→ ビジネス価値が不透明
- 1 グループ 500+ サーバー → ダッシュボード冗長・管理困難
4. ステークホルダーコミュニケーション
✅ 推奨:
- Discovery データを CSV・Excel でエクスポート → PMO・CFO に定期配信
- 具体的な数値:「全 500 台中 470 台発見・依存関係 2,300 接続点」
- Application 単位の進捗:「顧客管理システム 10 台、決済システム 8 台」
❌ アンチパターン:
- 「インベントリ集約中」と抽象的な報告
- Discovery コンソールの URL だけ共有(詳細不理解)
5. セキュリティ・権限管理
✅ 推奨:
- IAM で Discovery API アクセスを最小権限制御
- エクスポートデータ(CSV)は S3 プライベートバケット保管
- 機密情報(パスワード等)は Discovery エージェントで収集しない設定
❌ アンチパターン:
- 誰でも Discovery コンソールにアクセス可能
- エクスポートデータをメール・共有フォルダで配布
トラブルシューティング表
| 症状 | 原因 | 対応 |
|---|---|---|
| Agentless Collector が vCenter に接続できない | vCenter IP・認証情報の誤入力 | vCenter のホスト名・ユーザーを確認。Collector ログ確認 |
| Discovery Agent がインストールできない(Linux) | ライブラリ不足・OS バージョン非対応 | ./install -r ap-northeast-1 -k xxx -s yyy ログを確認。OS バージョン確認 |
| パフォーマンスメトリクスが 0 のまま | エージェント起動失敗・収集未開始 | aws discovery start-data-collection-by-agent-ids 実行確認。Agent ログ確認 |
| TCP 依存関係が表示されない | Discovery Agent が該当サーバーに非インストール | 依存元・依存先の全サーバーに Agent インストール |
| Migration Hub に Application Discovery データが反映されない | Home Region 未設定 | aws migrationhub-config create-home-region-control で Home Region 設定 |
| Database スキーマ情報が不完全 | DB スキーマが大きすぎる・タイムアウト | データベーススキャン時間制限を増加・段階的スキャン |
| エクスポート CSV が破損・ダウンロード失敗 | S3 アクセス権限不足・ネットワーク遮断 | IAM 権限確認。S3 バケットのパブリックアクセス設定確認 |
2025-2026 最新動向
1. AWS Transform への統合検討
詳細:
- Application Discovery Service は新規顧客受け入れ終了に近づいている
- Migration Hub と共に AWS Transform(統合移行・モダナイゼーションプラットフォーム)への段階的移行を検討
- 既存顧客は継続利用可能(EOL は未定)
代替戦略:
- 新規発見プロジェクト → AWS Transform の Discovery & Assessment 機能推奨
- 既存 Discovery データ → Migration Hub での管理は継続可能
2. AI による依存関係推定の強化
2026 年予定:
- 機械学習モデルによる「隠れた依存関係」の自動検出
- ネットワークフロー + アプリケーション動作ログから、予測的に未検出の接続点を特定
- 誤検知削減のための異常検知アルゴリズム
3. マルチクラウド発見の拡大
2026 年計画:
- Azure VM・GCP Compute Engine の直接スキャン機能
- AWS・Azure・GCP 混在環境でのハイブリッド発見・統合ダッシュボード
- Discovery Agent の cross-cloud サポート強化
4. Database Migration Service Fleet Advisor との統合強化
最新動向:
- DMS Fleet Advisor が Application Discovery の Database スキーマデータを自動取得
- スキーマ複雑度・オブジェクト数から最適な移行パターンを自動推奨
- 変換ルール(Oracle → PostgreSQL 等)の自動生成
学習リソース・参考文献
公式ドキュメント
| リソース | URL | 説明 |
|---|---|---|
| Application Discovery Service User Guide | https://docs.aws.amazon.com/application-discovery/latest/userguide/ | 公式ガイド(初期セットアップ~API リファレンス) |
| Application Discovery Service API Reference | https://docs.aws.amazon.com/application-discovery/latest/APIReference/ | API リファレンス(describe-configurations 等) |
| Discovery Service Pricing | https://aws.amazon.com/application-discovery/pricing/ | 価格情報(基本無料) |
| Migration Hub Home Region Guide | https://docs.aws.amazon.com/migrationhub/latest/ug/home-region.html | ホームリージョン設定ガイド |
| Migration Evaluator Guide | https://aws.amazon.com/migration-evaluator/ | TCO 見積もりツール |
AWS ウェビナー & トレーニング
| リソース | 説明 | リンク |
|---|---|---|
| Discovering Your On-Premises Portfolio | Application Discovery Service の使い方 45 分ウェビナー | aws.training |
| Migration Readiness Assessment | 移行計画・リスク評価 1 日トレーニング | AWS Training Partners |
| Application Dependency Mapping for Migration | 依存関係マッピングの実践ワークショップ | AWS Immersion Day |
コミュニティ・ベンダー資料
| リソース | 説明 |
|---|---|
| AWS Migration Competency Partners | CloudPhysics、Turbonomic、Riverbend Tech 等の統合ソリューション |
| AWS Well-Architected Migration Lens | 移行アーキテクチャベストプラクティス |
| GitHub: AWS Migration Discovery Tools | サンプルコード・スクリプト・分析ツール |
実装例・チェックリスト
実装例:500 台サーバー発見プロジェクトの完全セットアップ
#!/bin/bash
# Application Discovery Service 初期セットアップスクリプト
set -e
ACCOUNT_ID="123456789012"
HOME_REGION="ap-northeast-1"
AGENTLESS_VCENTER="vcenter.example.com"
echo "=== Application Discovery Service セットアップ ==="
# Step 1: ホームリージョン設定
echo "[1/6] ホームリージョン設定..."
aws migrationhub-config create-home-region-control \
--home-region $HOME_REGION \
--target Type=ACCOUNT,Id=$ACCOUNT_ID \
--region us-east-1
# Step 2: IAM ロール作成
echo "[2/6] IAM ロール作成..."
aws iam create-role \
--role-name ApplicationDiscoveryRole \
--assume-role-policy-document '{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Principal": {"Service": ["discovery.amazonaws.com"]},
"Action": "sts:AssumeRole"
}]
}' || echo "Role already exists"
aws iam attach-role-policy \
--role-name ApplicationDiscoveryRole \
--policy-arn arn:aws:iam::aws:policy/AWSApplicationDiscoveryServiceAccess
# Step 3: S3 バケット作成(エクスポートデータ保管)
echo "[3/6] S3 バケット作成..."
BUCKET="app-discovery-exports-${ACCOUNT_ID}"
aws s3 mb s3://$BUCKET --region $HOME_REGION || echo "Bucket already exists"
aws s3api put-bucket-encryption \
--bucket $BUCKET \
--server-side-encryption-configuration '{
"Rules": [{
"ApplyServerSideEncryptionByDefault": {"SSEAlgorithm": "AES256"}
}]
}'
# Step 4: CloudWatch Log Group 作成
echo "[4/6] CloudWatch ログ設定..."
aws logs create-log-group \
--log-group-name /aws/discovery/agent-logs \
--region $HOME_REGION || echo "Log group already exists"
aws logs put-retention-policy \
--log-group-name /aws/discovery/agent-logs \
--retention-in-days 30 \
--region $HOME_REGION
# Step 5: Agentless Collector OVA ダウンロード指示
echo "[5/6] Agentless Collector デプロイ手順..."
echo "以下の URL から OVA ファイルをダウンロード:"
echo "https://console.aws.amazon.com/discovery/home?region=${HOME_REGION}#/"
echo ""
echo "vCenter にインポート手順:"
echo "1. vCenter Web Client → Datacenters → Deploy OVA Template"
echo "2. OVA ファイルを選択 → Deploy"
echo "3. Collector 設定:vCenter IP・User・Password 入力"
echo "4. スキャン自動開始"
# Step 6: Agent ダウンロード準備
echo "[6/6] Discovery Agent ダウンロード準備..."
echo "Linux Agent:"
echo "curl -O https://s3.us-west-2.amazonaws.com/aws-discovery-agent.us-west-2/linux/latest/aws-discovery-agent.tar.gz"
echo ""
echo "Windows Agent:"
echo "Powershell: (New-Object System.Net.WebClient).DownloadFile('https://s3.us-west-2.amazonaws.com/aws-discovery-agent.us-west-2/windows/latest/AwsDiscoveryAgent.exe', 'AwsDiscoveryAgent.exe')"
echo ""
echo "=== セットアップ完了 ==="
echo "S3 Export Bucket: s3://$BUCKET"
echo "CloudWatch Logs: /aws/discovery/agent-logs"
echo "Home Region: $HOME_REGION"
発見プロジェクトチェックリスト
事前準備フェーズ
-
[ ] ステークホルダー準備
- [ ] Project Sponsor から移行スコープ・予算承認取得
- [ ] IT 運用チーム・セキュリティチームの同意
- [ ] データセンター・VMware 管理者との協力体制
-
[ ] インベントリ計画
- [ ] 対象サーバー一覧の粗集計(VM 数・物理サーバー数・DB 数)
- [ ] VMware vCenter のバージョン確認(5.5+対応確認)
- [ ] Network 疎通確認(Discovery Collector → Migration Hub)
-
[ ] ツール・アカウント準備
- [ ] AWS Account・IAM ユーザー作成
- [ ] 適切な IAM 権限確認(discovery:*)
- [ ] S3 バケット・CloudWatch Log Group 作成
スキャン実施フェーズ
-
[ ] Agentless Collector セットアップ
- [ ] OVA ダウンロード・vCenter へのデプロイ
- [ ] Collector の起動確認(AWS コンソール)
- [ ] vCenter 認証情報の入力・スキャン開始
-
[ ] Discovery Agent セットアップ
- [ ] Agent ダウンロード・解凍
- [ ] 各物理サーバー・VM への インストール(bash / Powershell)
- [ ] Agent ステータス確認(systemctl / Windows Services)
- [ ] データ収集開始(start-data-collection-by-agent-ids)
-
[ ] スキャン期間の管理
- [ ] 最小 1 週間はスキャン継続(パフォーマンスメトリクス蓄積)
- [ ] 月次バッチ・ピーク時間帯を含めて 2~4 週間推奨
- [ ] スキャン状況の定期確認(describe-agents)
分析・見積もりフェーズ
-
[ ] インベントリデータの検証
- [ ] describe-configurations で Server / DB データ確認
- [ ] 期待値(総サーバー数)との一致確認
- [ ] 発見漏れサーバーの追加スキャン
-
[ ] 依存関係マッピング
- [ ] start-export-task で CONNECTION データをエクスポート
- [ ] CSV 分析:サーバー間 TCP 接続を可視化
- [ ] Application Group への関連付け(create-application)
-
[ ] パフォーマンス分析
- [ ] CPU・メモリ・ディスク使用率の統計データ取得
- [ ] Right-Sizing 候補検討(小さすぎる・大きすぎるサーバー)
- [ ] スケーリング・集約化の可能性検討
-
[ ] コスト見積もり
- [ ] Migration Evaluator へのデータフィード
- [ ] 3 年間 TCO 計算
- [ ] オンプレ(ライセンス・ハード・電力)vs AWS 比較
計画フェーズ
-
[ ] Migration Hub への統合
- [ ] Application Discovery データが Hub に自動反映
- [ ] Application Group の確認・調整
- [ ] Wave 計画の自動提案確認
-
[ ] ステークホルダー報告
- [ ] インベントリサマリーレポート作成・配信
- [ ] 依存関係グラフの共有
- [ ] 推奨 Application Group の説明
- [ ] 移行計画・リスク・コスト概算を提示
まとめ
AWS Application Discovery Service は 「エンタープライズ移行プロジェクトのインベントリ・依存関係・パフォーマンスデータを自動収集し、Migration Hub と統合する完全なポートフォリオ発見プラットフォーム」 である。
主な価値
- 数百~数千台の自動インベントリ化:スプレッドシート手作業の廃止、精度向上
- TCP 依存関係の自動マッピング:隠れた接続点を発見、ウェーブ計画の精度向上
- パフォーマンスデータの継続収集:右サイジング・コスト見積もりの根拠
- Migration Hub との統合:発見 → 計画 → 実行 → 追跡の一貫フロー
- データベース発見機能:スキーマ・オブジェクト数から RDS ターゲット推奨
注意点
- 新規顧客受け入れ終了予定:AWS Transform への段階的移行を検討
- 最小 1 週間のスキャン期間:数日では不正確
- 全サーバーへの Agent インストール必須(依存関係完全把握のため)
適用判定
✅ 使うべき:
- 数十~数百のアプリケーション・サーバーの移行
- オンプレからクラウドへの包括的な移行計画
- 複数ウェーブ・複雑な依存関係の管理
❌ 不要:
- 小規模移行(< 10 台)
- 既に詳細なインベントリ・依存関係マップを保有
- AWS 以外のクラウド(Azure Migrate・GCP Migrate を推奨)
最終更新:2026-04-27
バージョン:v2.0