AWS Application Migration Service
オンプレミスや他クラウドのサーバーを AWS にリフト & シフトで移行するサービスで、継続的レプリケーションによりカットオーバー時のダウンタイムを最小化する
概要
AWS Application Migration Service (MGN) は、物理サーバー、仮想マシン、他クラウドのインスタンスを AWS の EC2 インスタンスとして移行するためのサービスです。ソースサーバーにエージェントをインストールするだけで、ブロックレベルの継続的レプリケーションが開始され、OS やアプリケーションの変更なしにそのまま AWS へ移行できます。テスト起動とカットオーバーの 2 段階プロセスにより、本番切り替え前の動作検証を安全に実施できます。
エージェントベースのブロックレプリケーションが実現する無停止移行
MGN の移行プロセスは、ソースサーバーへの AWS Replication Agent のインストールから始まります。エージェントはディスクのブロックレベルで変更を検知し、AWS 側のステージングエリア (軽量な EC2 インスタンスと EBS ボリューム) に継続的にレプリケーションします。初回の全量同期が完了した後は差分のみが転送されるため、ネットワーク帯域への影響は限定的です。この継続的レプリケーションにより、ソースサーバーは通常どおり稼働し続けながら、AWS 側には常に最新のレプリカが維持されます。カットオーバー時にはレプリカから本番用の EC2 インスタンスを起動し、DNS やロードバランサーの切り替えを行うだけで済むため、ダウンタイムは再起動にかかる数分程度に抑えられます。Azure Migrate も同様のエージェントベース移行を提供していますが、MGN はレプリケーションの遅延が小さく、大規模な移行ウェーブでの並列処理に強みがあります。
テスト起動とカットオーバーの 2 段階プロセス
移行の信頼性を確保するため、MGN はテスト起動 (Test) とカットオーバー (Cutover) の 2 段階を明確に分離しています。テスト起動では、レプリケーションされたデータから EC2 インスタンスを起動し、アプリケーションの動作確認、ネットワーク疎通テスト、パフォーマンス検証を実施します。テスト用インスタンスは本番とは独立した環境で起動されるため、ソースサーバーの稼働に影響を与えません。テストが成功したら、カットオーバーを実行して本番用インスタンスを起動します。起動テンプレートでインスタンスタイプ、サブネット、セキュリティグループ、IAM ロールなどを事前に定義しておくことで、カットオーバー時の手動設定を排除できます。クラウド移行の関連書籍 (Amazon) では、移行ウェーブの計画からカットオーバーまでの実践的なプロセスが解説されています。移行後にソースサーバーへのフォールバックが必要になった場合も、レプリケーションを逆方向に設定することで対応可能です。
大規模移行ウェーブの計画と Migration Hub との連携
数百台規模のサーバー移行では、移行対象をウェーブ (波) に分割し、依存関係のあるサーバー群を同一ウェーブにまとめて移行する計画が不可欠です。MGN はウェーブとアプリケーションの概念でサーバーをグルーピングでき、ウェーブ単位でテスト起動やカットオーバーを一括実行できます。Migration Hub との統合により、MGN での移行進捗が Migration Hub のダッシュボードに自動的に反映され、DMS によるデータベース移行と合わせた全体の進捗を一元的に把握できます。移行前のディスカバリフェーズでは、Migration Hub の Application Discovery Service や Agentless Collector を使ってオンプレミス環境のサーバー構成、依存関係、パフォーマンスデータを収集し、移行計画の基礎データとします。MGN 自体の利用料は無料で、移行先の EC2 インスタンスとステージングエリアの EBS ボリュームに対してのみ課金されます。ステージングエリアのインスタンスは低コストの t3.small がデフォルトで使用されるため、レプリケーション期間中のコストは最小限に抑えられます。