202504_異なるDB間移行作業に特化したAWS Schema Conversion Tool(AWS SCT)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4050042/c770a0a8-b86c-434e-9eaf-925d2ea12329.png)

## 📌 目次

1. [異なるDB間移行作業の自動化アプローチの手段](#異なるdb間移行作業の自動化アプローチの手段)  
2. [AWS SCTの概要](#aws-sctの概要)  
3. [目的別の機能一覧](#目的別の機能一覧)  
4. [ツールの利用準備手順](#ツールの利用準備手順)  
5. [使い方と機能をYoutubeから確認する](#使い方と機能をyoutubeから確認する)  
6. [Youtubeの内容からピックアップ](#youtubeの内容からピックアップ)  
7. [自動変換が失敗するパターン](#自動変換が失敗するパターン)  
8. [執筆予定](#執筆予定)


# ①異なるDB間移行作業の自動化アプローチの手段

DBの移行プロジェクトを2回経験しましたが、どちらの現場でも手作業でのコード作成とスキーマ作成をする方針でした。同じような境遇のエンジニアに届くことを祈っています。
現場のセキュリティレベルでローカル環境での作業が必須になる場合が多くあります。2025年現在では、一番安定して使えるツールがAWS SCTなのではないかと感じたので、ツールの概要をまとめています。

異なるDB間の移行プロジェクトで、コードとスキーマのコンバートを自動化するためには、以下のようなアプローチが考えられます。上から効果的だと思う順番です。

- ダウンロードツール  
- SaaS型クラウドツール  
- DBのDDLエクスポート, dumpエクスポート  
- 生成AI  
- オープンソース変換スクリプト  
- 自作スクリプト（SQL変換バッチ）  

(APIという観点もありますが、ツール自体がAPI機能を持っていることが多いので除外します。)  

---

# ②AWS SCTの概要

AWS SCTは無料ツールです。

コンバート実行時画面

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4050042/7c45a0f2-2eb6-45f2-bdef-3d3cda852f50.png)

## ③ **目的別の機能一覧**

| 目的 | 機能名 | 説明 |
|------|--------|------|
| 🔧 プロジェクトの準備 | プロジェクトの新規作成 | ソースDB・ターゲットDBの設定を入力して、新しい変換プロジェクトを開始する |
|  | 接続マネージャー | ソース／ターゲットDBへのJDBC接続を設定・管理する |
| 📂 オブジェクトの選択・確認 | ナビゲーションツリー | スキーマ、テーブル、関数などDBオブジェクトをツリー形式で一覧表示 |
|  | オブジェクトフィルター機能 | 特定のスキーマ名やテーブル名で表示をフィルター |
|  | 右クリックメニュー | 対象オブジェクトの変換、SQL表示、DMS出力などの操作が可能 |
| 🔁 スキーマ・コードの変換 | 変換プレビュー画面 | 選択したオブジェクトの変換後のDDLやSQLコードを表示・編集可能 |
|  | スキーママッピング画面 | ソースとターゲットの列やデータ型のマッピングを手動で調整可能 |
|  | 設定画面（変換ルール） | データ型変換のルールやオプション（例：コメント保持）をカスタマイズ |
| 📊 変換結果の確認・分析 | 評価レポートビュー | 自動変換の成功率や互換性の問題点を視覚的にレポート表示 |
|  | エラー／警告ログパネル | 変換中のエラーや注意点をログとして確認 |
| 📤 データ移行との連携 | DMSエクスポート | Amazon DMS向けにテーブルマッピング設定ファイルを生成・出力する |
| 💾 作業の保存・再利用 | プロジェクト保存／読み込み | プロジェクトの状態（接続、変換設定）を保存・再開可能 |
|  | SQL・レポート出力 | 変換結果のSQLファイル、互換性レポートをエクスポート可能 |

---

## ④ツールの利用準備手順

1. **ツールのダウンロード**  
　ダウンロード方法の説明ページを開きます。

　日本語:  
　https://docs.aws.amazon.com/ja_jp/SchemaConversionTool/latest/userguide/CHAP_Installing.Procedure.html

　英語:  
　https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Installing.Procedure.html

　環境に合ったツールをクリックして、ダウンロードされたインストーラーを実行したら完了です。

　- Microsoft Windows  
　- Ubuntu Linux (.deb)  
　- Fedora Linux (.rpm)

2. **AWS SCT を起動します。**  
3. 「ファイル」>「新しいプロジェクト」を選択します。  
4. プロジェクト情報を入力します。  
5. 移行元データベースの接続情報を入力します。  
6. 移行先データベースの接続情報を入力します。

　データのインポートが完了するので、作業を開始できます。

---

## ⑤使い方と機能をYoutubeから確認する

私はYoutubeで使い方を理解しました。AWS JAPANの公式動画がとても丁寧な説明でした。次の項番から説明します。  
https://www.youtube.com/watch?v=JHrqArrH3AE

動画内のスライドは、以下のURLの[資料、動画]から取得できます。  
https://aws.amazon.com/jp/blogs/news/update-divedeep-series-19/  
イチから覚える AWS Schema Conversion Tool　[資料、動画]

英語圏のユーザー向けの動画も、AWS公式が公開しています。  
https://www.youtube.com/watch?v=Skw78o88XWs

---

## ⑥Youtubeの内容からピックアップ

- 複数サーバーのスキーマ情報を扱うことができます。  

- 接続中の移行先DBのスキーマを作成できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4050042/33f89ccf-f1ea-4d9f-ac0e-0f958cebf84c.png)

- ツールで表示されるソースコードは色分けされて、テキストエディタと同等の可読性です。変換エラーは黄色くハイライトされます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4050042/2f8985ae-ab9b-4298-9d01-cc65e370034f.png)

- 自動変換に失敗したオブジェクトを選択すると原因が表示されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4050042/78c4e473-406d-4552-aa56-87947c78ab59.png)

- 自動変換に失敗した場合にグラフィカルなレポートが作成されます。CSVのエクスポートも可能です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4050042/8d92c359-f251-4874-ac4f-f0d12b677c35.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4050042/c4fa9e0a-57e2-4573-8823-7f12945186a0.png)

- 上記のエラー内容を元に、修正に必要な工数が集計されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4050042/eac00753-42da-4076-b951-6f9a81bef8c5.png)

(B): 改修方法の調査と決定に要する時間
(A): 問題の発生回数
(C): (A)一つ当たりの修正にかかる時間

## ⑦自動変換が失敗するパターン

| パターン | 内容 |
|----------|------|
| 変数をSQLに使用している場合 | 機械的に分析できずエラーになります |
| 移行先DBに無い機能が含まれている場合 | エラーになります |

## ⑧執筆予定
✅ネットワーク監視開発をPM視点で成功させるためのWBS作成
✅モダン環境でフルスクラッチシステムを開発している現場で抑えておくポイント
✅コーディング初心者がWebアプリ開発現場に入る方法と経歴の作り方の提案