

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# 異種混在データベースの移行
<a name="heterogeneous-migration"></a>

のようなオープンソースデータベースやクラウドコンピューティングプラットフォームのイノベーションと改善により AWS、多くの組織は SQL Server などの独自の (オンライントランザクション処理または OLTP) データベースエンジンからオープンソースエンジンに移行しています。SQL Server データベースはどの組織にとってもミッションクリティカルなシステムですが、特定のベンダーに縛られることはリスクとコストのかかる状況です。運用コストが低く、ライセンス料がかからないことが、基盤となるデータベーステクノロジをオープンソースまたは AWS クラウドネイティブのデータベースに切り替えることを検討する説得力のある理由です。

SQL Server から移行するその他の理由としては、ベンダーロックイン期間、ライセンス監査、高額なライセンス、コストなどがあります。このため、多くの組織が AWSへの移行時に SQL Server データベースをオープンソースデータベース (PostgreSQL、MySQL、MariaDB など) や AWS クラウドネイティブデータベース (Amazon Aurora や Amazon DynamoDB など) に移行することを選択しています。

SQL Server データウェアハウスデータベースを、高速でフルマネージド型のクラウドデータウェアハウスである Amazon Redshift に移行することもできます。Amazon Redshift はデータレイクと統合され、他のどのデータウェアハウスよりも最大 3 倍速いパフォーマンスを提供し、コストは他のどのクラウドデータウェアハウスよりも最大 75% 低くなります。詳細については、 AWS 「 規範ガイダンス」ウェブサイトの「 [を使用してオンプレミスの Microsoft SQL Server データベースを Amazon Redshift に移行する AWS DMS](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/migrate-an-on-premises-microsoft-sql-server-database-to-amazon-redshift-using-aws-dms.html)」パターンを参照してください。

オープンソースまたは AWS クラウドネイティブデータベースに移行するには、データの種類、アクセスモデル、スケーラビリティ、アプリケーションの実用性、複雑さに応じて、適切なデータベースを選択します。SQL Server から PostgreSQL や他のオープンソースデータベースへの移行は、しばしば困難で時間がかかり、慎重な評価、計画、テストが必要でした。

このプロセスは AWS Database Migration Service 、(AWS DMS) や AWS Schema Conversion Tool (AWS SCT) などのサービスで簡単になります。これにより、最小限のダウンタイム AWS で商用データベースを のオープンソースデータベースに移行できます。

異種データベースのマイグレーションでは、SQL Server から Aurora へのマイグレーションや、SQL Server から MariaDB へのマイグレーションのように、ソースデータベースエンジンとターゲットデータベースエンジンは異なります。ソースデータベースとターゲットデータベースのスキーマ構造、データ型、データベースコードはまったく異なる場合があるため、データ移行を開始する前にスキーマとコードを変換する必要があります。このため、異種移行は 2 ステップのプロセスです。
+ ステップ 1. ソーススキーマとコードをターゲットデータベースと一致するように変換します。この変換 AWS SCT には を使用できます。
+ ステップ 2. 移行元のデータベースからターゲットデータベースにデータを移行します。このプロセス AWS DMS には を使用できます。

 ![\[Heterogeneous database migration with AWS SCT and AWS DMS\]](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/migration-sql-server/images/migration-tools.png) 

AWS DMS は、移行中に主要なデータ型の変換を自動的に処理します。ソースデータベースは AWS、 の外部にある独自のオンプレミス、EC2 インスタンスで実行されているデータベース、または Amazon RDS データベースにすることができます ( ドキュメントの AWS DMS [「データ移行のソース](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.html)」を参照）。ターゲットは、Amazon EC2、Amazon RDS、または Aurora のデータベースにすることができます。MySQL をターゲットデータベースとして使用する方法については、 AWS データベースブログ[の「SQL Server データベースを MySQL 互換データベースエンジンに移行する](https://aws.amazon.com/blogs/database/migrating-a-sql-server-database-to-a-mysql-compatible-database-engine/)」を参照してください。

# 異種混在データベースの移行
<a name="heterogeneous-migration-tools"></a>

次の表は、SQL Server から別のデータベースエンジンへの移行に使用できるツールの一覧です。


****  

| 移行ツール | ターゲットデータベースのサポート | 次の用途に使用されます。 | 
| --- | --- | --- | 
| [AWS SCT](#aws-sct) |  Amazon RDS for MySQL Amazon RDS for PostgreSQL Amazon Aurora MySQL Amazon Aurora PostgreSQL  | スキーマ変換 | 
| [AWS DMS](#aws-dms) |  Amazon RDS for MySQL Amazon RDS for PostgreSQL Amazon Aurora MySQL Amazon Aurora PostgreSQL  | データ移行 | 
| [Babelfish](#babelfish) |  Amazon Aurora PostgreSQL  | データアクセスと移行 | 

この後のサブセクションで、各ツールの詳細について説明します。

## AWS SCT
<a name="aws-sct"></a>

[AWS Schema Conversion Tool (AWS SCT)](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) は、既存の商用データベーススキーマをオープンソースエンジンまたは AWS クラウドネイティブデータベースに変換します。 は、ソースデータベーススキーマと、ビュー、ストアドプロシージャ、関数を含むデータベースコードオブジェクトの大部分を、ターゲットデータベースと互換性のある形式に自動的に変換することで、異種データベース移行を予測可能 AWS SCT にします。

データベーススキーマをあるエンジンから別のエンジンに変換するときは、古いデータベースエンジンではなく新しいデータベースエンジンとやり取りするようにアプリケーションの SQL コードも更新する必要があります。 AWS SCT また、 は SQL コードを C\$1\$1、C\$1、Java、またはその他のアプリケーションコードで変換します。自動変換できないオブジェクトは、手動変換用に明確にマークされます。 AWS SCT は、アプリケーションのソースコードをスキャンして埋め込み SQL ステートメントを探し、データベーススキーマ変換プロジェクトの一部として変換することもできます。詳細については、 AWS ドキュメントの[「Microsoft SQL Server を のソースとして使用する AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Source.SQLServer.html)」を参照してください。

## AWS DMS
<a name="aws-dms"></a>

[AWS Database Migration Service (AWS DMS)](https://docs.aws.amazon.com/dms/) は、データを迅速かつ安全に に移行します AWS。移行中、ソースデータベースは完全に動作し続け、アプリケーションのダウンタイムを最小限に抑えます。 は、ある SQL Server データベースから別の SQL Server データベースへのデータの移行などの同種移行 AWS DMS をサポートします。また、SQL Server データベースをオープンソースデータベースや AWS クラウドネイティブデータベースに移行するなど、さまざまなデータベースプラットフォーム間の異種移行もサポートします。 は、ソースデータベースで発生したデータ変更をターゲットデータベースに自動的にレプリケートするなど、移行プロセスの複雑さ AWS DMS を管理します。データベースの移行が完了すると、ターゲットデータベースは選択した期間だけソースと同期したままになり、都合の良いタイミングでデータベースを切り替えることができます。詳細については、 AWS ドキュメント[の「Microsoft SQL Server データベースを のソースとして使用する AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.SQLServer.html)」を参照してください。

## Babelfish
<a name="babelfish"></a>

Babelfishは Amazon Aurora に組み込まれている機能です。Babelfish for Aurora PostgreSQL を使用すると、Aurora PostgreSQL 互換エディションのデータベースが Microsoft SQL Server 用に作成されたアプリケーションからのコマンドを理解できるようになります。SQL Server の独自の SQL ダイアレクトである Transact-SQL (T-SQL) で記述された SQL Server データベースコードを含む SQL Server アプリケーションの変更には労力と時間がかかります。[Babelfish for Aurora PostgreSQL](https://aws.amazon.com/rds/aurora/babelfish/)を使用すると、このプロセスがよりシンプルで簡単になります。Babelfish を使用すると、アプリケーションコードに変更を加える必要はありません。Babelfish for Aurora PostgreSQL を使用すると、SQL Server データベースから Amazon Aurora PostgreSQL DB クラスターへの移行が可能です。

Babelfish を使用すると、Aurora PostgreSQL は T-SQL を理解し、同じ通信プロトコルをサポートするため、データベースドライバーを切り替えたり、アプリケーションクエリを書き換えたりする必要はありません。元々 SQL Server 用に作成されたアプリケーションが、コードを変更する回数を減らして Aurora と連携できるようになりました。これにより、SQL Server 以降で実行されているアプリケーションを変更して Aurora に移動するのに必要な労力が軽減され、より迅速でリスクが低く、コスト効率の高い移行が可能になります。

レガシー SQL Server データベースから移行する場合は、Babelfish を使用して、ネイティブ PostgreSQL API を使用して構築した新しい機能と SQL Server コードを並行して実行することができます。Babelfishを使用すると、Aurora PostgreSQL は一般的に使用されている SQL Server ツール、コマンド、およびドライバーと連携できます。

Babelfish は、ネイティブ PostgreSQL 接続を使用してデータへのアクセスを提供します。デフォルトでは、Babelfish でサポートされている両方の SQL 言語は、次のポートでネイティブのワイヤプロトコルを通じて使用できます。
+ SQL Server 言語 (T-SQL)、クライアントはポート 1433 に接続します。
+ PostgreSQLg 言語 (PL/pgSQL) ダイアレクト、クライアントはポート 5432 に接続します。

Babelfish は、SQL Server または PostgreSQL ポートからの接続を提供することで、コードを大幅に書き直すことなく、レガシー SQL Server アプリケーションが Aurora と通信できるようにします。このアーキテクチャを以下に図で示します。

![\[BabelfishとAurora コミュニケーション\]](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/migration-sql-server/images/babelfish.png)


Aurora クラスターの Babelfish は、Amazon RDS マネジメントコンソールから有効にできます。手順については、Amazon RDS ドキュメントの「[Babelfish for Aurora PostgreSQL クラスターの作成](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/babelfish-create.html)」を参照してください。

移行の詳細については、Aurora ドキュメントの 「[SQL Server データベースから Babelfish for Aurora PostgreSQL への移行](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/babelfish-migration.html)」を参照してください。

詳細については、次のリソースを参照してください。
+ [Babelfish for Aurora PostgreSQL の使用を開始する](https://aws.amazon.com/blogs/database/get-started-with-babelfish-for-aurora-postgresql/) (AWS データベースブログ)
+ [Babelfish を使用して SQL Server から Amazon Aurora に移行する](https://aws.amazon.com/blogs/database/migrate-from-sql-server-to-amazon-aurora-using-babelfish/) (AWS データベースブログ)
+ [SSIS と Babelfish を使用して SQL Server から Aurora PostgreSQL に移行する](https://aws.amazon.com/blogs/database/migrate-from-sql-server-to-aurora-postgresql-using-ssis-and-babelfish/) (AWS データベースブログ)
+ [SSIS パッケージを SQL Server から Babelfish for Aurora PostgreSQL に変更](https://aws.amazon.com/blogs/database/modify-ssis-packages-from-sql-server-to-babelfish-for-aurora-postgresql/)する (AWS データベースブログ)
+ [Babelfish for Aurora PostgreSQL に対してSQL Server Reporting Services レポートを実行する](https://aws.amazon.com/blogs/database/run-sql-server-reporting-services-reports-against-babelfish-for-aurora-postgresql/) (AWS データベースブログ)
+ [AWS SCT 評価レポートによる Babelfish 移行の準備](https://aws.amazon.com/blogs/database/prepare-for-babelfish-migration-with-the-aws-sct-assessment-report/) (AWS データベースブログ)