Oracle Cloud Migration Service を使った、AWS EC2(CentOS Stream9)からOCI Computeへの移行検証

Oracle Cloud Migration Service（OCM）の検証です。
AWS EC2(CentOS Stream9)からOCI Computeへの移行検証をします。

# OCIクラウド移行ガイドとは?

オンプレミスやAWSなどからOCIへの移行プロジェクトに取り組んでいるクラウドエンジニア（@araidon,@kazunishi,@yama6,@tktk2712,@ritokuna,@nomu_kyou,@ora-777,@sshatari,@makoji,@miztana）による、OCI移行手順をまとめたシリーズ記事です
サンプルワークロードから対象サービスを取り上げ、移行手順をガイドいたします
まとめ記事は以下です

https://qiita.com/yama6/items/b197c0fe3ec75eb02637

# 今回利用するOCMとは?

VMware仮想マシンおよびAmazon Web Services (AWS) EC2インスタンスを、
Oracle Cloud Infrastructure (OCI)コンピュートに移行するためのサービスです

OCM概要資料はこちら↓

https://speakerdeck.com/ocise/oracle-cloud-migrations-servicegai-yao



# OSのサポートってについて

仮に移行はできたとしても、CentOS Stream9がサポートされる否かで、実際に業務用途のサーバーを移すか変わってきますよね。

以下の資料に、`CentOS（CentOS Streamを除く）は、リポジトリをOCI Yum Serverに変更することでOracle Linux Premier Supportを提供`とあります。

つまりCentOS StreamはOCIではOSサポートはしていないとのことです。

https://speakerdeck.com/ocise/ociji-shu-zi-liao-konpiyutosabisu-gai-yao?slide=44

ここからは私の所感が入りますが、CentOS Streamは最新の変更が適用される、安定版ではないため、OCIもサポートを見送ったということなのでしょうか、、


# 移行の流れ

前提条件の作成を実施しているものとします。
前提条件の作成方法は以下の記事をご参照ください。

https://qiita.com/yama6/items/df03e226eb940797b396

また上記の記事にOCMのコンポーネントが解説されてます。
手順だけではなく、より詳しい移行イメージや構成を見たい方はご参照ください。



この記事では、以下の7STEPを踏んで移行していきます。
1 【AWS】AWSの資格情報取得
2 【AWS】移行元インスタンスの準備
3 【OCI】アセットソースの作成
4 【OCI】アセットソースで検出の実行
5 【OCI】移行プロジェクトの作成
6 【OCI】アセットのレプリケート
7 【OCI】移行検証

# 1 【AWS】AWSの資格情報取得 
OCIからAWSに接続するための、資格情報を先に確認しておきます。
必要な情報は以下。

+ アカウントID
+ アクセスキーID / シークレット・アクセスキー

これらをマネジメントコンソールから確認してメモっておきましょう。
具体的な確認方法を知りたい方は以下をご確認下さい。
それ以外の方は[ 2 【AWS】移行元インスタンスの準備](https://qiita.com/yama6/items/df03e226eb940797b396#%E3%82%B3%E3%83%B3%E3%83%9D%E3%83%BC%E3%83%8D%E3%83%B3%E3%83%88)にスキップしてください。

+ アカウントID
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3490789/e6671a80-1d11-5cee-e47b-d2c6ff5c5992.png)

<br>

+ アクセスキーID / シークレット・アクセスキー

セキュリティ認証情報をクリック。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3490789/b7dd6104-4a0d-d05b-8991-a140759e1056.png)

「アクセスキー作成」をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3490789/e9cda421-dbc0-a0d2-187c-e6d98b951d7b.png)

「アクセスキーの作成を続行しますか？」にチェックを入れ、アクセスキー作成をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3490789/98fe5c39-9646-e9ad-a9ef-3697e780c404.png)

[アクセスキー]と[シークレットアクセスキー]が表示されるので、これをメモっておきましょう。
それか[.csvファイルのダウンロード]を押して、アクセスキーとシークレットアクセスキーを控えておく形でも大丈夫です。

:::note warn
[シークレットアクセスキー]はここでしか表示されないので、忘れずに控えておきましょう
:::

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3490789/5cf37970-4145-8bf3-d199-700a8214deaf.png)

アクセスキーID / シークレット・アクセスキーを控えたら[完了]を押して、画面を閉じてOKです。



# 2 【AWS】移行元インスタンスの準備

AWS環境にて、移行元となるEC2インスタンス（CentOS Stream9）を作成します。

+ OS：**CentOS Stream9**
+ AMI ID：**ami-0d8ee41b4b6f8343b**
+ 提供元：**CentOS公式 [（こちら）](https://www.centos.org/download/aws-images/?utm_source=chatgpt.com)**
+ インスタンスタイプ：**t2.micro**

インスタンス作成画面からAMI IDを検索することも可能ですが、私はCentOSの公式の[HP](https://www.centos.org/download/aws-images/?utm_source=chatgpt.com)の「Deploy link」からインスタンスを作成しました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3490789/fa3031ec-1a6b-1c4a-990d-9b215a382c09.png)

AMIの詳細です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3490789/f2fda92e-75f5-78db-7d5a-56a649ddb411.png)


ssh接続の確認
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3490789/a9300f8c-c498-4fde-9c09-fd54e7a5eb47.png)

# 3 【OCI】アセット・ソースの作成

アセット・ソースとはAWS環境との接続情報を扱うためのコンポーネントです。
OCIコンソールでアセットソースを作成します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3490789/9ae89d16-effa-a255-2cac-1665f4fa718f.png)

[アセット・ソース作成]を押します。

:::note info
このタイミングで、「前提条件の作成」で作成した移行用のコンパートメントか確認しておきます。
間違ったコンパートメントで作成していた場合、処理の失敗などに繋がります
:::


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3490789/1b61a5b2-7087-45c2-8009-d1d603590de9.png)


ここでAWSの情報も入力します。



![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3490789/6987621e-f1fc-4443-8dd9-815380ebf1d9.png)


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3490789/0e98c7f9-98cf-6235-f11e-c46b227087f0.png)



![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3490789/4c5a8772-867e-49d9-b8a7-2117e14ed5dc.png)


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3490789/c5c936c6-1f44-29fe-1a4f-e05e1b8046dc.png)


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3490789/2afff4f2-2789-3ffc-548a-0135fb5f1db8.png)

無事に作成が出来たら、作業リクエストのステータスが成功になります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3490789/581b7596-d4af-4cd0-97a9-9eee8595b5de.png)


# 4 【OCI】アセットソースで検出の実行

[検出の実行]ボタンを押してください。
再度、検出の実行をするかどうか問われるため、再度検出の実行を押してください。


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3490789/7837210b-ca61-405a-b0d3-0c49aea6d3bc.png)


検出自体は、1、2分くらいで終わりました。
検出が終わると、AWS環境のEC2インスタンスとアタッチされたEBSの情報が取得され、「アセット」欄に表示されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3490789/956e2841-4ec7-4706-a56b-eef4d0f16382.png)


ちなみに、外部アセットIDがAWSのインスタンスIDやボリュームIDに該当します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3490789/4b36e533-6487-4b43-9ec0-dbee545edf18.png)


# 5 【OCI】移行プロジェクトの作成

移行プロジェクトとは～～～。


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3490789/870d9d1e-994b-4688-a0ed-cce36249e1ac.png)

今回は[初期移行プランを使用して移行プロジェクトを作成します]で進めます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3490789/56cfe30c-e822-4a78-b9fc-6ea3880e46ce.png)



### 基本情報の入力

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3490789/a77d8594-4174-4b24-9a3d-96fdbcfc19e7.png)



+ **表示名**：任意の値
+ **コンパートメント**：移行プロジェクトのリソースの配置場所
+ **レプリケーション・スケジュール**：移行元からのデータのレプリケーションを手動実行するか、スケジュールベースで実行するか

### アセットの入力

[OCMインベントリからの追加]をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3490789/8f4b4e87-49fb-4f55-954b-09aacf68d129.png)

移行したいアセットのチェックボックスにチェックをいれ、[移行アセットの追加]を押す
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3490789/08c3a2d1-aaa0-4437-b09a-611ee1c4d2ad.png)

ちゃんとCentOSが選択されていることを確認して、「次」に進む
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3490789/115f8ead-edd0-4537-8ee6-081061b8d92e.png)

### レプリケーション位置の入力

レプリケーション・バケットを指定し、移行アセットを指定済みにして、[次]に進む

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3490789/fdaf01bc-70df-4a0e-8906-4954a5b727d9.png)


### 初期移行プラン


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3490789/195b39ad-792d-488c-9393-fc85fb216967.png)



![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3490789/2cad07e8-ead7-46ef-9d17-a91799573b58.png)


### 確認および作成

入力内容をサクッと確認して[作成]ボタンを押す。
無事にすべての内容が作成できたら[閉じる]ボタンでOK。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3490789/0a12e0a1-2d14-40eb-9054-0ef0b907964e.png)

移行プロジェクト詳細のページでも、移行プランが`アクティブ`になっているのが確認できます！

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3490789/4eb393c6-d211-49df-a1fc-82498255e65f.png)


# 6 【OCI】アセットのレプリケート

そのままの画面で、レプリケートを実施します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3490789/4482dd70-365d-4f6d-b660-06a8bcf4d531.png)


:::note info
この作業は約３０分程、かかりました
:::

完了すると、作業リクエストで完了率が100%になっているのが確認できます。


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3490789/37277889-d816-4dcd-94f6-7317abc95f9e.png)

この作業で作成される一時的なリソースについても、触れていきたいと思います。
コンピュート一覧を確認すると２つ、今回のタイミングで作成されたのが確認できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3490789/f838c019-2315-469e-953b-225253e532bc.png)

役割としては以下です。
+ HydrationAgent：EBS Direct APIを実行し、ブートボリュームにEBSからデータを書き込むインスタンス
+ vanilla-instance：ブートボリュームを生成するためだけに起動され、ボリュームを生成できたらすぐに終了されるインスタンス

ちなみにブート・ボリュームも一覧確認すると、今回のタイミングで作成されたものがわかります。
G-から始まるボリュームに関して、ゴールデン・ボリュームと呼ばれるもので、このあと生成するCompute VM（EC2から移行するCentOS Stream9）のブート・ボリュームになります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3490789/571a1b8d-b18e-4619-ab37-5e3bc1cc4d72.png)


# 7 【OCI】移行検証

移行プロジェクト内にある、移行プランを選択。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3490789/4010e506-68ef-4262-8426-bc85e937d4ee.png)

ターゲット・アセットから、アクションより構成を選択。

:::note info
構成は非活性にならない場合は、ターゲットアセットを選択して、アクションボタンを教えてください。
:::

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3490789/1ef03ecb-2f65-4b82-8912-0140404fcc33.png)

デプロイ先のVCN、サブネットをここで設定します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3490789/e28a10e6-03f1-4ecc-8c1d-76ddee2c3eeb.png)

RMSスタックの作成
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3490789/5a1d4070-6ca8-46fb-9eb8-513cf25823c8.png)

無事に作成ができると、RMSスタックの欄に、スタックが表示されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3490789/c29a90d6-cdb5-42b7-aea6-6509f726b1de.png)


RMSスタックのデプロイを実施します。
このデプロイが完了すると、EC2からの移行が完了します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3490789/12491ebf-8120-4a3b-94a4-99d9dd0270ae.png)

実際にコンピュートを見てみると、該当のEC2がありました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3490789/9edbf364-0c78-4a41-b60b-036dd93e4993.png)

CloudShellにpemファイルをアップロードして、接続します。

:::note warn
ユーザは “opc”ではなく、”ec2-user”です。
:::



![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3490789/91a68311-f007-408b-9156-a3a0bb469c13.png)

接続できました！！！


移行するまでに複数のSTEPを踏むため、わかりにくい部分は有ります。
とはいえ、今までこのような移行ツールがなかったため、インスタンス数が多いなどの条件によっては、検討の余地があるのかなと思いました。

以上