Amazon Web Services ブログ

SQL Server の移行アセスメントツールを利用した AWS 移行の加速

特にオンプレミスのデータセンター環境から移行する場合、時間的制約のあるシナリオでは、リフト & シフトまたはリホスト移行アプローチを採用するのが現実的な選択肢となります。ただし、クラウドネイティブアーキテクチャの長期的なメリットを実現するには、選択した移行戦略が組織全体のクラウド導入戦略と一致していることを確認することが重要です。多くのアプリケーションでは、リフト & シフトと、リプラットフォームやリファクタリングなどの他の移行アプローチを組み合わせると、最適な結果が得られる場合があります。各ワークロード移行プロジェクトを慎重に評価し、アプリケーションと組織の要件と制約に基づいて最も適切な戦略を決定する必要があります。

組織では、インフラストラクチャ管理と運用上のオーバーヘッドの負担を軽減するために、SQL Server ワークロードを Amazon Relational Database Service (Amazon RDS) for SQL Server などのマネージドデータベースサービスに移行することがよくあります。Amazon RDS には、自動バックアップ、高可用性、スケーラビリティなどいくつかの利点があり、SQL Server ワークロードの管理の複雑さを大幅に軽減します。この記事では、SQL Server の移行アセスメント段階で遭遇する一般的な課題の概要を説明し、このプロセスを迅速に進めるための効果的なソリューションを提案します。特に、Amazon RDS for SQL Server や Amazon RDS Custom for SQL Server などのマネージドプラットフォームに移行する場合に役立ちます。

移行アセスメントの課題

SQL Server の移行を評価する手作業と時間のかかるプロセスが課題の 1 つです。Amazon RDS と互換性のあるすべての機能を特定することが不可欠です。Amazon RDS では、サポートされていない機能と限定的にサポートされている機能が明記されています。アセスメント段階では、お客様の環境で使用されている SQL Server 機能の包括的なインベントリが不可欠です。サポートされていない機能やサポートが限定されている機能を認識することは、データベース管理者にとってもシステム管理者にとっても重要なステップです。

もう 1 つの課題は、適切な Amazon RDS のコンピューティングタイプとストレージタイプの選択です。Amazon RDS には、データベースのパフォーマンスや容量のさまざまな要件に対応できるようにさまざまなインスタンスタイプストレージオプションが用意されています。適切な RDS DB インスタンスを選択するには、オンプレミスの SQL Server インスタンスの CPU とメモリのスペックをあわさせる必要があります。Amazon RDS が提供する多様な選択肢には柔軟性がありますが、効果的なコスト管理には SQL Server ワークロードの適切なサイジングが不可欠です。このプロセスでは、パフォーマンス要件を正確に判断するために、現在のワークロード、特にリソースのピーク使用率と平均使用率を分析する必要があります。

RDSTools

RDSTools は、SQL Server を AWS に移行する際のサイジングとコストの最適化を目的として設計された PowerShell ベースのプランニングツールスイートです。RDSTools では、CPU やメモリの使用状況などの SQL Server 環境の詳細なインベントリを作成し、特に Amazon RDS for SQL Server の場合の互換性とサイジングのアセスメントを行います。

このソリューションは、以下のタスクを自動化することでアセスメントと計画を迅速化します。

  1. 仮想プロセッサ、メモリ、ストレージの仕様など、詳細な SQL Server インベントリを取得。
  2. Amazon RDS 互換性アセスメントを実施し、サポートされていない機能をレポート。
  3. Amazon RDS、RDS Custom、Amazon Elastic Compute Cloud (Amazon EC2) など、アセスメントされたリソースに基づいて適切なプラットフォームを推奨。
  4. SQL Server の使用状況メトリックスに基づいて、適切な RDS DB インスタンスタイプを提案。
  5. Amazon ElastiCache の推奨事項について、個々のデータベースの読み取り / 書き込みを分析。Amazon Elasticache はフルマネージドのインメモリデータストアで、頻繁にアクセスされるデータをキャッシュすることでウェブアプリケーションのパフォーマンスを大幅に向上させることができます。Elasticache は、プライマリデータベースから読み書き操作をメモリ内キャッシュにオフロードすることで、データベースへの負荷を軽減し、応答時間を改善するのに役立ちます。

RDSTools では、SQL Server 2008 以降の SQL Server のすべてのバージョンとエディションをサポートしています。

このツールには SQL Server システム管理者のログイン認証情報が必要であり、軽量で運用環境への影響を最小限に抑えるように設計されていることに注意してください。

このツールは、RDS Discovery と SQLServerAssessment という 2 つの主要コンポーネントで構成されています。

RDS Discovery

RDS Discovery Tool は、オンプレミスの SQL Server または EC2 インスタンス群をスキャンする機能を提供する軽量ツールです。20 を超える機能を自動的にアセスメントし、有効になっている機能と Amazon RDS との互換性を確認し、包括的なレポートを作成します。これにより、Amazon RDS で有効になっている機能のサポート性が検証され、Amazon RDS、RDS Custom、または Amazon EC2 への移行に関する推奨事項が記載されたレポートが生成されます。

RDS Discovery を使用して初期アセスメントを実行できます。

  1. SQL Server のバージョン、エディション、機能、および FCI や Always On 可用性グループなどの高可用性構成を含む詳細な SQL Server インベントリを収集します。
  2. Amazon RDS との互換性をアセスメントします。
  3. 使用している SQL Server エンタープライズエディションの機能を特定します。

SQLServerAssessment

SQLServerAssessment Tool (SSAT) を使用すると、オンプレミスの SQL Server ワークロードの評価を効率化して、Amazon RDS で適切なサイジングを行うために必要なシステム使用率を特定できます。SSAT は、指定された期間における CPU、メモリ、IOPS、スループットの使用量を効率的に測定し、AWS 上で 適切なサイズを選択するための提案を行います。この汎用性の高いツールは、単一の SQL Server インスタンスと複数の SQL Server インスタンスの両方をアセスメントできます。

SSAT を使い始める前に、ツールが SQL Server とどのように連携するかをよく理解しておくことが重要です。その主な目的は、Amazon RDS for SQL Server への円滑な移行に必要なシステム使用率を測定することです。SSAT は、CPU 使用率、メモリ使用量、IOPS、スループットなど、さまざまなパフォーマンスメトリクスをすべて所定の期間内に収集します。その後、このデータを使用して Amazon RDS for SQL Server インスタンスに合わせた推奨事項が策定されます。

これを実現するために、SSAT は動的管理ビュー(DMV)を採用しています。これは、特にデータベースレベルで幅広いメトリクスをキャプチャするための堅牢な機能です。このアプローチにより、焦点を絞った正確なアセスメントが可能になり、サーバーレベルでデータを収集する際に発生しうるノイズを最小限に抑えることができます。

次の表は、ツールがメトリクスを収集するために使用する DMV の詳細な説明を示しています。

Metrics DMV Columns Comments/Notes
CPU
  • sys.dm_os_ring_buffers
  • SQLServerCPUUtilization
  • SystemIdLe
  • OtherProCpuUT
  • SQL Server CPU 使用率 %
  • System アイドル %
  • CPU 以外のプロセス %
Memory
  • sys.dm_os_performance_counters
  • sys.dm_os_sys_memory
  • sys.dm_os_sys_info
  • PLE
  • Committed_KB
  • committed_target_kb
  • total_physical_memory_kb
  • available_physical_memory_kb
  • ページの平均寿命
  • SQL Server メモリマネージャー内でコミットされたメモリ
  • SQL Server のメモリマネージャーが消費できるメモリ
  • オペレーティングシステムで使用可能な物理メモリの総容量 (KB)
  • 現在使用可能な物理メモリのサイズ (KB)
Disk IOPS
  • dmv sys.dm_io_virtual_file_stats
  • Read
  • Write
  • Bread
  • Bwrite
  • 読み込みと書き込みの IOPS
  • 読み込みと書き込みの バイト数

パフォーマンス使用率メトリクス

アセスメントツールは、初回実行時にパフォーマンスメトリクスの取得専用のエージェントジョブを作成します。このジョブは、MSDB のステージングテーブルに一時的に格納されます。データ収集フェーズが完了すると、ツールはステージングテーブルから CSV ファイルにデータを出力します。このプロセスの主な設定は収集時間で、デフォルトは 60 分です。ただし、収集したメトリクスをより詳細に分析するには、実行時間を 4 ~ 7 日に延長することをおすすめします。このツールは、エージェントジョブを 1 分間隔で開始し、指定された収集時間に達するまでこの頻度を維持するように設計されています。

この収集プロセス中に、収集されたメトリックを格納する次の 5 つのテーブルが MSDB データベースに作成されます。

  • Sql_CollectionStatus – このテーブルには、開始時刻、終了時刻、ステータスなど、収集ジョブに関する情報が保持されます。
  • Sql_CPUCollection – このテーブルでは、SQL Server の CPU 使用率、システムアイドル状態、その他のプロセス使用率という 3 つの重要なメトリクスが収集されます。3 つのメトリクスはすべてパーセンテージとして取得されます。
  • Sql_MemCollection – このテーブルには、SQL Server のメモリ使用量、SQL の最大メモリターゲット、OS の合計メモリ、OS の使用可能なメモリ、ページの平均寿命など、さまざまなメモリ関連のメトリクスが格納されます。
  • Sql_DBIO – このテーブルには、各収集時間におけるユーザーデータベースの IOPS とスループットのメトリクス、特に差分の変化が記録されます。
  • Sql_DBIOTotal – ここでは、ツールは読み取り操作と書き込み操作の両方を含むユーザーデータベース I/O の合計をキャプチャします。

このデータを専用のテーブルにまとめることで、ツールは効率的な保存と重要なパフォーマンスメトリクスへの直接アクセスを確保し、SQL Server 環境を効果的に分析および最適化できるようにします。

エージェントジョブのライフサイクルは、さまざまなスイッチを使用するツールによって管理されます。これらのスイッチの詳細については、GitHub リポジトリを参照してください。

アセスメント後のステップ

アセスメントで検討できる実行可能なステップは次のとおりです。

  • ベストプラクティスに従う – SQL Server のベストプラクティスに従っていることを確認してください。詳細については、「SQL Server を使用するためのベストプラクティス」を参照してください。
  • 適切なサイジングによるコストの最適化 – リソースの使用率を評価して、SQL Server のデプロイがワークロードに適したサイズになっていることを確認します。詳細については、「適切なサイジングのヒント」を参照してください。
  • ElastiCache を使用してパフォーマンスを最適化 – ElastiCache でキャッシュ戦略を実装してアプリケーションのパフォーマンスを向上させましょう。詳細については、「ASP.NET コアウェブアプリケーションの分散キャッシュに AWS サービスを利用する」を参照してください。
  • 統合によるコストの最適化 – さらにオーバーヘッドを削減し、リソース利用率を向上させるために可能な場合は SQL Server インスタンスとデータベースを 1 つの RDS DB インスタンスに統合することを検討することもできます。

結論

この投稿では、SQL Server の移行アセスメント段階で遭遇する一般的な課題を取り上げ、このプロセスを合理化および迅速化するための効果的なソリューションを提供しました。

翻訳はソリューションアーキテクトの Yoshinori Sawada が担当しました。原文はこちらです。


著者について

Bachar Rifai は、AWS のデータベースを専門とするシニアパートナーソリューションアーキテクトです。Bachar は AWS パートナーと協力して、データベースプロジェクトに関する専門的なアドバイスや技術サポートを提供しています。AWS テクノロジーを活用したソリューションの有効性と価値を高めることに注力しています。

Sudhir Amin は、アマゾンウェブサービスのシニアソリューションアーキテクトです。ニューヨークを拠点にしてさまざまな業種のお客様にアーキテクチャの指導と技術支援を提供し、クラウドの採用を加速させています。彼はスヌーカー、ボクシングや UFC などの格闘技の大ファンで、野生生物保護区が豊富な国へ旅行をして世界で最も雄大な動物を間近で見ることが好きです。

Sudarshan Roy は、AWS のシニアデータベーススペシャリストクラウドソリューションアーキテクトです。お客様向けの大規模なデータベース移行とモダナイゼーションの取り組みをリードし、データベースのワークロードを AWS クラウドに移行しながら複雑な移行の課題を解決することに注力しています。