SQL サーバーデータベースをモダナイズする - AWS 規範ガイダンス

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

SQL サーバーデータベースをモダナイズする

概要

スケーラビリティ、パフォーマンス、コスト最適化のためにレガシーデータベースをモダナイズする道のりを歩んでいる場合は、SQLServer などの商用データベースで課題に直面している可能性があります。商用データベースは高価で、顧客をロックインし、懲罰的なライセンス条項を提供します。このセクションでは、SQLサーバーからオープンソースデータベースへの移行とモダナイズのオプションの概要と、ワークロードに最適なオプションの選択について説明します。

Server SQL データベースを Amazon Aurora PostgreSQL などのオープンソースデータベースにリファクタリングして、Windows および SQL Server のライセンスコストを節約できます。Aurora のようなクラウドネイティブの最新のデータベースは、オープンソースデータベースの柔軟性と低コストを商用データベースの堅牢なエンタープライズグレードの機能に統合します。可変ワークロードまたはマルチテナントワークロードがある場合は、Aurora サーバーレス V2 に移行することもできます。これにより、ワークロードの特性に応じてコストを 90% まで削減できます。さらに、 AWS では、Babelfish for Aurora Postgre SQLなどの機能、 AWS Schema Conversion Tool (AWS SCT) などのツール、 AWS Database Migration Service (AWS DMS) などのサービスを提供し、 でのSQLサーバーデータベースの移行とモダナイゼーションを簡素化します AWS。

データベースの提供

Windows 上の SQL Server から Amazon Aurora、Amazon RDS for My 、Amazon RDS for PostgreSQL などのオープンソースデータベースに移行するとSQL、パフォーマンスや機能を損なうことなく大幅なコスト削減を実現できます。以下の点を考慮します。

  • Amazon の SQL Server Enterprise Edition から Amazon RDS for PostgreSQL または Amazon RDS for MySQL EC2に切り替えると、最大 80% のコスト削減につながります。

  • Amazon の SQL Server Enterprise Edition から EC2 Amazon Aurora Postgre SQL互換エディションまたは Amazon Aurora My SQL互換エディションに切り替えると、最大 70% のコスト削減につながります。

従来のデータベースワークロードの場合、Amazon RDS for PostgreSQL と Amazon RDS for MySQL アドレスの要件と、リレーショナルデータベースの費用対効果の高いソリューションを提供します。Aurora は、これまで高価な商用ベンダーに限定されていた多数の可用性とパフォーマンス機能を追加します。Aurora の耐障害性機能は追加コストです。ただし、他の商用ベンダーの同様の機能と比較して、Aurora の耐障害性コストは、同じタイプの機能に対して商用ソフトウェアが請求するよりも依然として安価です。Aurora アーキテクチャは、標準の MySQL および PostgreSQL デプロイと比較して、パフォーマンスが大幅に向上するように最適化されています。

Aurora はオープンソースの PostgreSQL および MySQL データベースと互換性があるため、移植性にはさらに利点があります。最適なオプションが Amazon RDS for Postgre SQL、Amazon RDS for My 、または Aurora のいずれであるかは、ビジネス要件を理解しSQL、必要な機能を最適なオプションにマッピングすることにあります。

Amazon RDSと Aurora の比較

次の表は、Amazon RDSと Amazon Aurora の主な違いをまとめたものです。

カテゴリ Amazon RDS for PostgreSQL または Amazon RDS for MySQL Aurora PostgreSQL または Aurora MySQL
パフォーマンス 優れたパフォーマンス 3 倍以上のパフォーマンス
フェイルオーバー 通常 60~120 秒* 通常 30 秒
スケーラビリティ

最大 5 つのリードレプリカ

秒単位の遅延

最大 15 個のリードレプリカ

ミリ秒単位の遅延

ストレージ 最大 64 TB 最大 128 TB
ストレージ HA 1 つまたは 2 つのスタンバイを持つマルチ AZ、それぞれデータベースコピー デフォルトでは、3 つのアベイラビリティーゾーンに 6 つのデータコピー
バックアップ 毎日のスナップショットとログのバックアップ Amazon S3 への継続的な非同期バックアップ
Aurora でのイノベーション 該当なし

100 GB

データベースの高速クローン作成

  リードレプリカの自動スケーリング  
  クエリプラン管理  
  Aurora Serverless  
  グローバルデータベースによるクロスリージョンレプリカ  
  クラスターキャッシュ管理**  
  パラレルクエリ  
  データベースアクティビティストリーミング  

*大規模なトランザクションではフェイルオーバー時間が長くなる可能性があります

**Aurora Postgre で利用可能SQL

次の表は、このセクションで説明するさまざまなデータベースサービスの推定月額コストを示しています。

データベースサービス 1 か月USDあたりのコスト* AWS Pricing Calculator ( が必要 AWS アカウント)
Amazon RDS for SQL Server Enterprise エディション 3,750 ドル 見積り
Amazon RDS for SQL Server Standard エディション 2,318 ドル 見積り
SQL Amazon での Server Enterprise Edition EC2 2,835 ドル 見積り
SQL Amazon の Server Standard Edition EC2 1,345 ドル 見積り
Amazon RDS for PostgreSQL $742 見積り
Amazon RDS for MySQL $712 見積り
Aurora PostgreSQL 1,032 ドル 見積り
Aurora MySQL 1,031 ドル 見積り

* ストレージ料金はインスタンス料金に含まれています。コストはus-east-1リージョンに基づきます。スループットと IOPSは前提条件です。計算は r6i.2xlarge インスタンスと r6g.2xlarge インスタンス用です。

コスト最適化に関する推奨事項

異種データベース移行では、通常、データベーススキーマをソースからターゲットデータベースエンジンに変換し、データをソースからターゲットデータベースに移行する必要があります。移行の最初のステップは、SQLサーバースキーマとコードオブジェクトを評価してターゲットデータベースエンジンに変換することです。

AWS Schema Conversion Tool (AWS SCT) を使用して、Amazon RDS for MySQL や Amazon RDS for Postgre 、Aurora My SQL、Postgre などのさまざまなターゲットオープンソースデータベースオプションとの互換性についてデータベースを評価SQLおよび評価できますSQL。Babelfish for Aurora Postgre との互換性を評価するには、Babelfish Compass ツールを使用することもできますSQL。これにより、 AWS SCT と Compass は、移行戦略を決定する前に、関連する先行作業を理解するための強力なツールになります。続行すると、 はスキーマに必要な変更 AWS SCT を自動化します。Babelfish Compass の背後にある基本理念は、SQLデータベースを Aurora に移動させ、変更を加えない、またはごくわずかにすることです。Compass は既存のSQLデータベースを評価して、これを実現できるかどうかを判断します。これにより、SQLサーバーから Aurora へのデータの移行に労力が費やす前に、結果がわかります。

AWS SCT は、データベーススキーマとコードのターゲットデータベースエンジンへの変換と移行を自動化します。Babelfish for Aurora PostgreSQL を使用して、スキーマの変更がない、または最小限で、データベースとアプリケーションを SQL Server から Aurora PostgreSQL に移行できます。これにより、移行が加速する可能性があります。

スキーマの移行後、 AWS DMS を使用してデータを移行できます。 AWS DMS は完全なデータロードを実行し、変更をレプリケートして最小限のダウンタイムで移行を実行できます。

このセクションでは、以下のツールについて詳しく説明します。

  • AWS Schema Conversion Tool

  • Babelfish for Aurora PostgreSQL

  • Babelfish コンパス

  • AWS Database Migration Service

AWS Schema Conversion Tool

AWS SCT を使用して既存の SQL Server データベースを評価し、Amazon RDSまたは Aurora との互換性を評価できます。移行プロセスを簡素化するために、 AWS SCT を使用して、異種データベース移行でスキーマをあるデータベースエンジンから別のデータベースエンジンに変換することもできます。 AWS SCT を使用して、アプリケーションを評価し、C#、C++、Java、およびその他の言語で記述されたアプリケーションの埋め込みアプリケーションコードを変換できます。詳細については、 ドキュメントの AWS SCT 「 SQLを使用したアプリケーションの変換 AWS SCT」を参照してください。

AWS SCT は、多くのデータベースソース をサポートする無料の AWS ツールです。を使用するには AWS SCT、ソースデータベースにポイントし、評価を実行します。次に、 はスキーマAWS SCTを評価し、評価レポートを生成します。評価レポートには、エグゼクティブサマリー、複雑さと移行の労力、適切なターゲットデータベースエンジン、変換に関する推奨事項が含まれます。をダウンロードするには AWS SCT、 ドキュメントの「インストール、検証、更新 AWS SCT」を参照してください。 AWS SCT

次の表は、データベースを異なるターゲットプラットフォームに変更する際の複雑さを示すために によって AWS SCT 生成されたエグゼクティブサマリーの例を示しています。

ターゲットプラットフォーム

自動または最小限の変更

複雑なアクション

ストレージオブジェクト

コードオブジェクト

変換アクション

ストレージオブジェクト

コードオブジェクト

Amazon RDS for MySQL

60 (98%)

8 (35%)

42

1 (2%)

1

15 (65%)

56

Amazon Aurora My SQL互換エディション

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 Postgre SQL互換エディション

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 移行プレイブック を参照して、 AWS SCT 変換ギャップを埋め、ターゲットスキーマを最適化できます。異種移行を支援するデータベース移行プレイブックは多数あります。

Babelfish for Aurora PostgreSQL

Babelfish for Aurora PostgreSQL は、SQLサーバークライアントからのデータベース接続を受け入れる機能を備えた Aurora PostgreSQL を拡張します。Babelfish を使用すると、SQLサーバー用に構築されたアプリケーションは、コードの変更が少なくSQL、データベースドライバーを変更することなく、Aurora Postgre と直接連携できます。Babelfish は Aurora PostgreSQL をバイリンガルに変換して、Aurora PostgreSQL が T 言語SQLと PL/pgSQL 言語の両方を操作できるようにします。Babelfish は、SQLサーバーから Aurora Postgre に移行する労力を最小限に抑えますSQL。これにより、移行が加速され、リスクが最小限に抑えられ、移行コストが大幅に削減されます。引き続き T SQLポスト移行を使用できますが、PostgreSQL ネイティブツールを開発に使用するオプションもあります。

次の図は、T SQLを使用するアプリケーションが SQL Server のデフォルトポート 1433 に接続し、Babelfish トランスレータを使用して Aurora PostgreSQL データベースと通信する方法を示しています。一方、PL/pgSQL を使用するアプリケーションは、Aurora PostgreSQL のデフォルトポート 5432 を使用して Aurora Postgre データベースに直接および同時に接続できますSQL。

Babelfish for Aurora Postgre SQL。

Babelfish は、特定のSQLサーバー T SQL機能をサポートしていません。このため、Amazon はSQLステートメントの分析を行い line-by-line、Babelfish がサポートしていないステートメントがあるかどうかを判断するための評価ツールを提供しています。

Babelfish 評価には 2 つのオプションがあります。 は、SQLサーバーデータベースと Babelfish の互換性を評価 AWS SCT できます。もう 1 つのオプションは Babelfish Compass ツールです。これは、Aurora Postgre 用の Babelfish の新しいリリースに合わせて Compass ツールが更新されるため、推奨されるソリューションですSQL。

Babelfish コンパス

Babelfish Compass は、Babelfish for Aurora Postgre の最新リリースと一致する無料のダウンロード可能なツールですSQL。対照的に、 AWS SCT はしばらくすると新しい Babelfish バージョンをサポートします。Babelfish Compass は、SQLサーバーデータベーススキーマに対して実行されます。Server Management Studio () などのツールを使用して、ソースSQLサーバーSQLデータベーススキーマを抽出することもできますSSMS。その後、Babelfish Compass を使用してスキーマを実行できます。これにより、SQLサーバースキーマと Babelfish の互換性、および移行前に変更が必要かどうかの詳細を示すレポートが生成されます。Babelfish Compass ツールは、これらの変更の多くを自動化し、最終的に移行を加速することもできます。

評価と変更が完了したら、 SSMSや sqlcmd などのSQLサーバーネイティブツールを使用して、スキーマを Aurora PostgreSQL に移行できます。手順については、 AWS データベースブログの「Babelfish 投稿を使用したSQLサーバーから Amazon Aurora への移行」を参照してください。

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サーバーデータベースを Amazon RDS for SQL Server に移行する AWS DMSを参照してください。

追加リソース