

# コンソールから自動化を実行する
<a name="run-automation-from-console"></a>

AWS での Cloud Migration Factory ソリューションが提供する自動化エンジンにより、ユーザーはデータストア内のインベントリに対してスクリプト形式のジョブを実行できます。この機能により、エンドツーエンドの移行作業を完了するのに必要なすべての自動化を管理、カスタマイズ、デプロイできます。

AWS CMF から開始されたジョブは、SSM 自動化ドキュメントを使用するか、AWS クラウドまたはオンプレミスでホストできる自動化サーバーを使用して実行できます。これらのサーバーでは、AWS SSM エージェントがインストールされた状態で、Python と Microsoft PowerShell とともに Windows を実行する必要があります。カスタムオートメーションに必要な他のフレームワークをインストールすることもできます。パラメータの詳細については、「[ステップ 6」を参照してください。自動化サーバーのビルドの詳細については、「移行自動化サーバーを構築する](step6.md)」を参照してください。AWS CMF コンソールからのジョブを実行するには、少なくとも 1 つの自動化サーバーが必要です。

## 各プラットフォームを使用するタイミング
<a name="when-to-use-each-platform"></a>

### 以下の場合は、従来の自動化サーバーを使用します。
<a name="use-traditional-automation-server-when"></a>
+ スクリプトがオンプレミスシステムへの直接ネットワーク接続を必要とする場合
+ カスタムソフトウェアのインストールまたは依存関係が必要な場合
+ Windows ベースの一貫した実行環境が必要な場合
+ オンプレミスシステムによる複雑な認証メカニズムが関わる場合

### 以下の場合は、SSM 自動化ドキュメントを使用します。
<a name="use-ssm-automation-document-when"></a>
+ AWS ネイティブオペレーションを実行する場合
+ 特別なソフトウェアの依存関係が不要な場合
+ スケーラビリティと並列実行が重要である場合
+ メンテナンスオーバーヘッドが最小限であることが望ましい場合

デプロイ時には、AWS MGN を使用して、ワークロードのリホストに必要な、最も一般的なタスクにスクリプトを使用できます。ウェブインターフェイスからスクリプトをダウンロードし、それをカスタムスクリプトの開始点として使用します。カスタム自動化スクリプトの作成について詳しくは、「[スクリプト管理](scripts-management.md)」を参照してください。

コンソールからジョブを開始するには、自動化を実行するウェーブを選択してから、**[アクション]**、**[自動化を実行]** の順に選択します。または、自動化を実行するジョブを選択し、**[アクション]**、**[自動化を実行]** の順に選択することもできます。

**[自動化を実行]** から:

1. **[ジョブ名]** を入力します。これはログ内のジョブを識別するために使用されます。

**注記**  
ジョブ名は一意である必要はありません。すべてのジョブには固有の ID とタイムスタンプが割り当てられ、さらに識別できるためです。

1. リストから **[スクリプト名]** を選択します。これは、AWS CMF インスタンスに読み込まれたすべてのスクリプトのリストです。ジョブが送信されると、選択したスクリプトのデフォルトバージョンが実行されます。現在のデフォルトバージョンを含むスクリプトの詳細を確認するには、スクリプト名の下の「**関連情報**」を選択します。スクリプトのデフォルトバージョンの更新について詳しくは、「**スクリプトパッケージのデフォルトバージョンの変更**」を参照してください。実行するスクリプトを選択すると、必要なパラメータが **[スクリプト引数]** の下に表示されます。

1. **[インスタンス ID]** で、ジョブの自動化サーバーをリストから選択します。

**注記**  
リストに表示されるインスタンスは、SSM エージェントがインストールされていて、EC2 インスタンス、または EC2 以外のホストされた自動化サーバーで、`role` のマネージドインスタンスタグが `mf_automation` に設定されているインスタンスのみです。

1. **[スクリプト引数]** に、スクリプトに必要な入力引数を入力します。

1. 必要なパラメータをすべて入力して確認したら、**[自動化ジョブを送信]** を選択します。

自動化ジョブを送信すると、以下のプロセスが開始されます。

1. AWS Cloud Migration Factory の **[ジョブ]** ビューでジョブレコードが作成されます。これには、ジョブの詳細と現在のステータスが含まれます。

1. AWS Systems Manager 自動化ジョブが作成され、**インスタンス ID** 経由で提供された自動化サーバーに対して AWS Cloud Migration Factory (SSM) 自動化ドキュメントの実行を開始します。自動化ドキュメント:

   1. 現在のデフォルトバージョンのスクリプトパッケージを、AWS Cloud Migration Factory S3 バケットから自動化サーバー、そして `C:\migration\scripts` ディレクトリにダウンロードします\$1。\$1

   1. パッケージを解凍して検証します。

   1. ZIP に含まれる `package-structure.yml` で指定されているマスターファイル Python スクリプトを起動します。

1. マスターファイルの Python スクリプトが起動されると、スクリプトからの出力はすべて SSM エージェントによってキャプチャされ、CloudWatch に送られます。その後、定期的にキャプチャされ、元のジョブレコードとともに AWS Cloud Migration Factory データストアに保存されるため、ジョブの実行状況を完全に監査できます。

   1. スクリプトが AWS Cloud Migration Factory の認証情報を必要とする場合、スクリプトは AWS Secrets Manager に接続して、サービスアカウントの認証情報を取得します。認証情報が間違っていたり、存在しなかったりすると、スクリプトは失敗を返します。

   1. スクリプトが、AWS Cloud Migration Factory 認証情報マネージャー機能を使用して保存されている他のシークレットにアクセスする必要がある場合、AWS Secrets Manager に接続して、これらの認証情報にアクセスします。これが不可能な場合、スクリプトは失敗を返します。

1. マスターファイルの Python スクリプトが終了すると、このスクリプトの結果によって AWS Cloud Migration Factory ジョブレコードに提供されるステータスが決まります。0 以外が返された場合、`Job Status` が `Failed` に設定されます。

## スクリプト実行プラットフォーム
<a name="script-execution-platforms"></a>

Cloud Migration Factory は、自動化スクリプトを実行するための 2 つのコンピューティングプラットフォームをサポートしています。

### 従来の自動化サーバー
<a name="traditional-automation-server"></a>

Windows ベースの自動化サーバーを使用するデフォルトの実行方法。これには、「移行自動化サーバーの構築」セクションで説明しているように、必要なソフトウェアのインストールと設定を含む専有サーバーを維持する必要があります。

### SSM 自動化ドキュメント
<a name="ssm-automation-document"></a>

スクリプトは、Package-Structure.yaml ファイルでコンピューティングプラットフォームとして [SSM 自動化ドキュメント] を指定することで、AWS Systems Manager Automation ドキュメントから直接実行できます。このオプションの特徴:
+ 専有の自動化サーバーが不要
+ AWS Systems Manager のネイティブ自動化機能を活用します。
+ メンテナンスのオーバーヘッドを削減します。
+ より優れたスケーラビリティと信頼性を提供します。

SSM 自動化ドキュメントプラットフォームを使用するには

1. スクリプトパッケージの Package-Structure.yaml ファイルで次のように設定します: ` yaml ComputePlatform: "SSM Automation Document" ` 

**注記**  
現在のところ、AWS SSM ドキュメントの初回実行時に障害が発生した場合、ウェブインターフェイスには表示されません。失敗はマスターファイル python が起動された後にのみ記録されます。  
コンソールから開始されたすべてのジョブが成功または失敗のステータスを返さない場合、12 時間後にタイムアウトします。