オンプレミスからクラウドへの移行まとめ（SAA-C03）

SAA-C03向けまとめ
# オンプレミスからクラウドへの移行まとめ

# 1. 移行サービス
参考：https://aws.amazon.com/jp/cloud-data-migration/

- [1.1 データの移行](#11-データの移行)
    - ハイブリッドクラウドストレージ
（ネットワーク帯域幅の制限がない場合に適した選択肢）
        - AWS Direct Connect
        - AWS Storage Gateway
    - オンラインデータ転送
        - AWS DataSync
        - AWS Transfer Family
        - AWS Snowcone
        - Amazon S3 Transfer Acceleration (エッジロケーション経由でより迅速なアップロード)
        - Amazon Data Firehose（リアルタイムデータ送信）
    - オフラインデータ転送
        - AWS Snowcone
        - AWS Snowball
- [1.2 データベースの移行](#12-データベースの移行)
    - AWS Database Migration Service (DMS) 

- [1.3 アプリケーションの移行](#13-アプリケーションの移行)
    - AWS Application Migration Service (MGN)

## 1.1 データの移行
### AWS Direct Connect
基本、1回限りの移行は不適、<b>長期的</b>な利用に最適

インターネットに比べて、高速でセキュア


### AWS Storage Gateway
1回限りの移行は不適、<b>長期的</b>な利用に最適

オンプレミスのリソースをクラウドと統合する
オンプレミス環境のストレージが不足している場合

仮想アプライアンスGWまたはハードウェアアプライアンスが必要

||S3 ファイルゲートウェイ|FSx ファイルゲートウェイ|
|---|---|---|
|プロトコル|NFS、SMB（Windowsファイルサーバー用）|SMB|
|AWS環境|S3へ保存|FSx for Windows File Serverへアクセス|
|ユースケース|オンプレミスデータ集約型アプリケーションで、<font color=Peru>S3へ保存</font>したい場合|オンプレミスからクラウド内のFSx for Windows File Serverファイル共有へ<font color=Peru>低レイテンシーで効率的なアクセス</font>をしたい場合|
|補足|オンプレミス環境内で動作する単なるVM|FSxに存在するファイルデータに対するキャッシュ機能|



![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2950120/5baddc20-f323-abeb-1df0-d090a965363e.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2950120/1160cec2-47ad-cadb-9ea1-8fbbfba28d65.png)


||ボリュームゲートウェイ|テープゲートウェイ|
|---|---|---|
|プロトコル|iSCSI（ストレージアクセス用）|iSCSI、VTL（仮想テープライブラリ）|
|AWS環境|S3へバックアップし、EBSスナップショットを作成|S3へバックアップ|
|ユースケース|オンプレミスからAmazon EBSに移行する際のギャップを埋める|既存のバックアップワークフローを変更することなくオンプレミスのテープをAWSに移行する|
|補足|キャッシュ型ボリュームと保管型ボリュームが存在する|暗号化通信|

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2950120/236d5583-f7c4-f720-d1ad-856a3176dd7c.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2950120/1ffb8593-ad33-e765-e99b-65e48b158122.png)


参考、引用
https://aws.amazon.com/jp/storagegateway/file/s3/
https://docs.aws.amazon.com/filegateway/latest/filefsxw/what-is-file-fsxw.html
https://aws.amazon.com/jp/storagegateway/volume/?nc=sn&loc=2&dn=4
https://aws.amazon.com/jp/storagegateway/vtl/?nc=sn&loc=2&dn=3

### AWS DataSync
<b>1回限り</b>の移行に最適、長期的な利用は不適

オンプレミスのストレージをS3,EFS,FSxに移行する
スケジュールを設定し、定期的なデータ転送も可能
データ転送料に応じた従量課金制

オンプレミス環境で使用する場合はDataSyncエージェントをインストールする


#### オンプレミスストレージとの間での転送 AWS
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2950120/f60b1f19-242b-98db-cae8-8acbb2f4b13a.png)

#### AWSストレージサービス間の転送
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2950120/b476c8b2-23dd-9a8e-04b5-57add40abab3.png)

#### AWSクラウドストレージシステムとストレージサービス間の転送
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2950120/83f9a01d-8551-d55e-f3f1-652c8784497c.png)

参考、引用：https://docs.aws.amazon.com/ja_jp/datasync/latest/userguide/how-datasync-transfer-works.html

### AWS Transfer Family
Secure File Transfer Protocol(SFTP),File Transfer Protocol over SSL(FTPS),File Transfer Protocol(FTP)など変更できないプロトコルを使用するレガシーアプリケーションを変更せずに、S3、EFSへファイルを移動


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2950120/3015dd40-119e-56ec-b549-9d81fc22a870.png)


### Snowファミリー
1回限りの移行でも、長期的な利用でも

物理デバイスを得て、AWSとの間で大規模なデータを移行する
納期は約１週間

<img width="200" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2950120/fa53e9e8-949e-a812-228c-1a1b090b468a.png">

||AWS Snowcone|AWS Snowball Edge|
|---|---|---|
|ストレージ|8 TB|約50-80TB|
|vCPU|2|40-104|
|メモリ|4 GB|80-416 GB|
|用途|IoTセンサーの統合<br>スペースと電力に制限があるエッジコンピューティング|AWSへの移行|

https://aws.amazon.com/jp/snow/

## 1.2 データベースの移行

### AWS Database Migration Service (DMS) 
<b>RDB、データ ウェアハウス、NoSQL データベース、その他の種類のデータストア</b>を移行する

#### 特徴
- 一度限りの移行も、継続的な変更のレプリケートも可能
    - フルロードのみ
    - フルロードと変更データのキャプチャ（CDC）(トランザクションの整合性を保証)
    - CDCのみ
- 移行環境（オンプレミス、オンプレミス間は不可）
    - オンプレミスからAWSへの移行
    - AWSとオンプレミスの組み合わせへの移行
- エンジン
    - 同じエンジン（例 MySQLからMySQL）への移行
    - 異なるエンジン（例 OracleからPostgreSQL）への移行

#### 異なるデータベースエンジンに移行する方法
- DMS Schema Conversion： ソーススキーマを自動的に評価し、新しいターゲットエンジンに変換
- AWS Schema Conversion Tool (AWS SCT)： ローカルPCにダウンロードして、ソース スキーマを変換
    - 様々なRDSだけでなくデータウェアハウスの変換もサポート
    - Amazon　RDS, Amazon　Aurora, Amazon Redshiftに使用可能
    - Amazon EC2 インスタンスでデータベースと共に使用可能
    - Amazon S3 バケットでデータとして保存も可能

#### 移行の流れ
AWS DMS = レプリケーション ソフトウェアを実行するサーバー
1. ソースとターゲット間の接続を作成して、データの抽出元とロード先を AWS DMSに指示
1. このサーバーで実行するタスクのスケジュールを設定して、データを移行
1. ターゲットにテーブルとテーブルのプライマリキーが存在しない場合、AWS DMS が自動的に作成
1. 必要に応じて、ターゲットテーブルを手動で事前に作成することも可能
1. 必要に応じて、AWS SCTを使用して、ターゲットテーブル、インデックス、ビュー、トリガーなどの一部またはすべてを作成することも可能

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2950120/0071f527-9ca8-1a09-0d57-a2c52b356b91.png)

#### 大規模データストアの移行
AWS DMS と AWS Snowball を使用して大規模なデータベース移行を可能にする

テラバイト単位の移行はネットワークの帯域幅制限により時間がかかるが、特定のSnowball EdgeデバイスとS3をDMSと組み合わせことで迅速に移行できる
（SCTを使用してデータをSnowballデバイスに抽出
→S3へ移行
→DMSでS3から任意の場所に移行（CDC互換あり））

参考、引用
https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html
https://aws.amazon.com/jp/blogs/news/enable-large-scale-database-migrations-with-aws-dms-and-aws-snowball/

## 1.3 アプリケーションの移行
### AWS Application Migration Service (MGN)

自動化されたリフトアンドシフト (再ホスト) ソリューション
 - アプリケーションのAWSへの移行を簡素化、迅速化し、コストを削減できる。
 - ソースサーバー （VM、物理サーバー、クラウドサーバー） をAWSに複製するため、パフォーマンスの中断、長い切り替え期間なしにリフトアンドシフト可能
 - 目標復旧時点 (RPO)： 数秒未満
 - 目標復旧時間 (RTO) ：分単位

参考
https://docs.aws.amazon.com/mgn/latest/ug/what-is-application-migration-service.html

### サービス終了
|サービス名|概要|終了時期|
|---|---|---|
|AWS Snowmobile|ペタバイトあるいはエクサバイトのデータを移行|2024年4月|
|AWS Server Migration Service (AWS SMS)|オンプレミスの VMware vSphere または Microsoft Hyper-V/SCVMM 仮想マシンのAWSクラウドへの移行を自動化|2022年3月|

# 2. 移行の追跡、検出

### AWS Migration Hub
AWSへのアプリケーション移行の進行状況を1か所で追跡できる
DMS、MGNと統合されている
AWS Application Discovery Agentを使用して検出もできる

### AWS Application Discovery Service

オンプレミスのサーバーとデータベースの使用状況と設定データを収集し、AWSへの移行計画を支援する
AWS Migration Hubと統合されている

2つのタイプ
- エージェントレス検出：
VMware vCenterを通じてAgentless Collector(OVA file)を展開することで実行できる
    - vCenterに関連付けられているVMとホストを識別
    - サーバーのホスト名、IP アドレス、MAC アドレス、ディスク リソース割り当て、データベース エンジン バージョン、データベース スキーマなどの静的設定データを収集
    - 各 VM とデータベースの使用率データを収集


- エージェントベースの検出
各VMおよび物理サーバーにAWS Application Discovery Agentをインストールすることで実行できる(WindowsおよびLinux用)
     - 静的な構成データ、時系列システムパフォーマンス情報、受信および送信ネットワーク接続、実行中のプロセスを収集

参考
https://docs.aws.amazon.com/application-discovery/latest/userguide/what-is-appdiscovery.html