Home
Get Started
実践ガイド
外部仕様設計
バッチ処理仕様設計
UAC 仕様設計
データ仕様設計
インフラ設計
移行計画
テスト方針・計画
開発プロセス・規約
インフラ 移行性設計
既存システムから新環境への円滑な移行と業務継続性を実現するため、インフラ・ミドルウェアレベルでの移行計画、移行方式、移行対象を明確化し、データ整合性とダウンタイム最小化を保証します。
🎯 概要
- 目的: 既存システムから新環境への移行、または将来的な環境変更を見据えた移行性を確保するため、インフラ・ミドルウェアレベルでの移行計画、移行方式、移行対象を明確にし、円滑な移行と業務継続性を実現する
- スコープ: システム移行のスケジュール、ダウンタイムの制約、移行方式(段階的/一括)、移行対象(機器・データ)、移行リハーサル計画をカバーする。アプリケーションレベルのデータ移行ロジックやマイグレーションスクリプトの詳細は対象外
- 推奨する実施タイミング: 基本設計の中盤以降、インフラ構成とデータ設計が固まった段階で実施する
- 関連するステークホルダー: プロジェクトマネージャー、インフラチーム、運用チーム、データベース管理者、セキュリティチーム
📥 重要な前提知識・インプット
- 前提知識: システム移行プロジェクトの計画手法、データ移行技術(ETL、レプリケーション、オンライン移行)、IaC(Infrastructure as Code)、リスク管理、切り戻し戦略
- インプット: インフラ設計書、データベース設計書、移行性要件(非機能要件書の移行性セクション)、既存システムの構成情報、データ量・データ形式の調査結果、移行期間・ダウンタイムの制約条件
📄 成果物の定義
- ドキュメントテンプレート: 📄
[テンプレ]インフラ 移行性設計書
- 必須要素: 移行計画書、移行スケジュール、移行対象一覧(機器・データ)、移行手順書、移行リハーサル計画、切り戻し手順書、移行後テスト計画書、リスク管理表
✅ 品質基準・レビュー観点
✅ 品質チェックリスト:
| チェック項目 | チェック内容 |
|---|---|
| 移行スケジュールの実現可能性 | 移行期間とダウンタイムの制約が守られているか |
| データ整合性の保証 | データ移行前後の検証方法が明確に定義されているか |
| 切り戻し計画の実効性 | 切り戻し手順が明確で、リハーサルで検証されているか |
| リハーサルの完全性 | 本番移行の前に複数回のリハーサルが計画されているか |
| リスク管理の網羅性 | 想定されるリスクと対策が文書化されているか |
👁️🗨️ レビュー観点:
- 要件との整合性: 移行性の非機能要件(移行期間、ダウンタイム、データ量)が計画に反映されているか
- 技術的実現可能性: 移行ツール・手法が技術的に実行可能で、リソースが確保されているか
- 業務継続性の確保: ダウンタイムが最小化され、業務への影響が適切にコントロールされているか
- リスク対策の妥当性: 特定されたリスクに対する対策が具体的で実効性があるか
🧪成果物のサンプル
# 移行性(Portability)
## 移行性の基本方針
システムを既存環境から新環境へ、または将来的に異なる環境へ円滑に移行するためのインフラ・ミドルウェア戦略を以下に示す。
### 移行計画方針
- **ダウンタイムの最小化**: 計画的なシステム停止時間を最小限に抑える移行方式を採用
- **データ整合性の確保**: 移行前後でデータの完全性と整合性を保証する手順を確立
- **切り戻し計画**: 予期せぬ問題発生時に、迅速かつ確実に旧環境へ切り戻せる体制と手順を整備
### 移行方式方針
- **段階的移行**: 大規模な移行では、リスクを低減するため段階的な移行方式を検討
- **自動化の推進**: 移行作業の自動化を推進し、人為的ミスを排除し、効率化を図る
- **環境差異の吸収**: 異なるインフラ環境間での差異を吸収できるよう、標準化されたミドルウェア構成やIaC(Infrastructure as Code)を活用
### 移行対象方針
- **データ移行の優先**: 業務データの移行を最優先とし、データ損失や破損のリスクを排除
- **設定情報の管理**: インフラ・ミドルウェアの設定情報を一元的に管理し、新環境への適用を容易にする
---
## 移行性要件の実現方式
### D1. 移行時期 (Migration Period)
#### D1.1 移行のスケジュール (Migration Schedule)
##### D1.1.1 システム移行期間
- **要件**: 移行作業計画から本稼働までの期間を2ヶ月以内とする
- **実現方式・仕様**:
- 移行計画フェーズ(1ヶ月): 移行対象の洗い出し、データ移行方式の決定、リハーサル計画策定
- 移行実行フェーズ(1ヶ月): 環境構築、データ移行、システムテスト、本稼働
- IaC(Infrastructure as Code)を活用し、新環境のインフラ構築期間を短縮
##### D1.1.2 システム停止可能日時
- **要件**: 本番システム停止は、週末の深夜帯(土曜日 0:00 - 日曜日 6:00)の最大6時間とする
- **実現方式・仕様**:
- データベースのオンライン移行(例: AWS DMS, Azure Data Migration Service)を検討し、ダウンタイムを最小化
- DNS切り替えによるトラフィック誘導で、サービス停止時間をユーザーから見えない形で吸収
- 移行作業は複数回のリハーサルを実施し、手順の確立と時間計測を行う
##### D1.1.3 並行稼働の有無
- **要件**: 移行期間中の旧システムと新システムの並行稼働は行わない
- **実現方式・仕様**:
- 新システムへの一括切り替え(Big Bang方式)を採用
- 移行前のデータ同期は最終切り替え直前まで実施し、データ差異を最小化
- 切り替え後は、旧システムは参照専用として一定期間保持し、切り戻しに備える
### D2. 移行方式 (Migration Method)
#### D2.1 システム展開方式 (System Deployment Method)
##### D2.1.1 拠点展開ステップ数
- **要件**: 複数拠点への展開は、段階的に実施し、各拠点での安定稼働を確認後に次拠点へ展開
- **実現方式・仕様**:
- 拠点A(小規模)で先行導入し、運用ノウハウを蓄積
- 拠点B(中規模)へ展開
- 拠点C(大規模)へ最終展開
- 各拠点へのインフラ展開は、IaCテンプレートを用いて標準化
##### D2.1.2 業務展開ステップ数
- **要件**: 新システムへの業務移行は、重要度の高い業務から段階的に実施する
- **実現方式・仕様**:
- フェーズ1: コア業務(例: 受注管理)を新システムへ移行
- フェーズ2: サブ業務(例: 顧客管理、在庫管理)を新システムへ移行
- フェーズ3: 周辺業務(例: レポート生成)を新システムへ移行
- 各フェーズで必要なインフラリソースの増強を計画的に実施
### D3. 移行対象(機器) (Migration Target (Equipment))
#### D3.1 移行設備 (Migration Equipment)
##### D3.1.1 設備・機器の移行内容
- **要件**: 旧環境の物理サーバー、ネットワーク機器は新システムでは利用せず、すべてクラウドインフラへ移行する
- **実現方式・仕様**:
- 旧環境の物理サーバーは、P2V(Physical to Virtual)ツールを利用せず、クラウド上に新規VMインスタンスを構築
- 旧環境のネットワーク設定は、クラウドのVPC/VNet構成に合わせた設計を新規に実施
- 旧環境のストレージデータは、ネットワーク経由でクラウドのオブジェクトストレージまたはブロックストレージへ移行
### D4. 移行対象(データ) (Migration Target (Data))
#### D4.1 移行データ量 (Migration Data Volume)
##### D4.1.1 移行データ量
- **要件**: データベースデータ総量 1TB、ファイルデータ総量 5TB
- **実現方式・仕様**:
- データベース移行は、マネージドDBサービスのデータ移行ツール(例: AWS DMS)を利用し、オンラインでのデータ転送を実施
- ファイルデータ移行は、専用の高速データ転送サービス(例: AWS Snowball, Azure Data Box)またはネットワーク経由でのrsync/robocopyなどを検討
- 移行データ量に応じたネットワーク帯域の確保と、移行期間の計画
##### D4.1.2 移行データ形式
- **要件**: データベースデータはリレーショナルデータベース形式、ファイルデータはオブジェクトストレージ互換形式
- **実現方式・仕様**:
- データベースは、旧システムのRDBMS(例: Oracle)から新システムのRDBMS(例: PostgreSQL on RDS)へスキーマ変換ツールを用いて移行
- ファイルデータは、旧システムのファイルサーバーからクラウドのオブジェクトストレージ(例: Amazon S3)へ直接移行。必要に応じてファイル名やメタデータの変換を実施
---
## テスト計画(移行性関連)
### 移行リハーサル
- **実施時期**: 本番移行の1ヶ月前までに複数回実施
- **テスト項目**:
- 新環境のインフラ構築手順の検証
- データベース、ファイルデータの移行手順と所要時間の計測
- 切り替え手順(DNS変更、ロードバランサー設定変更など)の検証
- 切り戻し手順の検証
- **合格基準**: 移行手順が確立され、所要時間が要件(システム停止可能日時)内に収まること
### データ整合性検証
- **実施時期**: 移行リハーサル時、および本番移行後
- **テスト項目**:
- 移行前後のデータベースレコード数、テーブル構造、主要データの比較
- ファイルデータのハッシュ値比較、またはファイル数・サイズ比較
- **合格基準**: 移行前後でデータの不整合がないこと
### 性能検証(移行後)
- **実施時期**: 本番移行直後
- **テスト項目**:
- 移行後の新環境におけるシステム全体の応答時間、処理能力
- データベースのCPU使用率、I/O性能
- **合格基準**: 移行後のシステム性能が「性能・拡張性」要件を満たしていること
---
## リスクと対策
| No | リスク | 影響 | 発生確率 | 対策 |
|----|--------|------|---------|------|
| 1 | データ移行失敗・破損 | 業務データ損失、システム復旧不能 | 中 | 複数回の移行リハーサル、データ整合性検証ツールの導入、バックアップ体制の強化 |
| 2 | 移行作業の遅延 | システム停止時間の超過、業務影響 | 中 | 詳細な移行計画とタイムライン策定、自動化ツールの活用、緊急時の人員増強 |
| 3 | 移行後の性能劣化 | サービス品質低下、ユーザー満足度低下 | 中 | 移行後の性能テスト実施、旧環境との性能比較、キャパシティプランニングの再評価 |
| 4 | 切り戻し失敗 | 長期的なシステム停止、業務継続困難 | 低 | 切り戻し手順の確立とリハーサル、旧環境の一定期間保持、データバックアップの確保 |
| 5 | 環境差異による不具合 | システム動作不良、予期せぬエラー発生 | 中 | 開発・テスト環境を本番環境に極力近づける、IaCによる環境構築の標準化 |
| 6 | 移行コストの超過 | 予算オーバー | 中 | 移行ツールの選定と費用対効果分析、クラウドリソースの最適化、専門家による見積もり |
--- 🔄 設計の進め方・プロセス
🏗️ プロセス1: 移行要件の確認と移行対象の洗い出し
設計対象:
非機能要件書の移行性セクションを確認し、移行期間、ダウンタイム、移行対象(機器・データ)を明確にする。
具体例:
- 移行期間の制約(例: 2ヶ月以内)
- システム停止可能な日時・時間帯(例: 週末深夜のみ、最大6時間)
- 並行稼働の有無(新旧システムの同時稼働が必要か)
- 移行対象の機器リスト(サーバー、ネットワーク機器、ストレージ)
- 移行対象のデータリスト(データベース、ファイル、設定情報)
- データ量の調査結果(総量、テーブル別、ファイル形式別)
設計原則:
- 制約の明確化: 移行期間とダウンタイムの制約を明確にし、実現可能な移行方式を選定する
- 移行対象の網羅性: 移行対象を漏れなくリストアップし、見落としによるトラブルを防ぐ
- データ量の正確な把握: データ量を正確に調査し、移行時間とネットワーク帯域の計画に反映する
文書化の推奨表現:
- 移行要件一覧: 移行期間、ダウンタイム、並行稼働の有無を表形式で整理する
- 移行対象一覧: 機器とデータの移行対象を表形式でリストアップし、優先度と移行方法を記載する
- データ量調査結果: データベーステーブル別、ファイル形式別のデータ量を記録する
🏗️ プロセス2: 移行方式と移行スケジュールの策定
設計対象:
移行要件とシステム構成を踏まえ、段階的移行か一括移行かを決定し、移行スケジュールを策定する。
具体例:
- 移行方式の選定(Big Bang方式、段階的移行、拠点別展開、業務別展開)
- 移行スケジュールの策定(移行計画フェーズ、リハーサルフェーズ、本番移行フェーズ)
- 各フェーズのマイルストーンと成果物の定義
- データ移行技術の選定(オンライン移行、オフライン移行、ETL、レプリケーション)
- インフラ構築の自動化方針(IaCの活用、テンプレート化)
設計原則:
- リスクの最小化: 段階的移行によりリスクを分散するか、一括移行で複雑性を減らすか、要件とリスクを評価して選定する
- ダウンタイムの最小化: オンライン移行ツールやDNS切り替えを活用し、ダウンタイムを最小化する
- リハーサルの徹底: 本番移行前に複数回のリハーサルを実施し、手順を確立する
- 自動化の推進: IaCやデータ移行ツールを活用し、人為的ミスを排除する
文書化の推奨表現:
- 移行方式の選定理由: 採用した移行方式のメリット・デメリット、代替案との比較を記載する
- 移行スケジュール: ガントチャートやマイルストーン表で移行計画を視覚化する
- 移行ツール一覧: 使用するデータ移行ツール、IaCツール、自動化ツールを一覧化する
🏗️ プロセス3: 移行手順書と切り戻し手順書の作成
設計対象:
移行作業の具体的な手順と、問題発生時の切り戻し手順を詳細に記述する。
具体例:
- 移行前の準備作業(バックアップ、旧システムの停止手順、データ同期)
- インフラ構築手順(IaCテンプレートの実行、ネットワーク設定、セキュリティグループ設定)
- データ移行手順(データベース移行、ファイル移行、データ整合性検証)
- 切り替え手順(DNS変更、ロードバランサー設定変更、ヘルスチェック確認)
- 切り戻し手順(旧システムへの復帰手順、データロールバック手順)
- 移行後の確認作業(動作確認、性能確認、データ整合性確認)
設計原則:
- 手順の明確性: 作業者が迷わずに実行できるよう、手順を具体的かつ明確に記述する
- チェックポイントの設定: 各ステップにチェックポイントを設け、進捗と品質を確認する
- 切り戻し条件の明確化: どのような状況で切り戻しを実施するか、判断基準を明確にする
- 時間計測: 各作業の所要時間を記録し、ダウンタイムの見積もりに反映する
文書化の推奨表現:
- 移行手順書: 作業ステップを番号付きで記載し、各ステップの担当者、所要時間、チェックポイントを明記する
- 切り戻し手順書: 切り戻しの判断基準、切り戻し手順、切り戻し後の確認項目を記載する
- コマンド・スクリプト: 実行するコマンドやスクリプトをそのまま記載し、コピー&ペーストで実行できるようにする
🏗️ プロセス4: 移行リハーサル計画とリスク管理
設計対象:
移行リハーサルの計画を策定し、想定されるリスクと対策を整理する。
具体例:
- リハーサルの実施回数と実施時期(例: 本番1ヶ月前に3回)
- リハーサルの目的と合格基準(手順の確立、所要時間の計測、切り戻しの検証)
- リハーサル環境の準備(本番環境に近い構成、本番データのサブセット)
- データ整合性検証の方法(レコード数比較、ハッシュ値比較、サンプルデータ検証)
- リスク一覧表の作成(リスク内容、影響度、発生確率、対策、担当者)
設計原則:
- 本番環境との整合性: リハーサル環境を本番環境に極力近づけ、本番移行の精度を高める
- 複数回の実施: リハーサルを複数回実施し、手順の改善と習熟度の向上を図る
- 切り戻しの検証: リハーサルで切り戻し手順も検証し、緊急時に確実に実行できるようにする
- リスクの可視化: リスクを一覧化し、影響度の高いリスクに対して重点的に対策する
文書化の推奨表現:
- リハーサル計画書: リハーサルの実施回数、日時、参加者、実施内容、合格基準を記載する
- リスク管理表: リスクNo、リスク内容、影響度、発生確率、対策、担当者、期限を表形式で整理する
- リハーサル結果報告書: 各リハーサルの実施結果、所要時間、発生した問題と改善策を記録する
🚨 よくある失敗と予防策
🚧 実例収集後、追記予定
📚 参考資料・関連リンク
- 参考文献: 『システム移行プロジェクト実践ガイド』、『Infrastructure as Code』、『AWSデータ移行ガイド』
- 関連する他のガイド: インフラ設計ガイド、データベース設計ガイド、運用設計ガイド、性能・拡張性設計ガイド
- ツール・テンプレート: AWS Database Migration Service (DMS)、Azure Data Migration Service、Terraform、CloudFormation、Ansible
テンプレートサイト: 📄テンプレート集