

# ウェーブプランニングマネージメント (WPM)
<a name="wave-planning-management"></a>

ウェーブプランニングマネージメント (WPM) は、移行ワークロードを最適な方法で整理およびスケジュールするのに役立つ機能です。これにより、さまざまな技術的な制約やビジネス要件を考慮しながら、大規模な移行プロジェクトを管理しやすい「ウェーブ」に分割できます。

## 主なコンセプト
<a name="key-concepts"></a>
+  **アセット**: アプリケーションとそのインフラストラクチャ (サーバー、データベース、ストレージなど) を含む、移行する必要があるコンポーネント。
+  **移動グループ**: 技術的な依存関係やビジネス要件のために一緒に移行する必要がある一連の関連アセット (アプリケーションやサーバーなど)。
+  **ウェーブ:** 同じイベントで移行されるアプリケーションのグループ。これは、互いの親和性やその他の理由に基づいている可能性があります。
+  **ウェーブプランニングルール**: 移行を体系的に整理するのに役立つ一連の事前設定されたガイドライン。これらのルールは自動的に適用されます。
  + 組織の特性と重要性に基づいて、最初に移行するアプリケーションに優先順位を付けます。
  + 関連するアセットをグループ化して、依存コンポーネントが同時に移行されるようにし、移行プロセス全体でシステム機能を維持します。
+  **ウェーブプランニングジョブ**: 優先順位付け、依存関係のグループ化、ウェーブプランニングの 3 つの主要な分析を通じてアプリケーションを処理する移行を整理するための構造化ワークフロー。移行対象のアプリケーションのリストを指定すると、ジョブは事前定義されたウェーブプランニングルールと、ウェーブサーバーやストレージ容量などのジョブ関連の設定に従って、整理された移動グループとウェーブを生成します。

## ウェーブプランニングジョブの作成
<a name="creating-wave-planning-job"></a>

新しいジョブを作成するには、メニューから **[ウェーブプランニング]** を選択し、次に **[プランニングジョブ]** を選択し、**[追加]** ボタンをクリックします。ウェーブプランニングジョブウィザードは、以下の 4 つのステップに沿って操作を案内します。

### 1. ジョブの作成
<a name="create-job"></a>

ジョブを開始するには、次の属性を入力する必要があります。
+  **ジョブ名**: この移行ジョブに付ける名前。後で識別するのに役立つわかりやすい名前を選択します。
+  **最大ウェーブサーバー容量**: 単一のウェーブに含めることができるサーバーの最大数。
+  **ノミネーションアプリケーション数**: このジョブで処理する計画外のアプリケーションの数。例えば、「10」と入力すると、まだ計画されていないアプリケーションから、優先度の高い上位 10 件がデフォルトで選択されます。
+  **ウェーブサーバー容量の開始**: このジョブの最初のウェーブに含めるサーバーの数。
+  **ウェーブサーバー容量の増加**: このジョブの後続の各ウェーブに追加するサーバーの数。
+  **ウェーブストレージキャパシティー**: 各ウェーブで許可されるサーバーストレージの最大合計。

フォームの入力が完了したら、**[次へ]** ボタンをクリックします。

### 2. アプリケーションの管理
<a name="manage-applications"></a>

このステップでは、移行ジョブに含めるアプリケーションを選択します。

**ノミネーションアプリケーション数** (ステップ 1 で設定) に基づいて、ウィザードはジョブのアプリケーションを自動的に選択します。これらの提案は、計画外のアプリケーションのプールから取得され、優先順位のランクに基づいてソートされます。提案されたアプリケーションは、**[新しいジョブに含まれるアプリケーション]** テーブルに表示されます。

まだ行っていない場合は、右上の **[その他のオプション]** (3 つのドット) アイコンをクリックし、**[アプリのランクの再計算]** を選択して、[事前定義された優先順位付けルール](#prioritization-rules)に基づいてすべてのアプリケーションのランクを計算できます。

必要に応じて、次の 2 つの方法で候補リストを変更できます。
+ アプリケーションの削除: ジョブからアプリケーションを削除するには、そのアプリケーションを選択し、**[ジョブから削除]** ボタンをクリックします。削除されたアプリケーションは、**[未割り当てアプリケーション]** テーブルに戻ります。
+ その他のアプリケーションの追加: **[未割り当てアプリケーションテーブル]** から、追加するアプリケーションを選択し、**[ジョブに追加]** ボタンをクリックします。追加されたアプリケーションは、**[新しいジョブに含まれるアプリケーション]** テーブルに表示されます。

アプリケーションの選択が完了したら、**[次へ]** ボタンをクリックします。

### 3. 移動グループの管理
<a name="manage-move-groups"></a>

このジョブは移動グループリクエストを作成します。バックエンドが[事前定義されたグループ化ルール](#grouping-rules)に基づいてリクエストを処理する間、ウィザードは進行状況をポーリングし、ページを定期的に更新します。

リクエストが正常に処理されると、自動作成された移動グループが **[移動グループ]** テーブルに表示されます。テーブルの下にあるタブで、1 つのグループを選択すると、含まれているアプリケーション、サーバー、データベースなどのグループの詳細が表示されます。**[エンティティの可視化]** タブには、エンティティの関係を視覚化した図が表示されます。

必要に応じて、自動作成された移動グループを変更できます。
+ 移動グループを選択し、**[アセットの管理]** ボタンをクリックします。
+ 2 つのテーブルを含むダイアログボックスが表示されます。上部の **[選択した移動グループ内のアセット]** テーブルには、移動グループに含まれるアセットが表示され、下部の **[使用可能なアセット]** テーブルには、どのグループにも割り当てられていないアセットが表示されます。
+ 移動グループから 1 つ以上のアセットを削除するには、それらを選択し、**[移動グループから削除]** ボタンをクリックします。削除されたアセットは、**[使用可能なアセット]** テーブルに戻ります。
+ 移動グループに使用可能なアセットをもう 1 つ追加するには、**[使用可能なアセット]** テーブルから選択し、**[移動グループに追加]** ボタンをクリックします。追加されたアセットは、**[選択した移動グループ内のアセット]** テーブルに表示されます。
+ **[確認]** ボタンをクリックして変更を確認するか、**[キャンセル]** をクリックして変更を破棄します。ダイアログボックスが閉じ、移動グループに加えた変更を反映するようにメイン画面が更新されます。

移動グループに問題がなければ、**[次へ]** ボタンをクリックします。

### 4. ウェーブを管理する
<a name="manage-waves"></a>

このジョブは、ジョブ設定に基づいてウェーブを作成し、自動作成されたウェーブを **[ウェーブ]** テーブルに表示します。ウェーブを 1 つ選択して、含まれている移動グループ、アプリケーション、サーバー、データベースなどのウェーブの詳細を表示できます。**[エンティティの可視化]** タブには、エンティティの関係を視覚化した図が表示されます。

必要に応じて、自動作成されたウェーブを変更できます。
+ ウェーブを選択し、**[移動グループの管理]** ボタンをクリックします。
+ 2 つのテーブルを含むダイアログボックスが表示されます。上部の **[選択したウェーブの移動グループ]** テーブルには、その移動グループに含まれる移動グループが表示され、下部の **[使用可能な移動グループ]** テーブルには、どのウェーブにも割り当てられていない移動グループが表示されます。
+ ウェーブから 1 つ以上の移動グループを削除するには、それらを選択し、**[ウェーブから削除]** ボタンをクリックします。削除された移動グループは、**[使用可能な移動グループ]** テーブルに戻ります。
+ ウェーブに使用可能な移動グループをもう 1 つ追加するには、**[使用可能な移動グループ]** テーブルから選択し、**[ウェーブに追加]** ボタンをクリックします。追加された移動グループは、**[選択したウェーブの移動グループ]** に表示されます。
+ **[確認]** ボタンをクリックして変更を確認するか、**[キャンセル]** をクリックして変更を破棄します。ダイアログボックスが閉じ、メイン画面が更新されて、ウェーブに加えた変更が反映されます。

ウェーブに満足したら、**[ウェーブプランの確認]** ボタンをクリックして、ウェーブプランニングジョブのリストページに戻ります。

### 注意事項
<a name="notes"></a>
+ ジョブウィザードはウェーブプランニングの進行状況を維持し、ダイアログボックスの **[次へ]** ボタンと **[確認]** ボタンをクリックしたときに、移動グループとウェーブに加えた変更を反映させます。
+ **[戻る]** ボタンをクリックするとウィザードの前のステップに戻ることができますが、それらは読み取り専用モードであり、情報提供のみを目的としています。
+ 前のステップを変更する場合は、ジョブをキャンセルして最初からやり直す必要があります。「[ウェーブプランニングジョブのキャンセル/削除](#cancelling-deleting-wave-planning-job)」を参照してください。

## ウェーブプランニングジョブのキャンセル/削除
<a name="cancelling-deleting-wave-planning-job"></a>
+ ジョブ作成ウィザードでジョブをキャンセルするには、**[キャンセル]** ボタンをクリックします。
+ 作成したジョブを削除するには、メニューから **[ウェーブプランニング]** を選択し、次に **[ジョブの計画]** を選択し、**[削除]** ボタンをクリックします。

どちらのオペレーションでも、関連する移動グループとウェーブを削除して、ジョブによって行われたウェーブプランニングを元に戻します。

## ウェーブプランニングルールの管理
<a name="managing-wave-planning-rules"></a>

ウェーブプランニングルールは、ウェーブプランニング中のアセットの処理方法を制御する設定可能な一連のガイドラインです。WPM は、最も頻繁に使用されるルールのリストをデフォルトルールとして事前定義します。

ルールは 2 つの主要なカテゴリで構成されます。
+   **優先順位付けルール** 
  +  **スコアリングルール**: エンティティ/属性/値の組み合わせのスコアリング基準 (0～100) を定義して、アプリケーションの優先度を決定します。例えば、「本番環境」環境のスコアは 10 で、「開発」環境のスコアが 100 であれば、開発環境を最初に移行する必要があることを示しています。
  +  **ソートルール**: 選択プロセス内のアプリケーションの順序を制御します。同じアプリケーションの異なる環境をまとめて表示するオプションも含まれます。
+   **グループ化ルール** 
  +  **結合 (包括的) ルール**: アセットを同じ移動グループに組み合わせるための基準を定義します。デフォルトのルールには、サーバー、データベース、アプリ所有者などを共有するアプリケーションをグループ化する機能が含まれます。
  +  **スプリッター (排他的) ルール**: 通常、環境、所有者、部門などの属性に基づいて、アセットを別々のグループに保持するための基準を定義します。

デフォルトのグループ化ルールは、ウェーブプランニングが適切に機能するために不可欠であるため、管理者はこれらのルールを有効または無効にすることしかできません。それ以外にも、管理者は新しいルールを作成したり、既存のルールを変更して、組織固有の移行要件に合わせることができます。

### ウェーブプランニングルールを表示する
<a name="viewing-wave-planning-rules"></a>

既存のウェーブプランニングルールを表示するには、メニューから **[管理]** を選択し、**[ウェーブプランニング]** を選択してから、**[プランニングルール]** タブをクリックします。

システムは、グループ化ルールと優先順位付けルールをそれぞれ、**[グループ化ルール]** テーブルと **[優先順位付けルール]** テーブルに表示します。

### プランニングルールの有効化/無効化
<a name="enabling-disabling-planning-rules"></a>

デフォルトのグループ化ルールは変更できませんが、有効化または無効化は可能です。デフォルトのグループ化ルールを無効にするには。
+ チェックボックスをオンにして「ENABLED」ステータスのルールを 1 つ選択し、**[編集]** ボタンをクリックします。
+ ルールの編集ページの **[ルールを無効にする]** ボタンをクリックします。

同様の操作を行うことで、無効になっているグループ化ルールを有効にできます。

デフォルトの優先順位付けルールを無効にするには。
+ チェックボックスをオンにして「ENABLED」ステータスのルールを 1 つ選択し、**[編集]** ボタンをクリックします。
+ **[ルール JSON]** フィールドで、**[ステータス]** 値を「ENABLED」から「DISABLED」に変更し、**[ルールの更新]** をクリックして変更を保存します。

同様の操作を行うことで、無効になっている優先順位付けルールを有効にできます。

### プランニングルールの追加
<a name="adding-planning-rules"></a>

新しいルールを追加するには、それぞれのルールテーブルの上部にある **[追加]** ボタンをクリックし、ルールを JSON 形式で **[ルール JSON]** フィールドに入力します。最初から始めるのではなく、既存のルールの値をコピーして貼り付ける方がはるかに簡単です。

AWS Bedrock と必要な LLM モデルがデプロイリージョンで利用可能な場合、**[ルールの説明プロンプト]** セクションが表示され、ルールを自然言語で記述できます。Bedrock は JSON 形式でルールを生成します。
+ ルールの説明を、**[ルールの説明プロンプト]** の下のテキストボックスに入力します。以下は、スコアリングルールの例です。

```
Score applications based on server storage size.
Less sizes means less app complexity scores.
```
+ **[ルールの生成]** ボタンをクリックすると、Bedrock が JSON 形式でルールを生成し、**[ルール JSON]** フィールドに入力します。
  + Bedrock がルールを生成するまでに 30 秒以上かかる場合があります。
+ ルールを確認し、**[ルールを保存]** ボタンをクリックしてルールを保存します。

### ルール JSON プロパティ
<a name="rule-json-properties"></a>

 **ルール JSON プロパティのグループ化** 


| プロパティ名 | 必須 | タイプ | 許可された値 | 説明 | 
| --- | --- | --- | --- | --- | 
| rule\_type | Y | string | GROUPING\_INCLUSIVE、GROUPING\_EXCLUSIVE | ルールがアセットを結合 (包括的) するか、分離 (排他的) するかを決定します | 
| rule\_name | Y | string | 任意のテキスト | ルールの名前 | 
| rule\_description | N | string | 任意のテキスト | ルールのオプションの説明 | 
| ステータス | Y | string | ENABLED、DISABLED | ルールがアクティブかどうか | 
| 関係 | Y | array | オブジェクトの配列 | アセット関係のリスト | 
| relationships[].asset\_type | Y | string | 有効なアセットタイプ | 関係におけるアセットタイプ | 
| relationships[].asset\_key | Y | string | 有効なアセットキー | 関係のキー属性 | 

 **スコアリングルールの JSON プロパティの優先順位付け** 


| プロパティ名 | 必須 | タイプ | 許可された値 | 説明 | 
| --- | --- | --- | --- | --- | 
| rule\_type | Y | string | PRIORITIZING | 「PRIORITIZING」である必要があります | 
| rule\_name | Y | string | 任意のテキスト | ルールの名前 | 
| rule\_description | N | string | 任意のテキスト | ルールのオプションの説明 | 
| sub\_type | Y | string | SCORING | 「SCORING」である必要があります | 
| ステータス | Y | string | ENABLED、DISABLED | ルールがアクティブかどうか | 
| asset\_type | Y | string | 有効なアセットタイプ | スコアリングするアセットのタイプ | 
| attr\_key | Y | string | 有効な非関係属性 | スコアリングの基準となる属性 | 
| scoring\_criteria | Y | array | スコアリングオブジェクトの配列 | スコアリング条件のリスト | 
| scoring\_criteria[].value | N | string | 任意のテキスト | [Value to match] (照合する値) | 
| scoring\_criteria[].lower\_bound | N | 数値 | 任意の数値 | 数値範囲の下限 | 
| scoring\_criteria[].upper\_bound | N | 数値 | 任意の数値 | 数値範囲の上限 | 
| scoring\_criteria[].name | N | string | 任意のテキスト | 基準の名前 | 
| scoring\_criteria[].pattern | N | string | 任意のテキスト | 一致させるためのパターン | 
| scoring\_criteria[].complexity\_score | Y | 数値 | 0-100 | 基準が一致したときに割り当てるスコア | 

 **ソートルール JSON プロパティの優先順位付け** 


| プロパティ名 | 必須 | タイプ | 許可された値 | 説明 | 
| --- | --- | --- | --- | --- | 
| rule\_type | Y | string | PRIORITIZING | 「PRIORITIZING」である必要があります | 
| rule\_name | Y | string | 任意のテキスト | ルールの名前 | 
| rule\_description | N | string | 任意のテキスト | ルールのオプションの説明 | 
| sub\_type | Y | string | SORTING | 「SORTING」である必要があります | 
| ステータス | Y | string | ENABLED、DISABLED | ルールがアクティブかどうか | 
| asset\_type | Y | string | 有効なアセットタイプ | ソートするアセットのタイプ | 
| attr\_key | Y | string | 有効な非関係属性 | ソートの基準となる属性 | 
| sort\_order | Y | string | ASC、DSC | 昇順または降順のソート | 
| sort\_level | Y | 数値 | 任意の数値 | ソートの優先度レベル | 
| sort\_by\_value | N | array | 文字列の配列 | ソートの基準となる特定の値 | 

ロールにより、1 つ以上のポリシーを 1 つ以上のグループに割り当てることができます。ロールに割り当てられたすべてのポリシーを組み合わせることで、アクセス権限が付与されます。ロールは、プロジェクトや組織内の職務や職務に基づいて作成できます。

## ウェーブ割り当ての変更
<a name="wave-assignment-changes"></a>

ウェーブプランニングマネージャー (WPM) 機能を有効にすると、ユーザーインターフェイスを介したウェーブへのサーバーの割り当てが更新され、移動グループが組み込まれるようになりました。移動グループは、一緒に移行する必要がある関連アセットを整理するために不可欠です。

主な変更点。
+ ユーザーインターフェイスを介したサーバーからウェーブへの直接的な割り当てはサポートされなくなりました。
+ 移動グループにはサーバーを割り当てる必要があり、その後、移動グループはウェーブに割り当てられます。

[従来のインポート](metadata-management.md#importing-data)によってインポートされたサーバーの場合:
+ 既存のウェーブ割り当ては維持されます。
+ 従来のインポートによってインポートされたサーバーのウェーブを変更するには:

  1. 移動グループを作成してウェーブに割り当てる

  1. サーバーを編集し、サーバーを移動グループに割り当てる