Amazon RDS for SQL Server - AWS 規範ガイダンス

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

Amazon RDS for SQL Server

Amazon RDS for SQL Serverは、 AWS上のSQL Serverのプロビジョニングと管理を簡素化するマネージドデータベースサービスです。Amazon RDS を使用すると、クラウドで SQL Server デプロイを簡単に設定、運用、および拡張することができます。Amazon RDS を使用すると、SQL Server (2014、2016、2017、2019、2022) とエディション (Express、Web、Standard、Enterprise を含む) の複数のバージョンを数分でデプロイでき、コスト効率が高くサイズ変更可能なコンピューティングキャパシティーを備えています。Amazon RDS for SQL Server DB インスタンスは、汎用 SSD またはプロビジョンド IOPS SSD のストレージを使用してプロビジョニングすることができます。(詳細については、 AWS ドキュメントの「Amazon RDS ストレージタイプ」を参照してください。) プロビジョンド IOPS SSD は、高速で予測可能で一貫した I/O パフォーマンスを実現するように設計されており、I/O 集約型のトランザクション (OLTP) データベースワークロード向けに最適化されています。

Amazon RDS では、プロビジョニング、バックアップ、ソフトウェアパッチ適用、モニタリング、ハードウェアスケーリングなど、時間のかかるデータベース管理タスクが管理されるため、ユーザーはアプリケーション開発に集中することができます。Amazon RDS for SQL Server では、本番環境のワークロードに高い可用性、パフォーマンス、スケーラビリティ、信頼性を提供するために、マルチ AZ 配置とリードレプリカ (SQL Server Enterprise エディション用) も提供しています。

SQL Server から Amazon RDS への移行の詳細については、 AWS 「 規範ガイダンス」ウェブサイトの「リプラットフォームパターン」を参照してください。

Amazon RDS を選ぶタイミング

Amazon RDS for SQL Serverは、次のような場合の移行オプションです:

  • ビジネスとアプリケーションに集中し、データベースのプロビジョニング、バックアップとリカバリタスクの管理、セキュリティパッチの管理、SQL Server のマイナーバージョンアップグレード、ストレージ管理など、差別化されていない重労働タスク AWS を処理したいと考えています。

  • 可用性の高いデータベースソリューションが必要であり、データベースミラーリング、フェイルオーバークラスター、またはフェイルオーバー常時オン可用性グループを手動で設定して管理しなくても、Amazon RDS が提供するプッシュボタン式の同期マルチ AZ レプリケーションを活用したいと考えています。

  • 多額の先行投資を行うのではなく、SQL Server ライセンスの料金をインスタンスコストの一部として 1 時間単位で支払う必要があります。

  • データベースのサイズと IOPS のニーズは、Amazon RDS for SQL Server) でサポートされています。現在の最大制限については、 AWS ドキュメントの「Amazon RDS DB インスタンスストレージ」を参照してください。

  • データベースのバックアップや point-in-time 復元を管理する必要はありません。

  • 日常的なデータベース管理ではなく、パフォーマンスチューニングやスキーマの最適化などの高レベルのタスクに集中したい場合。

  • ライセンスの複雑さを気にせずに、ワークロードパターンに基づいてインスタンスタイプをスケールアップまたはスケールダウンしたいと考えている場合。

データベースとプロジェクトの要件を評価した後、Amazon RDS for SQL Server への移行を決定した場合は、以下のセクションに記載されている詳細を確認し、このガイドの後半で説明する移行のベストプラクティスを確認してください。

現在サポートされている SQL Server の機能、バージョン、およびオプションについては、 AWS ウェブサイトの「Amazon RDS for SQL Server の機能」、このガイドの後半のAmazon EC2 と Amazon RDS の選択」、および AWS ドキュメントの「Amazon RDS 上の Microsoft SQL Server」を参照してください。Amazon RDS Customに移行する場合は、Amazon RDS Custom for SQL Serverの要件と制限を確認してください

高可用性

Amazon RDS は、マルチ AZ オプションを使用してデプロイされたデータベースの高可用性とフェイルオーバーサポートを提供します。マルチ AZ オプションでデータベースをプロビジョニングすると、Amazon RDS は自動的に別のアベイラビリティゾーンに同期スタンバイインスタンスをプロビジョニングし、維持します。プライマリ・データベースはデータをスタンバイインスタンスに同期的にレプリケートします。問題が発生した場合、Amazon RDS は異常のあるインスタンスを自動的に修復し、同期を再確立します。インフラストラクチャに障害またはアベイラビリティーゾーンに障害が発生した場合、Amazon RDS ではスタンバイインスタンスへの自動フェイルオーバーが実行されます。フェイルオーバーは、スタンバイとプライマリが完全に同期している場合にのみスタートします。エンドポイントはプライマリインスタンスとスタンバイインスタンスで同じままなので、手動で操作しなくても、フェイルオーバーが完了するとすぐにデータベース運用を再開することができます。フェイルオーバー時間は、復旧プロセスの完了までにかかる時間の影響を受けます。大量のトランザクションがあると、フェイルオーバー時間はより長くなります。

次の図は、Amazon RDS for SQL Server) マルチ AZ 配置オプションを示しています。

Amazon RDS for SQL Server in a Multi-AZ configuration

マルチ AZ 設定で SQL Server をセットアップすると、Amazon RDS は、デプロイする SQL Server のバージョンに基づいて、データベースミラーリングまたは Always On 可用性グループを使用してスタンバイデータベースインスタンスを自動的に設定します。特定の SQL Server のバージョンとエディションは、Amazon RDS ドキュメント に記載されています。

マルチ AZ 配置では、可用性を高めるため、インスタンスのスケーリングやオペレーティングシステム (OS) のパッチ適用などのシステムアップグレードといったオペレーションは、プライマリインスタンスの自動フェイルオーバーの前にスタンバイインスタンスで最初に適用されます。

SQL Server のフェイルオーバー最適化により、特定のワークロードでは、特にデータベースミラーリングデプロイでは、プライマリインスタンスよりもスタンバイインスタンスの I/O 負荷が大きくなることがあります。この機能により、スタンバイインスタンスの IOPS が高くなる可能性があります。Amazon RDS for SQL Server DB インスタンスのストレージタイプと IOPS をプロビジョニングするときは、プライマリインスタンスとスタンバイインスタンスの両方の最大 IOPS ニーズを考慮することをお勧めします。また、クライアントドライバーがMultiSubnetFailover=Trueをサポートしていれば、それを指定してフェイルオーバーの時間を大幅に短縮することもできます。

制限事項

  • マルチ AZ オプションは SQL Server Express とウェブエディションでは使用することができません。SQL Server Standard と Enterprise エディションでのみ利用可能です。

  • データベースの読み取りアクティビティを受け入れるように、セカンダリ DB インスタンスを設定することはできません。

  • クロスリージョンマルチ AZ はサポートされていません。

  • Amazon RDS では、スタンドアロン DB インスタンスに停止コマンドを発行し、インスタンスを停止状態に保つことで、コンピューティング料金が発生しないようにすることができます。マルチ AZ 設定の Amazon RDS for SQL Server DB インスタンスは停止できません。代わりに、インスタンスを終了し、終了前に最終スナップショットを作成し、必要なときにそのスナップショットから新しい Amazon RDS インスタンスを再作成することができます。または、マルチ AZ 設定を先に削除してからインスタンスを停止することもできます。7 日後、停止したインスタンスは再起動され、保留中のメンテナンスを適用できるようになります。

その他の制限事項については、Amazon RDS ドキュメントの Microsoft SQL Server マルチ AZ 配置の注意事項と推奨事項を参照してください。

リードレプリカ

リードレプリカはスケーラビリティとロードバランサーを実現します。SQL Server リードレプリカは、Amazon RDS for SQL Server DB インスタンスの物理コピーであり、読み取り専用に使用されます。Amazon RDS は、読み取り専用のワークロードをリードレプリカ DB インスタンスにオフロードすることで、プライマリ DB インスタンスの負荷を軽減します。プライマリ DB インスタンスに対して行った更新は、リードレプリカに非同期的にコピーされます。

リードレプリカを作成すると、Amazon RDS によりソースインスタンスのスナップショットが作成され、リードレプリカ にスナップショットが転送されます。リードレプリカの作成と削除中に障害が発生することはありません。Amazon RDS では、メンテナンスウィンドウに関係なく、リードレプリカがアップグレードされた後すぐにプライマリがアップグレードされます。すべてのリードレプリカには、リードレプリカデータベースへの接続に使用する個別のエンドポイントが付属しています。

Amazon RDS for SQL Server では、Always On 可用性グループを設定し、プライマリ DB インスタンスとそのリードレプリカ間の安全なネットワーク接続を維持することで、リードレプリカの作成が簡単にできます。

リードレプリカは、プライマリデータベースと同じ AWS リージョンに設定できます。Amazon RDS for SQL Server でクロスリージョンリードレプリカをサポート 1 つのソース DB インスタンスから最大 5 つのリードレプリカを作成できます。

注記

リードレプリカは、次の SQL Server のバージョンとエディションでのみ使用できます。

  • SQL Server 2017: Enterprise Edition 14.00.3049.1 以降

  • SQL Server 2016 Enterprise Edition 13.00.5216.0 以降

マルチ AZ 環境のデータベースミラーリングをサポートする SQL Server のバージョンとエディションには、リードレプリカはありません。

次の図は、同じ AWS リージョン内の別のアベイラビリティーゾーンにリードレプリカがあるマルチ AZ 環境の Amazon RDS for SQL Server DB インスタンスを示しています。すべての AWS リージョンが 3 つ以上のアベイラビリティーゾーンを提供しているわけではないため、この戦略を採用する前に、使用する予定のリージョンを確認する必要があります。

Amazon RDS for SQL Server with a read replica in another Availability Zone in the same Region

SQL Server のリードレプリカでは書き込み操作はできません。リードレプリカを昇格させて書き込み可能にすることができます。いったんプロモートすると、リードレプリカに戻すことはできません。元のプライマリデータベースインスタンスとは関係のない単一のスタンドアロン DB インスタンスになります。昇格したリードレプリカのデータは、昇格をリクエストされた時点までのソース DB インスタンスのデータと一致します。ソース DB インスタンスとそのすべてのリードレプリカの SQL Server DB エンジンバージョンは同じである必要があります。

効率的なレプリケーションを行うには、次の手順をお勧めします。

  • 各リードレプリカに、ソース DB インスタンスと同じコンピューティングリソースとストレージリソースを設定します。

  • 最初に、バックアップ保持期間を 0 以外の値に設定することで、ソース DB インスタンスで自動バックアップを有効にする必要があります。

  • ソース DB インスタンスは、AlwaysOn 可用性グループ (AG) を持つマルチ AZ 配置である必要があります。

SQL Server のバージョンサポート、エディション、制限については、Amazon RDS ドキュメントの 「SQL Server でのリードレプリカの制限」を参照してください。

リードレプリカの使用の詳細については、 AWS ドキュメントの「リードレプリカの使用」および「Amazon RDS の SQL Server リードレプリカの使用」を参照してください。データ転送料金の詳細については、「Amazon RDS の料金」を参照してください。

ディザスタリカバリ

Amazon RDS for SQL Server を使用すると、信頼性の高いクロスリージョンディザスタリカバリ (DR) 戦略を構築することができます。DR ソリューションを作成する主な理由は、事業継続性とコンプライアンスです。

  • 効果的な DR 戦略は、壊滅的な事態が発生してもシステムを最小限に、またはまったく中断せずに稼働させ続けるのに役立ちます。信頼性が高く効果的なクロスリージョン DR 戦略があれば、リージョン全体がオフラインになっても事業を継続することができます。

  • クロスリージョン DR ソリューションは、監査とコンプライアンスの要件を満たすのに役立ちます。

目標復旧時点 (RPO)、目標復旧時間 (RTO) とコストは、DR 戦略を策定する際に考慮すべき 3 つの重要な指標です。クロスリージョンレプリカを提供するその他のオプションについては、AWS Marketplaceを参照してください。これらのアプローチの詳細については、 AWS データベースブログの「Amazon RDS for SQL Server のクロスリージョンディザスタリカバリ」を参照してください。