

# リプラットフォームから EC2
<a name="replatform-to-ec2"></a>

AWS での Cloud Migration Factory ソリューションを使うと、EC2 インスタンスのグループをデータストアで定義された設定から自動的に起動し、EBS ボリュームがアタッチされた EC2 インスタンスをデプロイできます。これにより、新しい EC2 インスタンスをプロビジョニングできるようになるため、AWS CloudFormation 経由でリプラットフォームを行い、単一の CMF ユーザーインターフェイス内で AWS MGN を使ってオンプレミスサーバーをリホストすることができます。この機能を使用するには、データストアにサーバーの定義が含まれている必要があります。この問題を解決したら、サーバーをウェーブにリンクする必要があります。EC2 インスタンスを起動することにした場合、ユーザーはウェーブに対して以下のアクションを開始できます。
+ EC2 入力の検証
+ EC2 が CF テンプレートを生成する
+ EC2 デプロイ

## 前提条件
<a name="prerequisites-1"></a>

リプラットフォーム属性アクセスを追加する権限。

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

自動化スクリプトをデプロイする前に、ニーズに最適なコンピューティングプラットフォームを決定します。
+  **従来の自動化サーバー**: 複雑な依存関係、複数のプログラミング言語、または特定の OS 要件を必要とするシナリオに最適
+  **SSM 自動化ドキュメント**: オンプレミス環境へのアクセスを必要としない標準の Python ベースの自動化スクリプトに推奨

## 初期設定
<a name="initial-configuration"></a>

新しい EC2 インスタンスの設定は、ユーザーインターフェイスを使用して新しいサーバーアイテムを作成する方法、またはサーバーアイテムを含む CSV 入力フォームをインポートする方法で行われます。これらの定義は、AWS CMF インスタンスがデプロイされたのと同じ AWS アカウント内の S3 バケットに保存された AWS CloudFormation テンプレートに変換されます。

### ユーザーインターフェイス定義
<a name="user-interface-definition-1"></a>

EC2 機能に対するリプラットフォームと併用する AWS Cloud Migration Factory データストアでサーバーを定義する際、サーバーは **[リプラットフォーム]** の **[移行戦略]** を使って設定する必要があります。**[リプラットフォーム]** を選択すると、この機能に必要な追加属性が画面に表示されます。これを正常に機能させるには、以下の属性を入力する必要があります。

#### 必須属性
<a name="required-attributes"></a>

 **AMI Id** – EC2 インスタンスの起動に使用される Amazon マシンイメージの ID。

 **アベイラビリティゾーン** — EC2 インスタンスがデプロイされる AZ。

 **ルートボリュームサイズ** — インスタンスのルートボリュームのサイズ (GB 単位)。

 **インスタンスタイプ** — 使用する EC2 インスタンスタイプ。

 **セキュリティグループ ID** — インスタンスに割り当てられたセキュリティグループのリスト。

 **サブネット ID** — この EC2 インスタンスを割り当てるサブネット ID。

 **テナンシー** — 現在、リプラットフォームから EC2 への統合でサポートされている唯一のオプションは **[共有]** であり、その他のオプションはテンプレート生成時に **[共有]** に置換されます。

#### オプションの属性
<a name="optional-attributes"></a>

 **詳細モニタリングを有効化** - チェックを入れると詳細モニタリングができるようになります。

 **その他のボリューム名** — 追加 EBS ボリューム名のリスト。リスト内の各項目は、**[サイズ]** と **[タイプ]** リストと同じ行にマップする必要があります。

 **その他のボリュームサイズ** — 追加 EBS ボリューム名のリスト。リスト内の各項目は、**[名前]** と **[タイプ]** リストと同じ行にマップする必要があります。

 **その他のボリュームタイプ** — 追加 EBS ボリュームタイプのリスト。リスト内の各項目は、**[名前]** と **[サイズ]** リストと同じ行にマップする必要があります (指定しない場合、デフォルトはすべてのボリュームについて **[gp2]** となります)。

 **ボリューム暗号化の EBS KMS キー ID** — EBS ボリュームを暗号化する場合は、**[キー ID]**、**[キー ARN]**、**[キーエイリアス]**、または **[エイリアス ARN]** を指定します。

 **EBS 最適化を有効にする** — 選択して **[EBS 最適化]** をオンにします。

 **ルートボリューム名** — 表示されるオプションから選択します。指定されていない場合は ID が使用されます。

 **ルートボリュームタイプ** — 作成するボリュームの EBS タイプを指定します。指定しない場合、デフォルトは **[gp2]** となります。

### インテークフォーム定義
<a name="intake-form-definition-1"></a>

インテークフォームでは、データストアを使用して複数のタイプのレコードを作成または更新するための詳細を CSV ファイルの 1 行にまとめることができ、これにより、関連データをインポートできます。以下の例では、ウェーブ、アプリケーション、サーバーのレコードがインポート時に自動的に作成され、相互に関連付けられます。

例:インテークフォーム


| 列名 | サンプルデータ | 必須 | 注意事項 | 
| --- | --- | --- | --- | 
| wave\_name |  `wave1`  | はい |  | 
| app\_name |  `app1`  | はい |  | 
| aws\_accountid |  `1234567890`  | はい |  | 
| server\_name |  `Server1`  | はい |  | 
| server\_fqdn |  `Server1`  | はい |  | 
| server\_os\_family |  `linux`  | はい |  | 
| server\_os\_version |  `Amazon`  | はい |  | 
| server\_tier |  `Web`  | いいえ |  | 
| server\_environment |  `Dev`  | いいえ |  | 
| subnet\_IDs |  `subnet-xxxxxxx`  | はい |  | 
| securitygroup\_ID |  `sg-yyyyyyyyyy`  | はい |  | 
| instanceType |  `m5.large`  | はい |  | 
| iamRole |  `ec2customrole`  | いいえ |  | 
| tenancy |  `Shared`  | はい |  | 
| r\_type |  `Replatform`  | はい |  | 
| root\_vol\_size |  `50`  | はい |  | 
| ami\_id |  `ami-zzzzzzzzzz`  | はい |  | 
| availabilityzone |  `us-west-2a`  | はい |  | 
| root\_vol\_type |  `gp2`  | いいえ |  | 
| add\_vols\_size |  `40:100`  | いいえ |  | 
| add\_vols\_type |  `gp2:gp3`  | いいえ |  | 
| ebs\_optimized |  `false`  | いいえ |  | 
| ebs\_kmskey\_id |  `1111-1111-1111-1111`  | いいえ |  | 
| detailed\_monitoring |  `true`  | いいえ |  | 
| root\_vol\_name |  `Server1_root_volume`  | いいえ |  | 
| add\_vols\_name |  `Server1_root_volumeA: Server1_root_volumeB`  | いいえ |  | 

インテークフォームをインポートするには、AWS での Cloud Migration Factory ソリューションへの他のデータのインポートと同じ手順に従います。

## デプロイアクション
<a name="deployment-actions"></a>

### EC2 入力の検証
<a name="ec2-input-validation"></a>

インスタンスパラメータを定義したら、まず次のウェーブアクションを実行する必要があります。**リプラットフォーム**>**EC2**>**EC2 の入力検証**。このアクションは、有効な CloudFormation テンプレートを作成するために、各サーバーにすべての正しいパラメータが提供されていることを確認します。

**注記**  
この検証では、現在のところ、入力パラメータが有効であるかどうかは検証されず、各サーバー定義に存在することだけが検証されます。テンプレートを作成する前に正しい値を確認する必要があります。そうしないと、テンプレートのデプロイが失敗します。

### EC2 が CloudFormation テンプレートを生成する
<a name="ec2-generate-cloud-formation-template"></a>

ウェーブに含まれるすべてのサーバーの定義が検証されたら、CloudFormation テンプレートを生成できます。これを行うには、ウェーブアクションを実行します: **リプラットフォーム**>**EC2**>**EC2 が CF テンプレートを生成する**。このアクションは、ウェーブ内の各アプリケーション用に CloudFormation テンプレートを作成します。この場合、アプリケーション内のサーバーには **[リプラットフォーム]** の **[移行戦略]** があります。他の移行戦略が定義されているサーバーはテンプレートに含まれません。

実行すると、各アプリケーションのテンプレートは S3 バケット: **-gfbuild-cftemplates** に保存されます。これは、AWS での Cloud Migration Factory がデプロイされたときに自動的に作成されました。このバケットのフォルダ構造は以下のとおりです。
+ [ターゲット AWS アカウント ID]
+ [ウェーブ名]
  +  **CFN\_Template\_** ** \\\_ ** ** 0yaml ** 

生成アクションが実行されるたびに、テンプレートの新しいバージョンが S3 バケットに保存されます。テンプレートの S3 URI は通知に記載されます。これらのテンプレートはデプロイ前に必要に応じて確認または編集できます。

現在、CloudFormation テンプレートは以下の CloudFormation リソースタイプを生成しています。
+ AWS::EC2::Instance
+ AWS::EC2::Volume
+ AWS::EC2::VolumeAttachment

### EC2 デプロイ
<a name="ec2-deployment"></a>

新しい EC2 インスタンスをデプロイする準備ができたら、**EC2 デプロイ**アクションはウェーブアクション**リプラットフォーム**>**EC2**>**EC2 デプロイ**から開始できます。このアクションでは、ウェーブ内の各アプリケーション用の最新バージョンの CloudFormation テンプレートを使用し、AWS CloudFormation で選択したターゲットアカウントにこれらのテンプレートをデプロイします。