

# アーキテクチャの詳細
<a name="components"></a>

## 移行自動化サーバー
<a name="comp-mes"></a>

このソリューションでは、移行自動化サーバーを活用し、Rest API を使用して移行を実行します。このサーバーはソリューションと共に自動的にデプロイされるわけではないため、手動で構築する必要があります。詳細については、「[移行自動化サーバーを構築する](step7.md)」を参照してください。サーバーは AWS 環境で構築することをお勧めしますが、ネットワーク環境にオンプレミスで構築することもできます。サーバーは次の要件を満たしている必要があります。
+ Windows Server 2019 以降のバージョン
+ 最低 4 個の CPU と 8 GB の RAM
+ 追加のアプリケーションをインストールせずに新しい仮想マシンとしてデプロイされている
+ (AWS で構築した場合) Cloud Migration Factory と同じ AWS アカウントとリージョンにある

インストールしたら、サーバーには対象となるソースサーバー (AWS に移行するサーバー) へのインターネットアクセスと制限のない内部ネットワーク接続が必要です。

移行自動化サーバーからソースサーバーへのポート制限が必要な場合は、移行自動化サーバーからソースサーバーへの次のポートを開く必要があります。
+ SMB ポート (TCP 445)
+ SSH ポート (TCP 22)
+ WinRM ポート (TCP 5985、5986)

移行自動化サーバーは、ソースサーバーと同じ Active Directory ドメインに配置することをお勧めします。ソースサーバーが複数のドメインに存在する場合、各ドメインのドメイン信頼のセキュリティ構成によって、複数の移行自動化サーバーが必要かどうかが決まります。

従来のアプローチでは Windows ベースの自動化サーバーを使用していましたが、代わりに AWS Systems Manager Automation ドキュメントから直接スクリプトを実行できるようになりました。
+ ソースサーバーがあるすべてのドメインにドメイン信頼が存在する場合、1 台の移行自動化サーバがすべてのドメインに接続して自動化スクリプトを実行できます。
+ ドメイン信頼がすべてのドメインに存在しない場合は、信頼できないドメインごとに追加の移行自動化サーバーを作成するか、または、自動化サーバーで実行されるアクションごとに、ソースサーバーで適切な権限を持つ代替認証情報を提供する必要があります。

## 移行サービス Rest API
<a name="comp-mes-api"></a>

AWS ソリューションの Cloud Migration Factory は、AWS Lambda 関数、Amazon API Gateway、AWS Managed Services、AWS Application Migration Service (AWS MGN) を通じて処理される Rest API を使用して移行プロセスを自動化します。サーバーの追加、サーバーやアプリケーションのリストの表示など、リクエストを行ったり、トランザクションを開始したりすると、Amazon API Gateway に対して REST API 呼び出しが行われ、AWS Lambda 関数がリクエストの実行を開始します。以下のサービスでは、自動移行プロセスのコンポーネントを詳しく説明しています。

### ログインサービス
<a name="comp2-log-in"></a>

ログインサービスには、`login` Lambda 関数と Amazon Cognito が含まれています。API Gateway 経由で `login` を使用してソリューションにログインしたら、関数が認証情報を検証し、Amazon Cognito から認証トークンを取得して、トークンの詳細をユーザーに返します。この認証トークンを使用して、このソリューションの他のサービスに接続できます。

### 管理サービス
<a name="comp2-admin"></a>

管理サービスには Amazon API Gateway、`admin` Lambda 関数と Amazon DynamoDB が含まれます。ソリューションの管理者は、`admin` Lambda 関数を使用して、アプリケーション属性とサーバー属性である移行メタデータスキーマを定義します。管理サービス API は、DynamoDB テーブルのスキーマ定義を提供します。アプリケーション属性やサーバー属性を含むユーザーデータは、このスキーマ定義に従う必要があります。一般的な属性には、`app_name`、`wave_id`、`server_name`、および [[移行メタデータをファクトリにインポートする]](step8.md#import-migration-metadata-into-the-factory) で特定されているその他のフィールドが含まれます。デフォルトで、AWS CloudFormation テンプレートは共通のスキーマを自動的にデプロイしますが、デプロイ後にカスタマイズできます。

管理者は管理サービスを使用して、移行チームのメンバーの移行ロールを定義することもできます。管理者は、特定のユーザーロールを特定の属性や移行段階にマッピングするようにきめ細かく制御できます。移行ステージとは、ビルドステージ、テストステージ、カットオーバーステージなど、特定の移行タスクを実行する期間です。

### ユーザーサービス
<a name="comp2-user"></a>

ユーザーサービスには、Amazon API Gateway、`user` Lambda 関数と Amazon DynamoDB が含まれます。ユーザーは移行メタデータを管理できるため、移行メタデータパイプライン内のウェーブ、アプリケーション、およびサーバーのデータを読み取り、作成、更新、削除できます。

**注記**  
移行ウェーブとは、開始日、終了日、またはカットオーバー日を指定してアプリケーションをグループ化する概念です。ウェーブデータには、特定の移行ウェーブで予定されている移行候補アプリケーションとアプリケーショングループが含まれます。

ユーザーサービスには、移行チームがソリューション内のデータを操作するための API が用意されています。つまり、Python スクリプトとソース CSV ファイルを使用してデータを作成、更新、削除できます。詳細な手順については、「Migration Factory Web コンソールを使用した自動移行アクティビティ」および「コマンドプロンプトを使った自動移行アクティビティ」を参照してください。

### ツールサービス
<a name="comp2-tools"></a>

デプロイ時のツールサービスには、Amazon API Gateway、拡張可能な `tools` Lambda 関数、Amazon DynamoDB、AWS Managed Services、AWS Application Migration Service が含まれます。これらのサービスを使用してサードパーティー API に接続し、移行プロセスを自動化できます。デプロイ時の AWS Application Migration Service との統合により、移行チームはボタンを 1 回押すだけでサーバーの起動プロセスを調整し、カットオーバー日が同じアプリケーションとサーバーのグループで構成される同じウェーブ内のすべてのサーバーを起動できます。

このソリューションに組み込まれているパイプライン機能により、移行チームは多くのタスクを含む複雑な移行シーケンスを作成し、フルマネージドの自動化されたエクスペリエンスを提供できます。移行チームは、ツールで提供される自動化機能のタスクや AWS が提供するスクリプトを使用することも、独自のカスタム自動化スクリプトを記述することもできます。

## Migration Factory ウェブインターフェイス
<a name="comp-webui"></a>

このソリューションには Migration Factory ウェブインターフェイスが含まれており、デフォルトで Amazon S3 バケット、または提供されているウェブサーバー (ソリューションデプロイの一部ではない) でホストできます。これにより、ウェブブラウザを使用して以下のタスクを実行できます。
+ ウェーブ、アプリケーション、サーバーのメタデータをウェブブラウザから更新する
+ アプリケーションとサーバーのスキーマ定義を管理する
+ エンドツーエンドの移行パイプラインを作成して、アプリケーション移行のあらゆる側面を自動化および管理します。
+ 自動化スクリプトを実行して、前提条件の確認、MGN エージェントのインストールなどの移行作業を自動化する
+ 移行認証情報を作成してソースサーバーに接続する
+ AWS Application Migration Service や AWS Systems Manager などの AWS サービスに接続して移行プロセスを自動化する