

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

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

このソリューションでは、移行自動化サーバーを活用し、Rest API を使用して移行を実行します。このサーバーはソリューションと共に自動的にデプロイされるわけではないため、手動で構築する必要があります。詳細については、「[移行自動化サーバーを構築する](step6.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 サービスに接続して移行プロセスを自動化する

# このソリューションで使用している AWS のサービス
<a name="aws-services-in-this-solution"></a>


| AWS のサービス | 説明 |  | 
| --- | --- | --- | 
|   [AWS CloudFormation](https://aws.amazon.com/cloudformation/)   |   **前提条件:** CloudFormation テンプレートを使用して Cloud Migration Factory をデプロイします。  |  | 
|   [Amazon API Gateway](https://aws.amazon.com/api-gateway/):   |   **コア。**バックエンドデータへのアクセス、移行自動化タスクの開始と管理に使用される REST API をソリューション全体に提供します。  |  | 
|   [AWS Lambda](https://aws.amazon.com/lambda/)   |   **コア。**ウェブインターフェイスへのログイン、移行の管理に必要な管理機能の実行、および移行プロセスの自動化のためのサードパーティー API への接続に必要なサービスを提供します。  |  | 
|   [Amazon EventBridge](https://aws.amazon.com/eventbridge/)   |   **コア。**EventBridge は、Lambda 関数間の非同期通知の中心的なイベント駆動型通信バックボーンとして機能し、移行ワークフロー中に分離されたタスクオーケストレーション、ステータス更新、E メール通知、およびリアルタイム UI 更新を有効にします。  |  | 
|   [Amazon DynamoDB](https://aws.amazon.com/dynamodb/)   |   **コア。**Amazon API Gateway と Lambda 関数を介してアクセスされる、ユーザーおよびシステムが管理するすべてのデータのメタデータストア。  |  | 
|   [Amazon Cognito](https://aws.amazon.com/cognito/)   |   **コア。**ユーザーの認可と認証、他の IDP とのオプションのフェデレーションも Amazon Cognito を通じて実現されます。  |  | 
|   [Amazon Simple Queue Service](https://aws.amazon.com/sqs/) ()   |   **サポート。**EventBridge でトリガーされた Lambda 呼び出しの失敗に対するデッドレターキュー (DLQ) と GenAI WebSocket オペレーションの非同期処理キューを提供し、信頼性の高いメッセージ配信とエラー処理を実現します。  |  | 
|   [Amazon Simple Notification Service](https://aws.amazon.com/sns/)   |   **サポート。**設定された SNS トピックを介して、タスクステータスの更新、手動承認リクエスト、タスクの失敗に関する E メール通知を移行チームメンバーに配信します。  |  | 
|   [AWS Systems Manager](https://aws.amazon.com/systems-manager/)   |   **サポート。**ユーザーが提供した自動化サーバーにおける AWS での Cloud Migration Factory 自動化パッケージの実行をサポートします。  |  | 
|   [(Amazon EC2](https://aws.amazon.com/ec2/))   |   **サポート。**自動化パッケージの実行を可能にする AWS Systems Manager エージェントを実行する自動化サーバー。  |  | 
|   [Amazon Bedrock](https://aws.amazon.com/bedrock/)   |   **サポート。**インポートされた Excel/CSV ファイルのヘッダーをウェーブプランニングマネージャー (WPM) のスキーマに自動的にマッピングし、自然言語からウェーブプランニングルールを生成します。  |  | 
|   [Amazon S3](https://aws.amazon.com/s3/)   |   **サポート。**このソリューションの複数の分野で使用されます。1) Amazon S3 の静的ウェブホスティング機能を使用して、メインのウェブインターフェイスを (Amazon CloudFront 経由で) 提供するとともに、2) ログやその他の自動化出力は、ソリューションによって Amazon S3 に保存されます。  |  | 
|   [AWS Secrets Manager](https://aws.amazon.com/secrets-manager/)   |   **サポート。**AWS Secrets Manager は、ソリューションの自動化機能を使用する際、ワークロードを円滑に進め移行するためのタスクやアクションを実行するために、移行中のリソースへのアクセスに使用される認証情報を安全に保存する目的で使用されます。  |  | 
|   [Amazon CloudFront](https://aws.amazon.com/cloudfront/) \$1   |   **オプション。**標準デプロイの場合、Amazon CloudFront は Amazon S3 からのウェブインターフェイスコンテンツの配信を提供し、グローバルでの可用性を高め、どこからでもウェブインターフェイスコンテンツへの安全な TLS アクセスを提供します。  |  | 
|   [AWS Application Migration Service (AWS MGN)](https://aws.amazon.com/application-migration-service/)   |   **オプション。**Windows または Linux ワークロードのリホスト移行を実行する場合、AWS での Cloud Migration Factory は、AWS MGN を使用して Amazon EC2 へのシステム移行を容易にします。  |  | 
|   [Amazon QuickSight](https://aws.amazon.com/quicksight/)   |   **オプション。**Amazon DynamoDB に保持されている移行メタストアに保存されているデータに基づいてカスタマイズ可能な移行ダッシュボードを作成できるため、移行の追跡とレポートに必要なデータをチームに提供できます。  |  | 
|   [AWS Glue](https://aws.amazon.com/glue/)   |   **オプション。**Amazon DynamoDB に保持されているデータを定期的に Amazon S3 に抽出し、Amazon Athena および Amazon QuickSight ダッシュボードで使用するレポートデータを提供します。  |  | 
|   [Amazon Athena](https://aws.amazon.com/athena/)   |   **オプション。**AWS Glue が移行メタデータから抽出したレポートデータへのアクセスを提供し、Amazon QuickSight を使用してダッシュボードを作成できるようにします。  |  | 
|   [AWS ウェブアプリケーションファイアウォール](https://aws.amazon.com/waf/)   |   **オプション。**Amazon API Gateway と Amazon CloudFront のエンドポイントに追加のセキュリティを適用して、ソース IP アドレスまたはその他のアクセス基準に基づいて特定のデバイスへのアクセスを制限します。  |  | 