翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
SQL Server データベースをモダナイズする
概要:
スケーラビリティ、パフォーマンス、コスト最適化のためにレガシーデータベースをモダナイズするジャーニーを開始する場合、SQL Server などの商用データベースで課題に直面する可能性があります。商用データベースは高価で、顧客を閉じ込め、厳しいライセンス条項を課します。このセクションでは、SQL Server からオープンソースデータベースへの移行とモダナイズのオプションの概要を示し、ワークロードに最適なオプションの選択について説明します。
SQL Server データベースを Amazon Aurora PostgreSQL などのオープンソースデータベースにリファクタリングして、Windows および SQL Server のライセンスコストを節約できます。Aurora のようなクラウドネイティブの最新のデータベースは、オープンソースデータベースの柔軟性と低コストを、商用データベースの堅牢なエンタープライズグレードの機能と融合させます。可変ワークロードまたはマルチテナントワークロードがある場合は、Aurora Serverless V2 に移行することもできます。これにより、ワークロードの特性に応じてコストを最大 90% 削減できます。さらに、 AWS は Babelfish for Aurora PostgreSQL
データベースサービス
Windows 上の SQL Server から、Amazon Aurora、Amazon RDS for MySQL、Amazon RDS for PostgreSQL などのオープンソースデータベースに移行すると、パフォーマンスや機能を損なうことなく大幅なコスト削減を実現できます。以下の点を考慮してください。
-
Amazon EC2 上の SQL Server Enterprise Edition から Amazon RDS for PostgreSQL または Amazon RDS for MySQL に切り替えると、最大 80% のコスト削減につながります。
-
Amazon EC2 上の SQL Server Enterprise Edition から Amazon Aurora PostgreSQL 互換エディションまたは Amazon Aurora MySQL 互換エディションに切り替えると、最大 70% のコスト削減につながります。
従来のデータベースワークロードの場合、Amazon RDS for PostgreSQL と Amazon RDS for MySQL は要件に対応し、リレーショナルデータベースにコスト効率の高いソリューションを提供します。Aurora は、これまで高価な商用ベンダーに限定されていた多数の可用性およびパフォーマンス機能を追加します。Aurora の耐障害性機能は追加コストがかかります。ただし、他の商用ベンダーの同様の機能と比較すると、Aurora の耐障害性コストは、同じタイプの機能に対して商用ソフトウェアが請求するコストよりも依然として安価です。Aurora アーキテクチャは、標準の MySQL および PostgreSQL デプロイと比較してパフォーマンスが大幅に向上するように最適化されています。
Aurora はオープンソースの PostgreSQL および MySQL データベースと互換性があるため、移植性という追加の利点があります。最適なオプションが Amazon RDS for PostgreSQL、Amazon RDS for MySQL、または Aurora のいずれであっても、ビジネス要件を理解し、必要な機能を最適なオプションにマッピングする必要があります。
Amazon RDS と Aurora の比較
次の表は、Amazon RDS と Amazon Aurora の主な違いをまとめたものです。
| Category | Amazon RDS for PostgreSQL または Amazon RDS for MySQL | Aurora PostgreSQL または Aurora MySQL |
|---|---|---|
| パフォーマンス | 良いパフォーマンス | 3 倍以上優れたパフォーマンス |
| フェイルオーバー | 通常 60~120 秒* | 通常 30 秒 |
| スケーラビリティ | 最大 5 個のリードレプリカ 秒単位の遅延 |
最大 15 個のリードレプリカ ミリ秒単位の遅延 |
| Storage | 最大 64 TB | 最大 128 TB |
| ストレージ HA | 1 つまたは 2 つのスタンバイを備えたマルチ AZ、それぞれデータベースコピーあり | デフォルトで 3 つのアベイラビリティーゾーンにまたがる 6 つのデータコピー |
| バックアップ | 日次スナップショットとログのバックアップ | Amazon S3 への継続的な非同期バックアップ |
| Aurora でのイノベーション | NA | 100 GB データベースの高速クローン作成 |
| リードレプリカの自動スケーリング | ||
| クエリプラン管理 | ||
| Aurora Serverless | ||
| グローバルデータベースによるクロスリージョンレプリカ | ||
| クラスターキャッシュ管理** | ||
| パラレルクエリ | ||
| データベースアクティビティストリーミング |
*大量のトランザクションがあると、フェイルオーバー時間が長くなる可能性があります。
**Aurora PostgreSQL で利用可能です。
次の表は、このセクションで説明するさまざまなデータベースサービスの推定月額コストを示しています。
| データベースサービス | 1 か月あたりのコスト (USD)* | AWS 料金見積りツール (必須 AWS アカウント) |
|---|---|---|
| Amazon RDS for SQL Server Enterprise Edition | 3,750 USD | Estimate |
| Amazon RDS for SQL Server Standard Edition | 2,318 USD | Estimate |
| Amazon EC2 の SQL Server Enterprise Edition | 2,835 USD | Estimate |
| Amazon EC2 の SQL Server Standard Edition | 1,345 USD | Estimate |
| Amazon RDS for PostgreSQL | 742 USD | Estimate |
| Amazon RDS for MySQL | 712 USD | Estimate |
| Aurora PostgreSQL | 1,032 USD | Estimate |
| Aurora MySQL | 1,031 USD | Estimate |
* ストレージ料金はインスタンス料金に含まれます。コストは us-east-1 リージョンに基づいています。スループットと IOPS は想定です。計算は r6i.2xlarge インスタンスと r6g.2xlarge インスタンスに対して行われます。
コスト最適化の推奨事項
通常、異種のデータベース間の移行では、データベーススキーマをソースからターゲットデータベースエンジンに変換し、ソースからターゲットデータベースにデータを移行する必要があります。移行の最初のステップは、SQL Server スキーマとコードオブジェクトを評価して、ターゲットデータベースエンジンに変換することです。
AWS Schema Conversion Tool (AWS SCT) を使用して、Amazon RDS for MySQL や Amazon RDS for PostgreSQL、Aurora MySQL、PostgreSQL などのさまざまなターゲットオープンソースデータベースオプションとの互換性についてデータベースを評価できます。Babelfish for Aurora PostgreSQL との互換性を評価するには、Babelfish Compass ツールを使用することもできます。これにより、 AWS SCT と Compass は、移行戦略を決定する前に、関連する先行作業を理解するための強力なツールになります。続行する場合は、 AWS SCT がスキーマに必要な変更を自動化します。Babelfish Compass の中核となる哲学は、SQL データベースをまったく変更せずに、またはほとんど変更せずに Aurora に移行できるようにすることです。Compass は既存の SQL データベースを評価して、これを実現できるかどうかを判断します。これにより、SQL Server から Aurora へのデータの移行に労力を費やす前に、結果が明らかになります。
AWS SCT は、データベーススキーマとコードのターゲットデータベースエンジンへの変換と移行を自動化します。Babelfish for Aurora PostgreSQL を使用すると、スキーマの変更なしで、または最小限のスキーマ変更で、データベースとアプリケーションを SQL Server から Aurora PostgreSQL に移行できます。これにより、移行が加速されます。
スキーマの移行後、 AWS DMS を使用してデータを移行できます。 AWS DMS は、完全なデータロードを実行し、変更をレプリケートして最小限のダウンタイムで移行を実行できます。
このセクションでは、次のツールについて詳しく説明します。
-
AWS Schema Conversion Tool
-
Babelfish for Aurora PostgreSQL
-
Babelfish Compass
-
AWS Database Migration Service
AWS Schema Conversion Tool
AWS SCT を使用して既存の SQL Server データベースを評価し、Amazon RDS または Aurora との互換性を評価できます。移行プロセスを簡素化するために、 AWS SCT を使用して、異種データベース移行でスキーマをあるデータベースエンジンから別のデータベースエンジンに変換することもできます。 AWS SCT を使用してアプリケーションを評価し、C#、C++、Java、およびその他の言語で記述されたアプリケーションの埋め込みアプリケーションコードを変換できます。詳細については、 AWS SCT ドキュメントの「AWS SCTを使用したアプリケーション SQL の変換」を参照してください。
AWS SCT は、多くのデータベースソースをサポートする無料の AWS ツールです。を使用するには AWS SCT、ソースデータベースをポイントし、評価を実行します。次に、AWS SCT
次の表は、データベースを異なるターゲットプラットフォームに変更する際の複雑さを示すために AWS SCT によって生成されるエグゼクティブサマリーの例を示しています。
ターゲットプラットフォーム |
自動または最小限の変更 |
複雑なアクション |
|||||
ストレージオブジェクト |
コードオブジェクト |
変換アクション |
ストレージオブジェクト |
コードオブジェクト |
|||
Amazon RDS for MySQL |
60 (98%) |
8 (35%) |
42 |
1 (2%) |
1 |
15 (65%) |
56 |
Amazon Aurora MySQL 互換エディション |
60 (98%) |
8 (35%) |
42 |
1 (2%) |
1 |
15 (65%) |
56 |
Amazon RDS for PostgreSQL |
60 (98%) |
12 (52%) |
54 |
1 (2%) |
1 |
11 (48%) |
26 |
Amazon Aurora PostgreSQL 互換エディション |
60 (98%) |
12 (52%) |
54 |
1 (2%) |
1 |
11 (48%) |
26 |
Amazon RDS for MariaDB |
60 (98%) |
7 (30%) |
42 |
1 (2%) |
1 |
16 (70%) |
58 |
Amazon Redshift |
61 (100%) |
9 (39%) |
124 |
0 (0%) |
0 |
14 (61%) |
25 |
AWS Glue |
0 (0%) |
17 (100%) |
0 |
0 (0%) |
0 |
0 (0%) |
0 |
Babelfish |
59 (97%) |
10 (45%) |
20 |
2 (3%) |
2 |
12 (55%) |
30 |
AWS SCT レポートには、自動的に変換できないスキーマ要素の詳細も表示されます。AWS 移行プレイブック
Babelfish for Aurora PostgreSQL
Babelfish for Aurora PostgreSQL は、SQL Server クライアントからデータベース接続を受け入れる機能を使用して Aurora PostgreSQL を拡張します。Babelfish により、少ないコード変更で、またデータベースドライバを変更せずに、元々 SQL Server 用に構築されているアプリケーションを直接 Aurora PostgreSQL で利用できるようになります。Babelfish は Aurora PostgreSQL をバイリンガルに変換して、Aurora PostgreSQL が T-SQL 言語と PL/pgSQL 言語の両方を操作できるようにします。Babelfish は、SQL Server から Aurora PostgreSQL への移行作業を最小限に抑えます。これにより、移行が加速され、リスクが最小限に抑えられ、移行コストが大幅に削減されます。移行後も T-SQL を引き続き使用できますが、開発に PostgreSQL ネイティブツールを使用するオプション
次の図は、T-SQL を使用するアプリケーションが SQL Server のデフォルトポート 1433 に接続し、Babelfish トランスレーターを使用して Aurora PostgreSQL データベースと通信する方法を示しています。一方、PL/pgSQL を使用するアプリケーションは、Aurora PostgreSQL のデフォルトポート 5432 を使用して Aurora PostgreSQL データベースに直接および同時に接続できます。
Babelfish は、特定の SQL Server T-SQL 機能をサポートしていません。このため、Amazon は、SQL ステートメントを 1 行ずつ分析し、Babelfish でサポートされていないものがあるかどうかを判断するための評価ツールを提供しています。
Babelfish の評価には 2 つのオプションがあります。 は、SQL Server データベースと Babelfish の互換性を評価 AWS SCT できます。もう 1 つのオプションは Babelfish Compass ツールです。Compass ツールは Babelfish for Aurora PostgreSQL の新しいリリースに合わせて更新されるため、これが推奨されるソリューションです。
Babelfish Compass
Babelfish Compass
評価と変更が完了したら、SSMS や sqlcmd などの SQL Server ネイティブツールを使用して、スキーマを Aurora PostgreSQL に移行できます。手順については、 AWS データベースブログの記事「Migrate from SQL Server to Amazon Aurora using Babelfish
AWS Database Migration Service
スキーマの移行後、 AWS Database Migration Service (AWS DMS) を使用して最小限のダウンタイム AWS でデータを に移行できます。 は完全なデータロードを行う AWS DMS だけでなく、ソースシステムの稼働中にソースから宛先への変更をレプリケートします。ソースデータベースとターゲットデータベースの両方が同期された後、アプリケーションが移行を完了するターゲットデータベースを指す場合にカットオーバーアクティビティを実行できます。 AWS DMS は現在、Aurora PostgreSQL ターゲットに対して Babelfish でフルデータロードのみを実行し、変更をレプリケートしません。詳細については、 AWS DMS ドキュメントの「 のターゲットとして Babelfish を使用する AWS Database Migration Service」を参照してください。
AWS DMS は、同種 (同じデータベースエンジン間) 移行と異種 (異なるデータベースエンジン間) 移行の両方を実行できます。 は、多くのソースデータベースエンジンと宛先データベースエンジン AWS DMS をサポートしています。詳細については、 AWS データベースブログの投稿を使用して SQL Server データベースを Amazon RDS for SQL Server に移行する AWS DMS
その他のリソース
-
Microsoft SQL Server、Hello Babelfish
(AWS ニュースブログ) -
CLI を使用したデータベーススキーマとアプリケーション SQL の AWS Schema Conversion Tool 変換
(AWS データベースブログ) -
ベストプラクティスと フィールドから学んだ教訓を使用して SQL Server を Amazon Aurora PostgreSQL に移行する
(AWS データベースブログ) -
Microsoft SQL Server から Amazon RDS for PostgreSQL および Amazon Aurora PostgreSQL への移行後のデータベースオブジェクトの検証
(AWS データベースブログ)