CloudEndure Migrationを使ってオンプレミスサーバーをAmazon EC2に移行する

#1.CloudEndure Migration#

- エージェント型サーバ移行サービス 
 - エージェントインストール時のOS再起動は不要。
 - 物理/仮想マシンを問わない。
 - 管理コンソールはSaaSで提供。

- ブロック単位の差分転送（暗号化）
 - ニアゼロダウンタイム移行を実現。
 
- 様々な移行OSをサポート。
 - Windows Server 2003/2008/2012/2016/2019
 - CentOS,RHEL,OEL,SUSE,Ubuntu,Debian

- エージェントのインストール後90日間無料で移行。

#2.仕組み#

①CloudEndure用IAMユーザを作成し、CloudEndure Consoleから認証
②移行対象のソースマシンにCloudEndure Agentをインストール
③データは常に非同期で転送
④ステージング領域にレプリケーションサーバーが作成され、データをEBSにレプリケーション
⑤カットオーバー実行後、ステージングEBSから、スナップショットが作成され、コンバーターインスタンスにアタッチ→変換→ターゲットEC2インスタンスにアタッチ。
⑥コンバーターインスタンスは以下を実施。
・適切なAWSドライバーの挿入
・ブートローダーの適切な変更
・ネットワークアダプタの修正
・AWS KMS を使用したOSのアクティベーション

#3.やってみる#

- CloudEndure Migration を使ってオンプレミスサーバーを Amazon EC2 に移行する。
- オンプレミス環境がないので類似環境をAWS上に作成して、AWSへのサーバーへ移行する。

##3-1.事前準備##

次のとおりVPCを3つ作成する。

|VPC|パブリックサブネット|
|---|---|
|ソースVPC:10.0.0.0/16|10.0.0.0/24|
|ステージングVPC:10.1.0.0/16|10.1.0.0/24|
|ターゲットVPC:10.2.0.0/16|10.2.0.0/24|

ソースVPCに次のユーザーデータで、EC2インスタンスを作成しておく。

```
#!/bin/bash
yum -y update
yum -y install httpd
systemctl enable httpd.service
systemctl start httpd.service
```
セキュリティグループは、22番ポート、80番ポートを開け、HTTPサーバが起動していることだけ確認しておく。

##3-2.CloudEndureアカウントを作成##

下記ののページに従って、CloudEndureアカウントを作成し、ログインする。

https://aws.amazon.com/jp/premiumsupport/knowledge-center/cloudendure-migration-migrate-data/

次に、CloudEndureコンソールから、ステージングVPCをもつAWSアカウントに、APIで操作を行う必要があります。
このためには、IAMユーザを作成し、アクセスキーとシークレットアクセスキーをCloudEndureコンソールに登録する必要があります。
「these permissions」をクリックすると、必要なIAMポリシーの権限が表示さレますので、こちらの内容をコピーして、IAMユーザーを作成し、アクセスキーと、シークレットアクセスキーを、CloudEndure の　AWS CREDENTIALS に登録してください。
![スクリーンショット 2021-08-17 18.30.07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280929/a083d750-c112-0008-7930-d53dafbf2d8c.png)

##3-3.レプリケーションの実行##

「Migration Source」と「Migration Target」を指定します。
※ここでは、オンプレからAWSへの移行を想定として、「Migration Source」には、"Other Infrastructure"、「Migration Target」には"ステージングVPCが作成されているリージョン"を指定します。
![スクリーンショット 2021-08-17 18.56.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280929/84a1004f-e5b3-e965-54a4-2b46cfab452f.png)

「Choose the subnet where the Replication Servers will be launched」で"レプリケーション先とするステージングVPCとそのサブネット"を指定します。
![スクリーンショット 2021-08-17 18.59.34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280929/3e9df4ed-f428-2070-28fb-d387047f9261.png)

CloudEndure Agentのインストール方法が表示されるので、指示に従ってソースVPCに起動してあったEC2にインストールします。

```
wget -O ./installer_linux.py https://console.cloudendure.com/installer_linux.py

sudo python ./installer_linux.py -t XXXXXXXXXX --no-prompt
```

CloudEndureの画面へ戻ると、しばらくすると、レプリケーションが完了していることがわかります。
![スクリーンショット 2021-08-18 15.51.37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280929/2372ee5b-6d4e-8953-afc8-6ad88bb35327.png)

##3-4.カットオーバー##

ここではまず、レプリケーション元からどのVPCやサブネットにカットオーバーするかを指定します。
「Machine Type」には"t2.micro"、「Subnet」は"ターゲットVPCとそのサブネット"、「Private IP」には"Create new"を指定します。
![スクリーンショット 2021-08-18 15.55.16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280929/ebb90003-cd02-6c7e-cb4b-cbe5058d3083.png)
![スクリーンショット 2021-08-18 15.55.47.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280929/a604a441-33e7-7c96-db84-72e76058c023.png)

次にソースVPCにあるEC2のindex.htmlを適当に修正し、カットオーバーするターゲットVPCに同じ内容が移行されるか確認していきます。

「Cutover Mode」を選択します。
※2つのモードは、テスト済みかカットオーバー済みかにより動作上の相違はない。
![スクリーンショット 2021-08-18 16.02.14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280929/fd3833a2-7d61-8de2-1ffa-56ab282e5f6a.png)

カットオーバーが終わると、EC2の画面で次のとおりインスタンスが起動していることがわかります。
![スクリーンショット 2021-08-18 16.13.16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280929/5c8a5ba2-45b5-9a0d-f0b8-2e0b983bfb5f.png)

- CloudEndure Replication Server con17 ➡ CloudEndureAgentからレプリケーションされた先のサーバーです。
- CloudEndure Machine Converter con17 ➡ レプリカサーバをLaunchする時の処理用
- ip-10-0-0-107.ec2.internal ➡ 移行したEC2サーバーです。

最後に移行したEC2サーバーのDNSにhttpアクセスし、ソースVPCのEC2に反映した内容と同じ内容が表示されるか確認してみてください。