目次
AWS Migration Hub 完全ガイド v2.0(2026年最新対応)
複数移行ツール統合・ポートフォリオ可視化・進捗管理の一元化
AWS Migration Hub は、「複数の AWS 移行ツール(MGN・DMS・SAP on AWS など)と認定パートナーツール(CloudEndure・Carbonite など)の移行進捗を一元管理するダッシュボード・サービス」 である。オンプレミスのサーバー・アプリケーション・データベースの移行状態を アプリケーション単位・サーバー単位 で可視化し、PMO・ステークホルダーへの進捗報告を自動化する。2026 年現在、AWS Transform への統合検討により新規ユーザー受け入れを段階的に終了しているが、既存ユーザーは継続利用可能。
目次
- ドキュメントメタデータ
- 概要と課題
- このサービスを選ぶ理由
- アーキテクチャと設計原則
- コアコンポーネント
- 主要ユースケース
- 設定・操作の具体例
- 類似サービス比較表
- ベストプラクティス
- トラブルシューティング表
- 2025-2026 最新動向
- 学習リソース・参考文献
- 実装例・チェックリスト
- まとめ
ドキュメントメタデータ
- 最終更新: 2026-04-27
- バージョン: v2.0
- 対象者: Migration PMO Manager、Enterprise Architect、Cloud Infrastructure Manager、IT Portfolio Manager
- 難易度: 初級~中級
- 関連サービス: MGN、DMS、Application Discovery Service、Strategy Recommendations、Orchestrator、Refactor Spaces
- 廃止・変更予定: AWS Migration Hub は 2025 年 11 月 7 日をもって新規顧客の受け入れを終了。既存顧客は継続利用可能。長期的には AWS Transform への統合を検討
概要と課題
本質
AWS Migration Hub は 「エンタープライズ移行プロジェクトの統制・進捗可視化・ステークホルダー報告を一元化するダッシュボード」 である。複数の AWS 移行ツール(MGN・DMS・SAP on AWS・Refactor Spaces)と認定パートナーツール(CloudEndure・Carbonite・RiverMeadow など)の移行進捗を自動集約し、以下を実現する:
- 複数ツール・複数移行方法の統合ビュー:Rehost(リフト&シフト)・Replatform(リプラットフォーム)・Refactor(クラウドネイティブ化)が混在するポートフォリオを一画面で管理
- アプリケーション単位の進捗追跡:サーバーレベルの粒度ではなく、ビジネスアプリケーション(例:「顧客管理システム」「注文処理系」)単位での依存関係と完了率を可視化
- 移行ホームリージョン:グローバルデータセンターを複数リージョンにまたがる場合、1 つのホームリージョンをハブにして全リージョンの移行進捗を統合
- 自動タグ付け・コスト配分:移行リソースに自動タグ付けし、Cost Explorer で移行別のコスト追跡を実現
従来の課題
| 課題 | 説明 |
|---|---|
| 複数ツールの管理負荷 | MGN・DMS・CloudEndure をそれぞれ別コンソールで管理。進捗状況が分散し、全体の状況把握が困難 |
| ポートフォリオ全体の可視性欠如 | 数百のサーバーの移行状態を一覧化できず。どのアプリが移行完了し、どれが停滞しているかが不明 |
| ステークホルダーへのレポーティング | 移行進捗を手動集約して週次・月次レポート作成。手間が大きく、リアルタイム性がない |
| Application Discovery Service データの活用不足 | 発見した依存関係が Migration Hub の進捗管理に反映されず、ウェーブ設計が属人的 |
| 移行ウェーブ設計の標準化 | ウェーブの順序・依存関係をまとめる仕組みがなく、計画に漏れやミスが発生 |
| パートナーツール統合の複雑性 | CloudEndure・Carbonite 等のサードパーティ移行ツールの進捗を集約する手段がない |
AWS Migration Hub が提供する解決策
✅ 複数移行ツールの統合ダッシュボード:MGN・DMS・SAP on AWS・Refactor Spaces の進捗を 1 つの画面で可視化
✅ アプリケーション単位の進捗管理:サーバー / DB / マイクロサービスをビジネスアプリケーションにグループ化
✅ 自動ポートフォリオ分析:Application Discovery Service のデータを取り込み、ウェーブ設計を自動提案
✅ ステークホルダーダッシュボード:読み取り専用権限で移行進捗をリアルタイム共有
✅ コスト追跡:移行リソースへの自動タグ付けで Cost Explorer による移行別コスト分析
✅ パートナーツール統合:notify-migration-task-state API で CloudEndure・Carbonite 等の進捗を統合
このサービスを選ぶ理由
なぜ AWS Migration Hub なのか?
-
複数ツール・複数ウェーブの一元管理
- データセンター閉鎖プロジェクト(500 台以上のサーバー)では、MGN(物理・仮想サーバー)・DMS(DB)・SAP on AWS(ERP)が並行実行される
- Migration Hub は “Wave 1”(非本番環境)→ “Wave 2”(本番前)→ “Wave 3”(本番)の進捗を統一ダッシュボードで管理
- 従来:各ツールのコンソール × 3~4 個を定期確認 → 1 つの Dashboard で完結
-
アプリケーション依存関係の自動反映
- Application Discovery Service でスキャンした依存関係(「Webサーバーは DBサーバーに依存」など)が自動的に Migration Hub に反映
- ウェーブ設計時に依存関係の漏れによる移行失敗を事前防止
- 例:DB 移行完了前に APP サーバーのカットオーバーを実行すると警告・ブロック
-
PMO・ステークホルダーへのセルフサービスレポーティング
- 移行プロジェクトの経営陣・PMO が読み取り専用の Migration Hub ダッシュボードにアクセス
- 進捗率(30% 完了、全体 100 台中 30 台)がリアルタイムで表示される
- 週次・月次レポート作成の手作業が不要
-
複数 AWS リージョン・複数アカウントの統合管理
- グローバル企業で複数リージョンに移行する場合、ホームリージョンから全リージョンのサーバー進捗を一元追跡
- スポークアカウント(各リージョン)での移行がハブリージョンで自動集約される
- 従来:各リージョン × 各アカウントのコンソール確認が必要 → 1 つのハブで完結
-
パートナーツール連携
- AWS 認定パートナー(Cloudability・RiverMeadow・Turbonomic など)の移行進捗も notify-migration-task-state API で統合
- ハイブリッド移行ツール環境での統一管理
このサービスを選ばない理由
- 小規模移行(サーバー < 10 台):個別ツール(MGN・DMS)で十分
- 単一ツール用途:MGN のみ使用する場合、Migration Hub の価値は限定的
- AWS 以外のクラウド移行(主に Azure・GCP):Azure Migrate・Google Cloud Migrate の方が適切
アーキテクチャと設計原則
全体構成図(Mermaid 1)
graph TB
subgraph OnPrem["On-Premises / Multi-Cloud"]
SRV["Source Servers<br/>(Physical/Virtual)<br/>Windows / Linux"]
DB["Source Databases<br/>(Oracle / SQL Server<br/>MySQL / PostgreSQL)"]
APP["Applications<br/>(Monolith / Distributed)"]
end
subgraph DiscoveryLayer["Discovery & Analysis Layer"]
ADS["Application Discovery Service<br/>(Agent / Agentless Scan)<br/>Dependency Mapping"]
SR["Strategy Recommendations<br/>(7R Analysis)<br/>Rehost/Replatform/Refactor"]
end
subgraph MigrationTools["Migration Tools Layer"]
MGN["Application Migration Service<br/>(Replication Agent)<br/>Lift & Shift"]
DMS["Database Migration Service<br/>(Full Load + CDC)<br/>Schema Conversion"]
SAP["SAP on AWS<br/>(HANA Migration)<br/>Homogeneous System Copy"]
RS["Refactor Spaces<br/>(Strangler Fig Pattern)<br/>Microservices Extraction"]
end
subgraph MigrationHub["Migration Hub (Central Dashboard)"]
HUB["Migration Hub Console<br/>(Home Region)"]
APP_GRP["Application Groups<br/>(Logical Grouping)"]
WAVE["Wave Management<br/>(Batch Sequencing)"]
STATUS["Progress Tracking<br/>(NOT_STARTED→IN_PROGRESS→COMPLETED)"]
TAGS["Auto-Tagging<br/>(Cost Allocation)"]
end
subgraph AWS["AWS Target Infrastructure"]
EC2["EC2 Instances<br/>(Migrated Servers)"]
RDS["RDS / Aurora<br/>(Migrated Databases)"]
ECS["ECS / Fargate<br/>(Containerized Apps)"]
S3["S3 / DataSync<br/>(Data Storage)"]
end
subgraph Monitoring["Monitoring & Reporting"]
CW["CloudWatch Metrics<br/>(Migration Progress)"]
CE["Cost Explorer<br/>(Cost per Application)"]
REPORTS["Custom Reports<br/>(PMO Dashboard)"]
end
ADS -->|Sends Dependencies| HUB
SR -->|Sends Recommendations| HUB
MGN -->|Reports Progress| HUB
DMS -->|Reports Progress| HUB
SAP -->|Reports Progress| HUB
RS -->|Reports Progress| HUB
HUB -->|Manages| APP_GRP
HUB -->|Orchestrates| WAVE
HUB -->|Tracks| STATUS
HUB -->|Applies| TAGS
TAGS -->|Integration| CE
STATUS -->|Metrics| CW
HUB -->|Data for| REPORTS
MGN -->|Deploys| EC2
DMS -->|Deploys| RDS
SAP -->|Deploys| RDS
RS -->|Deploys| ECS
Migration Hub ホームリージョンの意義
Migration Hub Home Region(ハブ)
│
├─ Global Application Configuration
│ └─ Server Inventory(Cross-Region)
│ └─ Application Groups(グローバル定義)
│ └─ Wave Planning(クロスリージョン)
│
├─ Regional Spoke 1(ap-northeast-1)
│ ├─ MGN Replication Server
│ ├─ Migrated EC2 Instances
│ └─ Status Reports to Hub
│
├─ Regional Spoke 2(us-east-1)
│ ├─ DMS Replication Instance
│ ├─ RDS Target Database
│ └─ Status Reports to Hub
│
└─ Regional Spoke 3(eu-west-1)
├─ SAP HANA Target System
├─ Refactor Spaces Environment
└─ Status Reports to Hub
コアコンポーネント
1. Migration Hub ホーム(グローバルダッシュボード)
役割:複数リージョン・複数ツールの移行進捗を一元集約
| コンポーネント | 説明 | 機能 |
|---|---|---|
| Home Region | ハブリージョン(一度のみ設定) | 全リージョンの移行追跡、Application Groups、Wave Planning |
| Migration Status | 各タスクの状態 | NOT_STARTED / READY_FOR_TEST / TESTING / READY_FOR_CUTOVER / CUTOVER_IN_PROGRESS / CUTOVER_COMPLETED / FAILED |
| Application View | アプリケーション単位の可視化 | サーバー数、DB 数、進捗率(%)、完了予定日 |
| Wave View | ウェーブ単位の管理 | Wave 1(Non-Prod)→ Wave 2(Pre-Prod)→ Wave 3(Prod)の順序制御 |
2. Server Tracking(サーバー追跡)
役割:オンプレミスサーバーの移行状態をリアルタイム監視
# 追跡対象:
- Physical Servers(オンプレミス物理)
- VMware VMs / Hyper-V VMs(仮想マシン)
- GCP / Azure Compute Instances(他クラウド)
- AWS Cross-Region EC2(AWS 内マイグレーション)
3. Application Grouping(アプリケーショングループ化)
役割:複数サーバー・複数 DB を1つのビジネスアプリケーションに統合管理
例:E-commerce Application
├─ Web Servers(3台):ap-northeast-1 で EC2 に移行(MGN)
├─ API Servers(2台):ap-northeast-1 で ECS に移行(Refactor Spaces)
├─ Database(Oracle 100GB):ap-northeast-1 で RDS に移行(DMS)
└─ Shared Storage(NAS 500GB):ap-northeast-1 で EFS に移行(DataSync)
進捗:5/7 リソース完了(約 71%)
4. Wave Planning & Execution(ウェーブ計画・実行)
役割:依存関係を考慮した段階的移行スケジュール
Wave 1(Week 1-2)- Non-Production Validation
├─ Dev Environment(5 台)
├─ Staging Database(Oracle Test 5GB)
└─ Dependency: なし(独立)
Wave 2(Week 3-4)- Production Pre-Migration
├─ Production Database(Oracle 100GB)- DMS CDC 開始
├─ Database Server(1 台)
└─ Dependency: Wave 1 検証完了待ち
Wave 3(Week 5-6)- Production Cutover
├─ Web Servers(5 台)- MGN
├─ API Servers(3 台)- MGN
└─ Dependency: Wave 2 DB 移行完了待ち
5. Discovery Integration(発見機能統合)
役割:Application Discovery Service からのインベントリ・依存関係を取り込み
- Server Inventory:IP・OS・ハードウェアスペック・ネットワーク接続
- Application Dependencies:「App A は DB B に接続」「Service C は Message Queue D を使用」などの依存関係
- Network Flows:サーバー間の通信ポート・プロトコル
6. Auto-Tagging & Cost Allocation(自動タグ付け・コスト配分)
役割:移行リソースに自動タグを付与し、Cost Explorer で application 別コスト追跡
# 自動適用タグ例:
aws-application: "E-commerce"
aws-migration-id: "mh-app-12345"
aws-source-server-id: "ds-0abc1234" # Application Discovery Service
aws-migration-tool: "mgn" # mgn / dms / sap-on-aws
aws-wave: "Wave1"
主要ユースケース
1. エンタープライズデータセンター閉鎖プロジェクト
シナリオ:オンプレミスデータセンター(500 台サーバー、100+ アプリケーション)を 18 か月で AWS に全面移行
Migration Hub の活用:
1. 初期計画フェーズ
→ Application Discovery Service スキャン(500 台)
→ Migration Hub Strategy Recommendations(7R 分析)
→ 400 台 Rehost / 50 台 Replatform / 50 台 Retain 自動分類
2. ウェーブ設計フェーズ
→ Migration Hub の Dependency Mapping で 6 ウェーブに自動分割
→ Wave 1: Non-Prod(4 か月)→ Wave 2: Pre-Prod(6 か月)→ Wave 3-6: Production(12 か月)
→ 依存関係チェック:Wave 1 完了 → Wave 2 実行権限自動付与
3. 進捗追跡フェーズ
→ 週次 PMO meeting で Migration Hub ダッシュボード共有
→ 全 500 台のうち 250 台完了(50%)などリアルタイム表示
→ 遅延アプリ自動検出:「Orders System」Wave 2 予定が 2 週間遅延
4. コスト追跡フェーズ
→ Cost Explorer で Application 別の月間コスト表示
→ 例:「E-commerce App」→ $15,000/月(EC2・RDS・EBS 合算)
2. マルチクラウド移行(Azure → AWS)
シナリオ:Microsoft Azure から AWS への移行(200 台 VM、50 個アプリケーション)
Migration Hub の活用:
1. ホームリージョン設定
→ ap-northeast-1 をハブに設定
→ Azure VM のインベントリを手動 / API 経由で登録
2. ツール統合
→ MGN:Azure VM → EC2(Replication Agent インストール)
→ DMS:SQL Server RDS → Aurora PostgreSQL
→ Refactor Spaces:レガシー .NET → ECS on Fargate
3. 進捗統合
→ MGN コンソール → Migration Hub(自動報告)
→ DMS タスク → Migration Hub(自動報告)
→ Refactor Spaces → Migration Hub(自動報告)
→ 1 つのダッシュボードで 3 ツールの進捗を表示
3. SAP システム移行プロジェクト
シナリオ:オンプレミス SAP ERP(HANA DB 500GB、App Servers 20 台)を AWS に移行
Migration Hub の活用:
1. Application Grouping
→ "SAP Production System" グループ
└─ HANA Database(500GB)
└─ App Servers(20 台)
└─ Dialog Instances(10 台)
2. Strategy & Planning
→ Migration Hub Strategy:SAP on AWS テンプレート推奨
→ Orchestrator:HANA 移行→ App Server デプロイ→テスト→カットオーバー
3. Wave Management
→ Wave 1: SAP Test System(DB 50GB + App 2 台)
→ Wave 2: SAP QA System(DB 100GB + App 4 台)
→ Wave 3: SAP Production(DB 500GB + App 20 台) ← 最大ダウンタイム制約あり
4. Progress Tracking
→ HANA Migration Status(Full Backup → Replication → Apply redo logs)
→ App Server Migration Status(MGN で 20 台の進捗)
→ テスト検証ゲート(Wave 1・2 完了後にのみ Wave 3 実行許可)
4. Refactor Spaces でのモノリス分解
シナリオ:Java モノリシックアプリケーションを段階的にマイクロサービスに分解
Migration Hub の活用:
1. アプリケーショングループ
→ "E-commerce Modernization" グループ
└─ Monolith(Java EAR 1GB、Tomcat 8.0)
└─ Orders Microservice(Lambda + DynamoDB)
└─ Inventory Microservice(ECS + Aurora)
└─ Payments Microservice(Lambda + RDS)
2. リファクタリングウェーブ
→ Wave 1: Payments Microservice 抽出(2 週間)
→ Wave 2: Orders Microservice 抽出(3 週間)
→ Wave 3: Inventory Microservice 抽出(2 週間)
→ Monolith は最終的に削除
3. Strangler Fig Pattern 進捗
→ Refactor Spaces が API Gateway ルーティング管理
→ Migration Hub が抽出ウェーブの進捗追跡
→ Week 8 完了時点で "Monolith 30%" → "Microservices 70%"
5. DR(Disaster Recovery)統合
シナリオ:Elastic Disaster Recovery(DRS)で DR を構築しつつ、移行も同時実施
Migration Hub の活用:
1. 二層管理
→ MGN:本番移行ツール
→ DRS:本番移行中の DR レプリケーション
→ 両者の進捗を Migration Hub で統合表示
2. ウェーブシーケンス
→ DRS Replication:全サーバー継続的にレプリケーション(本番 24h)
→ MGN Replication:各ウェーブのサーバーのみ別途レプリケーション
→ 移行完了後 DRS は廃止
3. リスク管理
→ Migration Hub が "DRS Active" / "MGN Ready" 状態を並行表示
→ ウェーブ実行中に DRS で RPO 秒単位の保護を確認
6. クロスアカウント移行管理
シナリオ:複数 AWS アカウント(Hub Account + 5 Spoke Accounts)でのエンタープライズ移行
Migration Hub の活用:
1. アカウント構成
├─ Hub Account (ap-northeast-1) → Migration Hub ホーム配置
├─ Spoke 1 (ap-northeast-1) → Prod Apps
├─ Spoke 2 (ap-northeast-1) → Non-Prod Apps
├─ Spoke 3 (us-east-1) → Global Apps
├─ Spoke 4 (eu-west-1) → European Prod
└─ Spoke 5 (ap-southeast-1) → APAC Apps
2. ホームリージョンから統一管理
→ 5 つのスポークの全移行進捗を 1 つのダッシュボードで表示
→ Application Groups(全リージョン統合)
→ Wave Planning(クロスアカウント依存関係)
3. IAM 統制
→ Hub Account:Migration Hub Admin 権限
→ Spoke Accounts:読み取り専用(Auto-Tagging で自動コスト追跡)
→ Federation:各アカウントの所有者が自分の移行進捗を確認
7. ハイブリッド移行ツール環境
シナリオ:AWS 内ツール(MGN・DMS)+ パートナーツール(Carbonite・RiverMeadow)を併用
Migration Hub の活用:
1. ツール統合
→ MGN API:AWS Application Migration Service(自動統合)
→ DMS API:AWS Database Migration Service(自動統合)
→ notify-migration-task-state API:Carbonite・RiverMeadow(手動統合)
2. API 呼び出し例(Carbonite の進捗報告)
aws migrationhub notify-migration-task-state \
--progress-update-stream '{"ProgressUpdateStreamName":"Carbonite-Stream"}' \
--migration-task-name "server-windows-prod-01" \
--task '{
"Status":"IN_PROGRESS",
"ProgressPercent":65,
"StatusDetail":"Initial Sync: 65% Complete. Replication ongoing..."
}'
3. ダッシュボード表示
→ 「Orders Application」
├─ MGN サーバー:5 台 / 10 台完了(50%)
├─ DMS DB:1 台 / 1 台完了(100%)
├─ Carbonite サーバー:3 台 / 5 台完了(60%)
└─ 全体進捗:9 台 / 16 台(56%)
設定・操作の具体例
CLI ベースの操作
1. ホームリージョンの設定(必須・最初の 1 回)
# ホームリージョン設定(ap-northeast-1)
aws migrationhub-config create-home-region-control \
--home-region ap-northeast-1 \
--target '{
"Type": "ACCOUNT",
"Id": "123456789012"
}' \
--region us-east-1 # API は常に us-east-1 で呼び出す
# 出力例:
# {
# "HomeRegionControl": {
# "ControlId": "mhc-12345678",
# "HomeRegion": "ap-northeast-1",
# "Target": {
# "Type": "ACCOUNT",
# "Id": "123456789012"
# },
# "RequestedTime": "2026-04-27T10:00:00Z",
# "HomeRegionSetTime": "2026-04-27T10:05:00Z"
# }
# }
# 確認
aws migrationhub-config describe-home-region-control \
--region us-east-1
2. Application Discovery Service との統合
# Application Discovery Service でサーバーを発見(事前実行が必要)
# ここでは発見済みを前提
# Discover されたサーバーを取得
aws discovery describe-servers \
--region ap-northeast-1
# 出力例:
# {
# "serversSnapshot": [
# {
# "serverId": "ds-0abc1234",
# "hostName": "prod-web-01",
# "ipAddress": "192.168.1.100",
# "osName": "Amazon Linux 2",
# "cpuCount": 4,
# "totalMemoryInGB": 16
# },
# ...
# ]
# }
3. Application Group の作成(ビジネスアプリケーション)
# Discovery Service API(同じコンソールから)
aws discovery create-application \
--name "E-commerce Platform v2.0" \
--description "Web + API + Database servers group for e-commerce" \
--region ap-northeast-1
# 出力例:
# {
# "applicationId": "app-12345678"
# }
# サーバーをアプリケーションに関連付け
aws discovery associate-configuration-items-to-application \
--application-configuration-id app-12345678 \
--configuration-ids ds-0abc1234 ds-0def5678 ds-0ghi9012 \
--region ap-northeast-1
# アプリケーション内容確認
aws discovery describe-applications \
--application-configuration-id-list app-12345678 \
--region ap-northeast-1
4. パートナーツールの進捗報告(notify API)
# Carbonite、RiverMeadow などのサードパーティ移行ツールが使用
# ツール側から定期的に呼び出して進捗を報告
aws migrationhub notify-migration-task-state \
--progress-update-stream '{
"ProgressUpdateStreamName": "Carbonite-Migration-Stream"
}' \
--migration-task-name "server-windows-prod-db-01" \
--task '{
"Status": "IN_PROGRESS",
"ProgressPercent": 45,
"StatusDetail": "Initial replication: 45% complete. Estimate 3 hours to completion"
}' \
--region ap-northeast-1
# タスク状態確認
aws migrationhub list-migration-tasks \
--resource-identifier-hint "server-windows-prod-db-01" \
--region ap-northeast-1
# 出力例:
# {
# "MigrationTaskSummaryList": [
# {
# "ProgressPercent": 45,
# "Status": "IN_PROGRESS",
# "MigrationTaskName": "server-windows-prod-db-01",
# "ProgressUpdateStream": "Carbonite-Migration-Stream",
# "UpdateDateTime": "2026-04-27T14:30:00Z"
# }
# ]
# }
5. ウェーブ管理(MGN Integration)
# ウェーブ作成(MGN ツール側で実行)
aws mgn create-wave \
--name "Wave 1 - Non-Production" \
--description "Development and Staging servers" \
--region ap-northeast-1
# 出力例:
# {
# "wave": {
# "waveID": "wave-12345678",
# "waveName": "Wave 1 - Non-Production",
# "description": "Development and Staging servers",
# "creationDateTime": "2026-04-27T10:00:00Z"
# }
# }
# Migration Hub でこのウェーブの進捗を追跡
# (MGN が自動的に進捗報告するため手動操作は不要)
SDK ベースの操作(Python)
1. Application Discovery & Migration Hub 統合
import boto3
from datetime import datetime
# クライアント初期化
discovery_client = boto3.client('discovery', region_name='ap-northeast-1')
migrationhub_client = boto3.client('migrationhub', region_name='ap-northeast-1')
# Step 1: Discovered servers 取得
def get_discovered_servers():
response = discovery_client.describe_servers()
servers = response['serversSnapshot']
print(f"Found {len(servers)} servers")
return servers
# Step 2: Application group 作成
def create_application_group(app_name, app_description):
response = discovery_client.create_application(
name=app_name,
description=app_description
)
app_id = response['applicationId']
print(f"Created application: {app_id}")
return app_id
# Step 3: サーバーをアプリケーションに関連付け
def associate_servers_to_app(app_id, server_ids):
response = discovery_client.associate_configuration_items_to_application(
applicationConfigurationId=app_id,
configurationIds=server_ids
)
print(f"Associated {len(server_ids)} servers to {app_id}")
return response
# Step 4: Migration task state を報告
def report_migration_progress(task_name, progress_percent, status):
response = migrationhub_client.notify_migration_task_state(
ProgressUpdateStream={'ProgressUpdateStreamName': 'Python-SDK-Stream'},
MigrationTaskName=task_name,
Task={
'Status': status, # IN_PROGRESS, COMPLETED, FAILED
'ProgressPercent': progress_percent,
'StatusDetail': f'Progress update: {datetime.now().isoformat()}'
}
)
print(f"Reported {task_name}: {progress_percent}% {status}")
return response
# 実行例
if __name__ == "__main__":
# サーバー取得
servers = get_discovered_servers()
server_ids = [s['serverId'] for s in servers[:3]] # 最初の 3 台
# アプリケーショングループ作成
app_id = create_application_group(
app_name="Production E-commerce",
app_description="Web + API servers"
)
# サーバー関連付け
associate_servers_to_app(app_id, server_ids)
# 進捗報告
report_migration_progress(
task_name="ecommerce-migration-wave1",
progress_percent=30,
status="IN_PROGRESS"
)
IaC ベースの操作(CloudFormation)
Discovery & Application Group(CloudFormation/CDK)
AWSTemplateFormatVersion: '2010-09-09'
Description: 'Application Discovery Service + Migration Hub Integration'
Resources:
# Application Discovery Service Continuous Export
ContinuousExport:
Type: AWS::ApplicationDiscoveryService::ContinuousExport
Properties:
S3BucketName: !Ref DiscoveryDataBucket
# Discovery Data Bucket
DiscoveryDataBucket:
Type: AWS::S3::Bucket
Properties:
BucketName: !Sub 'migration-discovery-data-${AWS::AccountId}'
VersioningConfiguration:
Status: Enabled
PublicAccessBlockConfiguration:
BlockPublicAcls: true
BlockPublicPolicy: true
IgnorePublicAcls: true
RestrictPublicBuckets: true
# Migration Hub Home Region Control(別途 CLI で実行)
# Note: CloudFormation では直接サポートなし。以下は疑似コード
# aws migrationhub-config create-home-region-control \
# --home-region ap-northeast-1 \
# --target Type=ACCOUNT,Id=<account-id>
# CloudWatch Log Group for Migration Tracking
MigrationLogGroup:
Type: AWS::Logs::LogGroup
Properties:
LogGroupName: /aws/migration/hub-tracking
RetentionInDays: 90
# IAM Role for Migration Hub API calls
MigrationHubRole:
Type: AWS::IAM::Role
Properties:
RoleName: MigrationHubAPIRole
AssumeRolePolicyDocument:
Version: '2012-10-17'
Statement:
- Effect: Allow
Principal:
Service:
- discovery.amazonaws.com
- migrationhub.amazonaws.com
Action: sts:AssumeRole
Policies:
- PolicyName: MigrationHubAccess
PolicyDocument:
Version: '2012-10-17'
Statement:
- Effect: Allow
Action:
- discovery:*
- migrationhub:*
- s3:GetObject
- s3:PutObject
- logs:PutLogEvents
Resource: '*'
Outputs:
DiscoveryBucketName:
Value: !Ref DiscoveryDataBucket
Description: S3 bucket for discovery data
MigrationHubRoleArn:
Value: !GetAtt MigrationHubRole.Arn
Description: IAM role ARN for Migration Hub API access
類似サービス比較表
| 項目 | Migration Hub | Cloudability Migration | RVTools | Azure Migrate | Google Cloud Migrate | AWS Application Composer |
|---|---|---|---|---|---|---|
| 用途 | 複数移行ツール統合ダッシュボード | ポートフォリオ分析・コスト最適化 | VMware インベントリ管理 | Azure/Hybrid 移行管理 | GCP 移行管理 | アプリケーションモダナイゼーション |
| Discovery | Application Discovery Service と統合 | 自社スキャナー | vCenter スキャン | Agent + Agentless | Estimation tools | Manual input |
| ツール統合 | ✅ MGN・DMS・SAP 等(自動) | サードパーティ多数 | ❌ 非対応 | ✅ Azure ツール統合 | ✅ GCP ツール統合 | ❌ 非統合 |
| 進捗追跡 | ✅ リアルタイム | ✅ ダッシュボード | ✅ レポート | ✅ リアルタイム | ✅ リアルタイム | ❌ 非対応 |
| 7R 推奨 | ✅ Strategy Recommendations と統合 | ✅ TCO 分析含む | ❌ 非対応 | ✅ Assessment included | ✅ Estimation tools | ❌ 非対応 |
| Wave Planning | ✅ Dependency-aware | ❌ 手動 | ❌ 非対応 | ✅ Migration groups | ❌ 非対応 | ❌ 非対応 |
| Auto-Tagging | ✅ 移行リソース自動タグ | ❌ 非対応 | ❌ 非対応 | ✅ Tags applied | ❌ 非対応 | ❌ 非対応 |
| マルチクラウド | ✅ MGN(VM + Physical) | ❌ AWS 限定 | ❌ VMware 限定 | ✅ Azure + Hybrid | ✅ GCP 限定 | ❌ AWS 限定 |
| 価格 | 無料 | $$(ポートフォリオスキャン) | $ (1 回限りライセンス) | $(Discovery) | $(Estimation) | 無料(設計のみ) |
| 対象スケール | 大規模移行(100+ apps) | 中~大規模 | 中規模以下 | 大規模移行 | 大規模移行 | 小~中規模 |
ベストプラクティス
1. ホームリージョン選定
✅ 推奨:
- グローバル企業では最大移行リソースが集約されるリージョンをハブに(例:日本企業なら ap-northeast-1)
- 低遅延・高可用性リージョンを選定(us-east-1 は世界的ハブだが、リージョン遠い場合は検討)
❌ アンチパターン:
- 複数リージョンに分散したハブ選定(1 つだけ)
- 移行開始後のホームリージョン変更(変更不可)
2. Application Group の設計
✅ 推奨:
- ビジネスアプリケーション単位でグループ化(「CRM」「在庫管理」「決済」)
- 各アプリの依存関係を明確にマッピング(Application Discovery Service で自動検出)
- グループ内に 3~50 サーバーの粒度が最適
❌ アンチパターン:
- 技術スタック単位のグループ化(「Web Servers」「DB Servers」)→ ビジネス価値が不透明
- 1 グループに 500+ サーバー(ダッシュボードが冗長化)
- グループ内の依存関係を無視したウェーブ設計
3. Wave Planning & Sequencing
✅ 推奨:
- Wave 1(非本番環境)→ Wave 2(ステージング)→ Wave 3(本番)
- 各ウェーブで 1~2 週間の検証期間を設ける
- 進捗追跡:Wave N 完了 → Wave N+1 承認 → 実行
❌ アンチパターン:
- すべてのサーバーを同時に 1 Wave で移行
- 依存関係なしでランダムにウェーブを実行
- Wave N 実行中に Wave N+1 計画なし(スケジュール遅延)
4. ステークホルダーコミュニケーション
✅ 推奨:
- Migration Hub ダッシュボードへの読み取り専用アクセスを経営陣・PMO に付与
- 週次 migration status meeting で具体的な進捗数値を共有(「X/Y サーバー完了」)
- リスクサーバーを自動検出・報告(遅延、失敗サーバー)
❌ アンチパターン:
- 毎週手動で Excel レポート作成(時間がかかり、更新が遅れやすい)
- 抽象的な進捗報告(「順調です」)
- ステークホルダーへのアクセス権なし(情報隔離)
5. パフォーマンス最適化
✅ 推奨:
- 複数ウェーブの並行実行(Wave 1 検証中に Wave 2 実行開始)
- Application Group 内で非依存サーバーは並行リプリケーション
- Migration Hub メトリクスを CloudWatch に連携(カスタム監視ダッシュボード)
❌ アンチパターン:
- Wave 1 完了待ち → Wave 2 開始(直列実行で全体スケジュール延長)
- リプリケーション帯域幅を制限しない(ネットワーク過負荷)
6. テスト検証フェーズの統制
✅ 推奨:
- ウェーブごとに Test Cutover → Validation → Go/No-Go Decision
- Migration Hub で「Ready for Cutover」状態を明示的に設定
- Application 単位の SLA を定義(「Web App は 99.9% availability」)
❌ アンチパターン:
- テストカットオーバーをスキップしてそのまま本番カットオーバー
- テスト検証の Go/No-Go 判定基準なし(属人的判断)
トラブルシューティング表
| 症状 | 原因 | 対応 |
|---|---|---|
| Migration Hub ダッシュボードに MGN 進捗が表示されない | MGN の進捗報告が始まっていない(初期化未完了) | aws mgn initialize-service 実行確認 |
| Application Group 作成後、サーバーが関連付けされない | サーバーが Application Discovery Service で発見されていない | aws discovery describe-servers で確認後、コンフィグ ID を正確に入力 |
| ウェーブ実行権限が取得できない | 前ウェーブの依存関係が未完了 | 依存サーバーの移行状態を「COMPLETED」に更新 |
| notify-migration-task-state API で 403 エラー | IAM 権限不足(migrationhub:NotifyMigrationTaskState) | IAM ロールに migrationhub:* 権限を追加 |
| ホームリージョン設定後に別リージョンに変更したい | ホームリージョンは一度設定すると変更不可 | 新アカウントで再度セットアップするか、サポートに相談 |
| Cost Explorer に自動タグが反映されない | タグベース Cost Allocation が無効 | AWS Billing で “Cost Allocation Tags” → “User-Defined” で activation |
| Discovery データが古い(オンプレミスの最新構成が反映されていない) | Continuous Export が停止または失敗 | Application Discovery Service コンソール → Continuous Export 状態確認・再開 |
2025-2026 最新動向
1. AWS Migration Hub 新規顧客受け入れ終了(2025 年 11 月 7 日)
詳細:
- AWS Migration Hub は 2025 年 11 月 7 日をもって新規顧客へのサービス提供を中止
- 既存顧客は引き続き利用可能(最低 1 年間はサポート継続予定)
- 代替サービス:AWS Transform(より統合的な移行・モダナイゼーション プラットフォーム)
代替戦略:
- 既存 Migration Hub ユーザー → AWS Transform への段階的移行
- 新規移行プロジェクト → AWS Transform を推奨
2. AWS Transform プラットフォーム(2025 年以降)
概要:Migration Hub の後継として、以下を統合:
- アプリケーションディスカバリー & アセスメント
- 複数移行ツール管理
- クラウドネイティブ化戦略の提案
- AI による最適化推奨
利点:
- Migration Hub よりも包括的な移行・モダナイゼーション機能
- AI/ML による 7R 推奨の精度向上
- Cost Optimization Engine との統合
3. CloudEndure 廃止予定(2026 年 3 月)
詳細:
- CloudEndure は 2026 年 3 月 31 日でサービス終了予定
- 既存ユーザーは AWS Application Migration Service(MGN)への無料移行を推奨
4. Application Discovery Service の拡張
最新機能:
- agentless scan の改善(より詳細な依存関係検出)
- クラウド VM(Azure・GCP)の発見機能強化
- API 速度向上(大規模スキャンで 3x 高速化)
5. Orchestrator の機能拡張
計画中:
- Orchestrator テンプレートの拡張(Oracle → PostgreSQL、Monolith → Kubernetes など)
- カスタムワークフロー定義の簡素化(GUI ベースの Workflow Builder)
学習リソース・参考文献
公式ドキュメント
| リソース | URL | 説明 |
|---|---|---|
| Migration Hub User Guide | https://docs.aws.amazon.com/migrationhub/latest/ug/ | 公式ガイド(ホームリージョン、ダッシュボード、API) |
| Migration Hub API Reference | https://docs.aws.amazon.com/migrationhub/latest/APIReference/ | API リファレンス(notify-migration-task-state など) |
| Migration Hub Pricing | https://aws.amazon.com/migration-hub/pricing/ | サービス価格(基本無料、ツール別料金) |
| Application Discovery Service User Guide | https://docs.aws.amazon.com/application-discovery/latest/userguide/ | Discovery 統合ガイド |
| Application Migration Service User Guide | https://docs.aws.amazon.com/mgn/latest/ug/ | MGN 統合ガイド |
| Database Migration Service User Guide | https://docs.aws.amazon.com/dms/latest/userguide/ | DMS 統合ガイド |
AWS 公開トレーニング & ウェビナー
| リソース | 説明 | リンク |
|---|---|---|
| Migrating to AWS | AWS Migration Competency Center が提供する包括的なコース | aws.training |
| AWS Migration Hub を使用した大規模エンタープライズ移行 | 日本語ウェビナー(定期開催) | events.aws.com/ja |
| CloudEndure → MGN 移行ガイド | CloudEndure ユーザー向けの MGN へのアップグレードパス | aws.amazon.com/blogs |
コミュニティ・ベンダー資料
| リソース | 説明 |
|---|---|
| AWS Migration Hub on AWS Marketplace | 統合パートナーソリューション(Turbonomic、CloudPhysics など) |
| AWS Well-Architected Migration Lens | 移行アーキテクチャのベストプラクティス |
| GitHub: AWS Migration Hub Samples | サンプルコード・Terraform モジュール |
| Medium: AWS Migration Stories | 実際のケーススタディ記事 |
実装例・チェックリスト
実装例:エンタープライズ移行プロジェクトのセットアップ
#!/bin/bash
# Migration Hub 全体セットアップスクリプト
set -e
ACCOUNT_ID="123456789012"
HOME_REGION="ap-northeast-1"
SPOKE_REGIONS=("ap-northeast-1" "us-east-1" "eu-west-1")
echo "=== Migration Hub セットアップ開始 ==="
# Step 1: ホームリージョン設定
echo "[1/5] ホームリージョン設定 ($HOME_REGION)..."
aws migrationhub-config create-home-region-control \
--home-region $HOME_REGION \
--target Type=ACCOUNT,Id=$ACCOUNT_ID \
--region us-east-1
# Step 2: Discovery 初期化
echo "[2/5] Application Discovery Service 初期化..."
for region in "${SPOKE_REGIONS[@]}"; do
aws discovery start-continuous-export \
--region $region || echo "Already started in $region"
done
# Step 3: IAM ロール作成
echo "[3/5] IAM ロール作成..."
cat > /tmp/trust-policy.json << 'EOF'
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": ["discovery.amazonaws.com", "migrationhub.amazonaws.com"]
},
"Action": "sts:AssumeRole"
}
]
}
EOF
aws iam create-role \
--role-name MigrationHubAdminRole \
--assume-role-policy-document file:///tmp/trust-policy.json || echo "Role already exists"
aws iam attach-role-policy \
--role-name MigrationHubAdminRole \
--policy-arn arn:aws:iam::aws:policy/AWSApplicationDiscoveryServiceAccess
aws iam attach-role-policy \
--role-name MigrationHubAdminRole \
--policy-arn arn:aws:iam::aws:policy/AWSApplicationMigrationServiceFullAccess
# Step 4: CloudWatch ログ設定
echo "[4/5] CloudWatch ログ設定..."
aws logs create-log-group \
--log-group-name /aws/migration/hub-tracking \
--region $HOME_REGION || echo "Log group already exists"
aws logs put-retention-policy \
--log-group-name /aws/migration/hub-tracking \
--retention-in-days 90 \
--region $HOME_REGION
# Step 5: S3 バケット作成(Discovery データ保存)
echo "[5/5] Discovery データ用 S3 バケット作成..."
BUCKET_NAME="migration-discovery-data-${ACCOUNT_ID}"
aws s3 mb s3://$BUCKET_NAME \
--region $HOME_REGION || echo "Bucket already exists"
echo "=== Migration Hub セットアップ完了 ==="
echo "ホームリージョン: $HOME_REGION"
echo "Discovery データバケット: s3://$BUCKET_NAME"
echo "CloudWatch ログ: /aws/migration/hub-tracking"
マイグレーションチェックリスト
事前準備フェーズ
-
[ ] ステークホルダー準備
- [ ] CIO・CFO から移行予算・スケジュール承認
- [ ] PMO 体制確立(Migration Lead、Wave Lead、Infrastructure Lead)
- [ ] 経営陣への概要説明(移行リスク・コスト・メリット)
-
[ ] インベントリ & 分析フェーズ
- [ ] Application Discovery Service agent 配置(オンプレ全サーバーへ)
- [ ] 1 週間以上スキャンして依存関係を自動検出
- [ ] Migration Hub Strategy Recommendations で 7R 分析(Rehost / Replatform / Refactor 分類)
- [ ] Application Group 定義(ビジネスアプリケーション粒度)
-
[ ] AWS 環境準備
- [ ] AWS Account & IAM 権限設定(Migration Hub Admin Role)
- [ ] ホームリージョン決定・設定
- [ ] Network(VPC・セキュリティグループ・VPN)準備
- [ ] Staging 環境リソース確保
計画フェーズ
-
[ ] Wave 計画
- [ ] Wave 1(Non-Production)定義:5~10 アプリケーション
- [ ] Wave 2(Pre-Production)定義:15~20 アプリケーション
- [ ] Wave 3+ (Production)定義:残存アプリケーション
- [ ] 各ウェーブの依存関係チェック(Dependency graph)
-
[ ] リソース計画
- [ ] MGN Staging Area subnet / EBS 容量確認
- [ ] DMS Replication Instance サイズ決定(ソースDB サイズに応じた t3.3xlarge 等)
- [ ] Network 帯域幅確保(オンプレ ← → AWS)
実行フェーズ
-
[ ] Wave 1 移行
- [ ] MGN / DMS Replication 開始(Initial sync)
- [ ] Test Cutover 実行(テスト用 EC2 起動)
- [ ] アプリケーション検証(ログ確認、機能テスト、パフォーマンス測定)
- [ ] 問題があれば修正・ロールバック
-
[ ] Wave 2・3+ 移行
- [ ] Wave 1 完了→ Wave 2 Approval→実行
- [ ] 同様に Test Cutover → 検証 → 本番 Cutover
- [ ] Migration Hub でウェーブ進捗を追跡
本番カットオーバーフェーズ
-
[ ] 最終チェック
- [ ] DMS CDC(Change Data Capture)が 0 秒 latency か確認
- [ ] MGN テストカットオーバーの全テスト合格
- [ ] ロールバック計画・リハーサル実施
-
[ ] カットオーバー実行
- [ ] メンテナンスウィンドウ設定(オンプレ・AWS 通知)
- [ ] MGN / DMS start-cutover コマンド実行
- [ ] DNS / Load Balancer を AWS に切り替え
- [ ] ビジネス検証(1~2 時間)
-
[ ] カットオーバー後
- [ ] オンプレサーバーのレプリケーション停止
- [ ] 30 日間のロールバック期間を設定(緊急時対応)
- [ ] AWS 環境のリソース最適化(Right-sizing)
まとめ
AWS Migration Hub は 「複数の AWS 移行ツール・パートナーツールの進捗を一元管理し、ポートフォリオ全体の可視化・ステークホルダー報告を自動化するダッシュボード」 である。
主な価値
- 複数ウェーブ・複数ツールの統合管理:MGN・DMS・SAP on AWS・Refactor Spaces を 1 つのダッシュボードで進捗追跡
- Application 依存関係の自動反映:Application Discovery Service で発見した依存関係がウェーブ計画に自動反映
- ステークホルダーへのセルフサービス報告:PMO・経営陣が読み取り専用で進捗をリアルタイム確認
- 大規模移行の統制:500+ サーバー移行プロジェクトでウェーブ・Application・リージョンを統一管理
- コスト追跡の自動化:移行リソースへの自動タグ付けで Application 別コスト分析が可能
注意点
- 新規顧客受け入れ終了(2025 年 11 月 7 日):新規プロジェクトは AWS Transform への移行を検討
- 依存関係の正確な入力が必須:Wave 計画の精度は Application Discovery Service のスキャン品質に依存
- 手動操作の併用が必要:ダッシュボール提供のみで、実際の移行実行は MGN・DMS など個別ツールを使用
適用判定
✅ 使うべき:
- 複数の AWS 移行ツール(MGN・DMS 等)を並行利用
- 数十~数百のアプリケーション・サーバーの移行
- 複数リージョン・複数ウェーブでの段階的移行
- PMO・ステークホルダーへの定期的な進捗報告が必要
❌ 不要:
- 単一ツール(MGN のみ)の小規模移行
- Azure・GCP が主体(Azure Migrate・Google Cloud Migrate を推奨)
最終更新:2026-04-27
バージョン:v2.0