

# コマンドプロンプトを使用した自動移行アクティビティのリスト
<a name="list-of-automated-migration-activities-using-command-prompt"></a>

**注記**  
AWS での Cloud Migration Factory コンソールから自動化を実行することをお勧めします。以下の手順で自動化スクリプトを実行できます。GitHub リポジトリから自動化スクリプトを必ずダウンロードして、「[コマンドプロンプトから自動化を実行する](run-automations-from-command-prompt.md)」の手順に従って自動化サーバーを設定し、「[移行自動化サーバーに対して AWS の権限を設定する](step7.md#configure-aws-permissions-for-the-migration-automation-server)」の指示に従ってアクセス許可を設定します。

AWS での Cloud Migration Factory ソリューションは、移行プロジェクトに活用できる自動移行アクティビティをデプロイします。以下に示す移行アクティビティに従い、ビジネスニーズに基づいてカスタマイズできます。

アクティビティを開始する前に、対象とするソースサーバーのローカル管理者権限を持つドメインユーザーとして移行自動化サーバーにログオンしていることを確認してください。

**重要**  
このセクションに記載されているアクティビティを完了するには、管理者ユーザーとしてログインする必要があります。

以下の手順を同じ順序で実行し、サンプルの自動化スクリプトとアクティビティを使用してソリューションを完全にテストします。

## 前提条件をチェックする
<a name="prerequisites-3"></a>

対象範囲内のソースサーバーに接続して、TCP 1500、TCP 443、ルートボリュームの空き容量、.Net Framework バージョン、その他のパラメータなど、必要な前提条件を確認します。これらの前提条件はレプリケーションに必要です。

前提条件の確認を行う前に、EC2 にレプリケーションサーバーが作成されるよう 1 つ目のサーバーを 1 つのソースサーバーに手動でインストールする必要があります。ポート 1500 テストのために、このサーバーに接続します。インストール後、AWS Application Migration Service (AWS MGN) は、Amazon Elastic Compute Cloud (Amazon EC2) にレプリケーションサーバーを作成します。このアクティビティでは、ソースサーバーからレプリケーションサーバーへの TCP ポート 1500 を確認する必要があります。AWS MGN エージェントをソースサーバーにインストールする方法については、「*Application Migration Service User Guide*」の「[Installation instructions](https://docs.aws.amazon.com/mgn/latest/ug/agent-installation-instructions.html)」を参照してください。

移行自動化サーバーにサインインした状態で以下の手順を実行して、前提条件を確認してください。

1. 管理者として、コマンドプロンプト (`CMD.exe`) を開きます。

1. `c:\migrations\scripts\script_mgn_0-Prerequisites-checks` フォルダに移動し、次の Python コマンドを実行します。

```
python 0-Prerequisites-checks.py --Waveid <wave-id> --ReplicationServerIP <rep-server-ip>
```

*<wave-id>* と *<rep-server-ip>* を適切な値と置換します。
+ `Waveid` は、マイグレーションウェーブを識別するための一意の整数値です。
+ `ReplicationServerIP` 値は、レプリケーションサーバー IP アドレスを識別します。この値を Amazon EC2 IP アドレスに変更します。このアドレスを確認するには、AWS マネジメントコンソールにサインインしてから **[レプリケーション]** を検索し、レプリケーションサーバーの 1 つを選択し、プライベート IP アドレスをコピーします。レプリケーションがパブリックインターネット上で行われる場合は、代わりにパブリック IP アドレスを使用してください。

  1. このスクリプトは、指定したウェーブのサーバーリストを自動的に取得します。

次に、スクリプトは Windows サーバーの前提条件を確認し、チェックのたびに `pass` または `fail` の状態を返します。

**注記**  
PowerShell スクリプトが信頼されていない場合、次のようなセキュリティ警告が表示されることがあります。この問題を解決するには、次の PowerShell コマンドを実行します。  

```
Unblock-File C:\migrations\scripts\script_mgn_0-Prerequisites-checks\0-Prerequisites-Windows.ps1
```

次に、スクリプトは Linux サーバーをチェックします。

チェックが完了すると、スクリプトは各サーバーの最終結果を返します。

 **スクリプトの最終結果** 

![\[スクリプトの最終結果\]](http://docs.aws.amazon.com/ja_jp/solutions/latest/cloud-migration-factory-on-aws/images/script-final-result.png)


サーバーが 1 つ以上の前提条件チェックに失敗した場合は、チェックの完了時に表示される詳細なエラーメッセージを確認するか、ログの詳細をスクロールすることで、問題のあるサーバーを特定できます。

以下のサンプルプロジェクトのスクリーンショットに示すように、このスクリプトを実行すると、Migration Factory のウェブインターフェイスに、ソリューションの**移行ステータス**が表示されます。

## レプリケーションエージェントをインストールする
<a name="install-the-replication-agents-1"></a>

**注記**  
エージェントをインストールする前に、[AWS MGN が各ターゲットアカウントで初期化されていること](https://docs.aws.amazon.com/mgn/latest/ug/mgn-initialize.html)を確認してください。

以下の手順に従って、対象範囲内のソースサーバーにレプリケーションエージェントを自動的にインストールします。

1. 管理者として署名された移行自動化サーバーで、コマンドプロンプト (`CMD.exe`) を開きます

1. `c:\migrations\scripts\script_mgn_1-AgentInstall` フォルダに移動し、次の Python コマンドを実行します。

```
python 1-AgentInstall.py --Waveid <wave-id>
```

<*wave-id*> を適切なウェーブ ID 値と置換して、特定のウェーブ内のすべてのサーバーにレプリケーションエージェントをインストールします。このスクリプトは、同じウェーブ内のすべてのソースサーバーに 1 つずつエージェントをインストールします。

**注記**  
エージェントを再インストールするには、`--force` 引数を追加します。

1. このスクリプトは、指定したウェーブに含まれるソースサーバーを特定するリストを生成します。さらに、複数のアカウントで識別され、異なる OS バージョンに対応するサーバーが提供される場合もあります。

このウェーブに Linux マシンが含まれている場合、Linux sudo サインイン認証情報を入力して、それらのソースサーバーにサインインする必要があります。

インストールは Windows で開始され、次に AWS アカウントそれぞれについて Linux でのインストールが実行されます。

 **レプリケーションエージェントをインストールする** 

![\[レプリケーションエージェントをインストールする\]](http://docs.aws.amazon.com/ja_jp/solutions/latest/cloud-migration-factory-on-aws/images/install-replication-agents.png)


**注記**  
PowerShell スクリプトが信頼されていない場合、次のようなセキュリティ警告が表示されることがあります。この問題を解決するには、次の PowerShell コマンドを実行します。  

```
Unblock-File C:\migrations\scripts\script_mgn_1-AgentInstall\1-Install-Windows.ps1
```

スクリプトがレプリケーションエージェントのインストールを完了すると、結果が表示されます。結果を確認してエラーメッセージを確認し、エージェントをインストールできなかったサーバーを特定します。障害が発生したサーバーには、エージェントを手動でインストールする必要があります。手動インストールが成功しない場合は、「[AWS サポートセンター](https://console.aws.amazon.com/support/home)」に進み、サポートケースを登録してください。

 **エージェントインストール結果** 

![\[エージェントインストール結果\]](http://docs.aws.amazon.com/ja_jp/solutions/latest/cloud-migration-factory-on-aws/images/install-agent-result.png)


サンプルプロジェクトの以下のスクリーンショットに示すように、このスクリプトを実行すると、Migration Factory のウェブインターフェイスに、移行ステータスも表示されます。

## 起動後スクリプトをプッシュする
<a name="push-the-post-launch-scripts-1"></a>

AWS Application Migration Service は起動後のスクリプトをサポートしており、ターゲットインスタンスを起動した後のソフトウェアのインストール/アンインストールなどの OS レベルのアクティビティを自動化するのに役立ちます。このアクティビティは、移行対象として特定されたサーバーに応じて、起動後のスクリプトを Windows マシンや Linux マシンにプッシュします。

移行自動化サーバーからの以下の手順に従って、起動後のスクリプトを Windows マシンにプッシュします。

1. 管理者としてログインし、コマンドプロンプト (`CMD.exe`) を開きます。

1. `c:\migrations\scripts\script_mgn_1-FileCopy` フォルダに移動し、次の Python コマンドを実行します。

```
python 1-FileCopy.py --Waveid <wave-id> --WindowsSource <file-path> --LinuxSource <file-path>
```

*<wave-id>* を適切なウェーブ ID 値と、*<file-path>* をスクリプトが置かれているソースのフルファイルパスと置換します。例えば、`c:\migrations\scripts\script_mgn_1-FileCopy`。このコマンドは、ソースフォルダのすべてのファイルを宛先フォルダにコピーします。

**注記**  
WindowsSource と LinuxSource の 2 つの引数のうち、少なくとも 1 つを指定する必要があります。WindowsSource パスを指定した場合、このスクリプトはこのウェーブの Windows サーバーにのみファイルをプッシュします。これは、このウェーブでは Linux サーバーにのみファイルをプッシュする LinuxSource と同じです。両方を指定すると、Windows サーバーと Linux サーバーの両方にファイルをプッシュします。

1. このスクリプトは、指定したウェーブに含まれるソースサーバーを特定するリストを生成します。さらに、複数のアカウントで識別され、異なる OS バージョンに対応するサーバーが提供される場合もあります。

このウェーブに Linux マシンが含まれている場合、Linux sudo サインイン認証情報を入力して、それらのソースサーバーにサインインする必要があります。

1. このスクリプトはファイルを宛先フォルダーにコピーします。宛先フォルダーが存在しない場合、ソリューションはディレクトリを作成し、このアクションを通知します。

## レプリケーションステータスを検証する
<a name="verify-the-replication-status-1"></a>

このアクティビティでは、対象範囲内のソースサーバーのレプリケーションステータスを自動的に検証します。このスクリプトは、指定したウェーブ内のすべてのソースサーバーのステータスが「*正常*」ステータスに変わるまで 5 分おきに繰り返されます。

移行自動化サーバーからの以下の手順を使用して、レプリケーションステータスを確認します。

1. 管理者として、コマンドプロンプト (`CMD.exe`) を開きます。

1. `\migrations\scripts\script_mgn_2-Verify-replication` フォルダに移動し、次の Python コマンドを実行します。

```
python 2-Verify-replication.py --Waveid <wave-id>
```

*<wave-id>* を適切なウェーブ ID 値と置換して、レプリケーションステータスを確認します。このスクリプトは、特定のウェーブ内のすべてのサーバのレプリケーションの詳細を検証し、ソリューションで特定されたソースサーバーの**レプリケーションステータス**属性を更新します。

1. このスクリプトは、指定したウェーブに含まれるサーバーを特定するリストを生成します。

対象範囲内で起動準備が整っているソースサーバーの予想ステータスは **[正常]** です。サーバーのステータスが異なる場合、そのサーバーはまだ起動準備が整っていません。

以下のウェーブ例のスクリーンショットは、現在のウェーブ内のすべてのサーバーがレプリケーションを終了し、テストまたはカットオーバーの準備ができていることを示しています。

 **エージェントインストール結果** 

![\[レプリケーションステータス\]](http://docs.aws.amazon.com/ja_jp/solutions/latest/cloud-migration-factory-on-aws/images/replication-status.png)


オプションで、**Migration Factory** ウェブインターフェイスでステータスを検証できます。

## ターゲットインスタンスのステータスを確認する
<a name="verify-the-target-instance-status-1"></a>

このアクティビティでは、同じウェーブ内のすべての対象ソースサーバーの起動プロセスをチェックして、ターゲットインスタンスのステータスを確認します。ターゲットインスタンスが起動するまでに最大 30 分かかることがあります。Amazon EC2 コンソールにログインし、ソースサーバー名を検索し、ステータスを確認することで、ステータスを手動で確認できます。インフラストラクチャの観点からインスタンスが正常であることを示す「*2/2 のチェックに合格しました*」というヘルスチェックメッセージが表示されます。

ただし、大規模な移行では、各インスタンスのステータスをチェックするのに時間がかかるため、この自動化されたスクリプトを実行して特定のウェーブ内のすべてのソースサーバーの「*2/2 のチェックに合格しました*」ステータスを確認します。

移行自動化サーバーからの以下の手順を使用して、ターゲットインスタンスのステータスを確認します。

1. 管理者として、コマンドプロンプト (`CMD.exe`) を開きます。

1. `c:\migrations\scripts\script_mgn_3-Verify-instance-status` フォルダに移動し、次の Python コマンドを実行します。

```
python 3-Verify-instance-status.py --Waveid <wave-id>
```

*<wave-id>* を適切なウェーブ ID 値と置換して、インスタンスステータスを確認します。このスクリプトは、このウェーブ内のすべてのソースサーバーのインスタンス起動プロセスを検証します。

1. このスクリプトは、指定したウェーブのサーバーリストとインスタンス ID のリストを返します。

1. その後、スクリプトはターゲットインスタンス ID のリストを返します。
**注記**  
ターゲットインスタンス ID が存在しないというエラーメッセージが表示された場合、起動ジョブがまだ実行中である可能性があります。数分待ってから続行してください。

1. ターゲットインスタンスが 2/2 ヘルスチェックに合格したかどうかを示すインスタンスステータスチェックを受信します。

**注記**  
ターゲットインスタンスが初めて 2/2 ヘルスチェックに失敗した場合は、起動プロセスの完了に時間がかかっていることが原因かもしれません。1 回目のヘルスチェックの約 1 時間後に、2 回目のヘルスチェックを実行することをおすすめします。これにより、起動プロセスが確実に完了します。2 回目にヘルスチェックに失敗した場合は、[AWS サポートセンター](https://console.aws.amazon.com/support/home)に進んで、サポートケースを記録してください。

## 対象範囲内のソースサーバーをシャットダウンする
<a name="shut-down-the-in-scope-source-servers-1"></a>

このアクティビティにより、移行に関係する範囲内のソースサーバーがシャットダウンされます。ソースサーバーのレプリケーションステータスを確認したら、ソースサーバーをシャットダウンして、クライアントアプリケーションからサーバーへのトランザクションを停止する準備が整います。通常、カットオーバーウィンドウでソースサーバーをシャットダウンできます。ソースサーバーを手動でシャットダウンすると、サーバーごとに 5 分かかることがあり、大きなウェーブの場合、合計で数時間かかる場合があります。代わりに、このオートメーションスクリプトを実行して、指定したウェーブ内のすべてのサーバーをシャットダウンできます。

移行自動化サーバーからの次の手順を使用して、移行に関係するソースサーバーをすべてシャットダウンします。

1. 管理者として、コマンドプロンプト (`CMD.exe`) を開きます。

1. `c:\migrations\scripts\script_mgn_3-Shutdown-all-servers` フォルダに移動し、次の Python コマンドを実行します。

   ```
   Python 3-Shutdown-all-servers.py -Waveid <wave-id>
   ```

1. *<wave-id>* を適切なウェーブ ID 値と置換して、ソースサーバーをシャットダウンすします。

1. このスクリプトは、指定したウェーブのサーバーリストとインスタンス ID のリストを返します。

1. このスクリプトはまず、指定されたウェーブで Windows サーバーをシャットダウンします。Windows サーバーがシャットダウンされると、スクリプトは Linux 環境に進み、ログイン認証情報の入力を求められます。ログインに成功すると、スクリプトは Linux サーバーをシャットダウンします。

## ターゲットインスタンス IP を取得する
<a name="retrieve-the-target-instance-ip"></a>

このアクティビティでは、ターゲットインスタンス IP を取得します。DNS 更新が環境で手動処理の場合、すべてのターゲットインスタンスの新しい IP アドレスを取得する必要があります。ただし、オートメーションスクリプトを使用して、特定のウェーブ内のすべてのインスタンスの新しい IP アドレスを CSV ファイルにエクスポートできます。

移行自動化サーバーからの以下の手順を使用して、ターゲットインスタンス lps を取得します。

1. 管理者として、コマンドプロンプト (`CMD.exe`) を開きます。

1. `c:\migrations\scripts\script_mgn_4-Get-instance-IP` フォルダに移動し、次の Python コマンドを実行します。

```
Python 4-Get-instance-IP.py --Waveid <wave-id>
```

*<wave-id>* を適切なウェーブ ID 値と置換して、ターゲットインスタンスの新しい IP アドレスを取得します。

1. このスクリプトは、サーバーリストとターゲットインスタンス ID 情報を返します。

1. その後、スクリプトはターゲットサーバー IP を返します。

このスクリプトは、サーバー名と IP アドレスの情報を CSV ファイル (*<wave-id>*-*<project-name>*-Ips.csv) にエクスポートし、移行スクリプトと同じディレクトリ (`c:\migrations\scripts\script_mgn_4-Get-instance-IP`) に配置します。

CSV ファイルは、**instance\$1name** および **instance\$1Ips** の詳細を提供します。インスタンスに複数の NIC または IP が含まれている場合、すべてカンマで区切られて一覧表示されます。

## ターゲットサーバー接続を確認する
<a name="verify-the-target-server-connections"></a>

このアクティビティでは、ターゲットサーバーの接続を検証します。DNS レコードを更新したら、ホスト名を使用してターゲットインスタンスに接続できます。このアクティビティでは、リモートデスクトッププロトコル (RDP) を使用するか、セキュアシェル (SSH) アクセスを使用してオペレーティングシステムにログインできるかどうかを判断します。各サーバーに個別に手動でログインできますが、オートメーションスクリプトを使用してサーバー接続をテストする方が効率的です。

移行自動化サーバーからの以下の手順を使用して、ターゲットサーバーへの接続を確認します。

1. 管理者としてログインし、コマンドプロンプト (`CMD.exe`) を開きます。

1. `c:\migrations\scripts\script_mgn_4-Verify-server-connection` フォルダに移動し、次の Python コマンドを実行します。

```
Python 4-Verify-server-connection.py --Waveid <wave-id>
```

*<wave-id>* を適切なウェーブ ID 値と置換して、ターゲットインスタンスの新しい IP アドレスを取得します。

**注記**  
このスクリプトは、デフォルトの RDP ポート 3389 と SSH ポート 22 を使用します。必要に応じて、次の引数を追加してデフォルトポート: --rdpPort*<rdp-port>*--SSH ポート*<ssh-port>* にリセットできます。

1. このスクリプトはサーバーリストを返します。

1. このスクリプトは RDP と SSH アクセスの両方のテスト結果を返します。