SQL Server バックアップ戦略を最適化する - AWS 規範ガイダンス

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

SQL Server バックアップ戦略を最適化する

概要:

ほとんどの組織は、SQL Server 上のデータを Amazon EC2 に保護し、前回のバックアップからの最大許容時間である目標復旧時点 (RPO) とサービス中断からサービス復旧までの最大許容遅延時間である目標復旧時間 (RTO) に関する現在の要件を満たす、適切なソリューションを求めています。EC2 インスタンスで SQL Server を実行している場合、データのバックアップを作成したり、データを復元したりする複数のオプションがあります。SQL Server on Amazon EC2 でデータを保護するバックアップ戦略には、次のようなものがあります。

データベースレベルのネイティブバックアップを選択した場合、以下のストレージオプションがあります。

  • Amazon EBS ボリュームを使用したローカルバックアップ

  • Amazon FSx for Windows File Server または Amazon FSx for NetApp ONTAP を使用したネットワークファイルシステムのバックアップ

  • AWS Storage Gateway を使用した Amazon Simple Storage Service (Amazon S3) へのネットワークバックアップ

  • SQL Server 2022 の Amazon S3 への直接バックアップ

このセクションでは次のことを行います。

  • ストレージスペースを節約するのに役立つ機能に焦点を当てる

  • さまざまなバックエンドストレージオプション間のコストを比較する

  • これらの推奨事項の実装に役立つ詳細なドキュメントへのリンクを提供する

VSS 対応スナップショットを使用したサーバーレベルのバックアップ

VSS 対応スナップショットアーキテクチャでは、 AWS Systems Manager Run コマンドを使用して、SQL Server インスタンスに VSS エージェントをインストールします。この Run Command は、オペレーティングシステムとアプリケーションのバッファをディスクにフラッシュし、I/O オペレーションを一時停止し、EBS ボリュームのポイントインタイムスナップショットを取得して I/O を再開する、ワークフロー全体の呼び出しにも使用できます。

この Run Command は、ターゲットインスタンスにアタッチされたすべての EBS ボリュームの自動スナップショットを作成します。ユーザーデータベースファイルは、通常は他のボリュームに保存されるため、ルートボリュームを除外する選択もできます。複数の EBS ボリュームをストライピングして SQL Server ファイル用の 1 つのファイルシステムを作成する場合、Amazon EBS は、1 つの API コマンドで Crash-consistent なマルチボリュームのスナップショットもサポートします。アプリケーション整合性のある VSS 対応 EBS スナップショットの詳細については、Amazon EC2 ドキュメントの「Create a VSS application-consistent snapshot」を参照してください。

次の図は、VSS 対応スナップショットを使用したサーバーレベルのバックアップのアーキテクチャを示しています。

VSS 対応スナップショットのアーキテクチャ

VSS 対応スナップショットを使用する次の利点を考慮してください。

  • DB インスタンスの初期のスナップショットには、フル DB インスタンスのデータが含まれています。同じ DB インスタンスの後続のスナップショットは増分です。つまり、直近のスナップショット以降に変更されたデータのみが保存されます。

  • EBS スナップショットは、ポイントインタイムリカバリを提供します。

  • スナップショットから、新しい SQL Server EC2 インスタンスに復元することができます。

  • インスタンスが Amazon EBS を使用して暗号化されている場合、または、データベースが TDE を使用しているインスタンス内で暗号化されている場合、そのインスタンスまたはデータベースは、同じ暗号化を使用して自動的に復元されます。

  • 使用している自動化されたクロスリージョンバックアップをコピーできます。

  • EBS ボリュームをスナップショットから復元したとき、アプリケーションからすぐにアクセスすることができます。つまり、基盤となる 1 つ以上の EBS ボリュームをスナップショットから復元した後に、SQL Server をすぐにオンラインにすることができます。

  • 復元したボリュームは、デフォルトでは、アプリケーションが初めてブロックを読み込む際に、Amazon S3 から基盤のブロックを取得します。これにより、EBS ボリュームをスナップショットから復元した後に、パフォーマンスの低下が生じる場合があります。ボリュームは、最終的には通常のパフォーマンスに追いつきます。ただし、このようなパフォーマンスの低下は、高速スナップショット復元 (FSR) のスナップショットを使うことで回避できます。

  • EBS スナップショットのライフサイクル管理を使用できます。

VSS 対応スナップショットを使用する際には、次の制限事項を考慮してください。

  • SQL Server インスタンスの暗号化されたスナップショットでは、クロスリージョンのポイントインタイムリカバリを実行できません。

  • 暗号化されていないインスタンスの、暗号化されたスナップショットを作成することはできません。

  • スナップショットは EBS ボリュームレベルで作成されるため、個々のデータベースを復元することはできません。

  • インスタンスをそれ自体に復元することはできません。

  • DB インスタンスのスナップショットは、DB インスタンスと同じ AWS Key Management Service (AWS KMS) キーを使用して暗号化する必要があります。

  • Storage I/O は、スナップショットのバックアッププロセス中に一瞬 (約 10 ミリ秒) 中断します。

を使用した SQL Server バックアップ AWS Backup

を使用してAWS Backupデータ保護を一元管理および自動化できます AWS のサービス。 AWS Backup は、大規模なデータ保護を簡素化する費用対効果の高いフルマネージド型のポリシーベースのソリューションを提供します。 AWS Backup は、規制コンプライアンスの義務をサポートし、ビジネス継続性の目標を達成するのにも役立ちます。と を併用 AWS Backup することで AWS Organizations、データ保護 (バックアップ) ポリシーを一元的にデプロイし、組織の AWS アカウント および リソース全体でバックアップアクティビティを設定、管理、管理できます。

以下の図は、 AWS Backupを使用した SQL Server on EC2 のバックアップと復元ソリューションのアーキテクチャを示したものです。

AWS Backup アーキテクチャ

AWS Backupを使用して SQL Server をバックアップする次の利点を考慮してください。

  • バックアップのスケジュール設定、保持の管理、ライフサイクル管理を自動化できます。

  • バックアップ戦略を組織全体で一元化し、複数のアカウントと にまたがることができます AWS リージョン。

  • AWS のサービス全体のバックアップアクティビティのモニタリングとアラートの発信を一元化できます。

  • ディザスタリカバリ計画のリージョンを横断したバックアップを実装できます。

  • このソリューションは、クロスアカウントバックアップをサポートしています。

  • 二次的なバックアップ暗号化を使用した、安全なバックアップを実行できます。

  • すべてのバックアップは、暗号化キーを使用した AWS KMS 暗号化をサポートしています。

  • このソリューションは、TDE と連携しています。

  • AWS Backup コンソールから復旧ポイントに復元することができます。

  • SQL Server インスタンス全体をバックアップできます。これには、すべての SQL Server データベースが含まれます。

データベースレベルのバックアップ

以下のアプローチでは、Microsoft SQL Server ネイティブのバックアップ機能を使用します。SQL Server 上のインスタンスの、個々のデータベースのバックアップを作成し、個々のデータベースを復元することができます。

SQL Server ネイティブのバックアップと復元に使用されるオプションは、以下もサポートしています。

  • 圧縮と複数ファイルのバックアップ

  • フルバックアップ、差分バックアップ、T ログバックアップ

  • TDE によって暗号化されたデータベース

SQL Server のネイティブバックアップと Amazon S3 への復元

SQL Server on Amazon EC2 は、SQL Server データベースのネイティブバックアップと復元をサポートしています。SQL Server データベースのバックアップを作成して、バックアップファイルを、既存のデータベースか、新しい SQL Server EC2 インスタンス、Amazon RDS for SQL Server、オンプレミスサーバーのいずれかに復元することができます。

Storage Gateway は、オンプレミスアプリケーションがクラウドストレージに実質的に無制限でアクセスできる、ハイブリッドクラウドのストレージサービスです。Storage Gateway を使用して Microsoft SQL Server データベースを Amazon S3 に直接バックアップすれば、オンプレミスのストレージフットプリントを減らすことができ、Amazon S3 を使用して耐久性と拡張性に優れた、費用対効果の高いストレージを実現することができます。

次の図は、Storage Gateway と Amazon S3 を使用したネイティブバックアップと復元のソリューションのアーキテクチャを示したものです。

Storage Gateway と Amazon S3 のアーキテクチャ

Storage Gateway を使用した SQL Server ネイティブのバックアップを使用する次の利点を考慮してください。

  • ストレージゲートウェイを、EC2 インスタンスのサーバーメッセージブロック (SMB) ファイル共有としてマッピングし、バックアップを Amazon S3 に送信できます。

  • バックアップは S3 バケットに直接行われるか、Storage Gateway のファイルキャッシュを介して行われます。

  • 複数ファイルのバックアップがサポートされています。

Storage Gateway を使用したネイティブバックアップの次の制限事項を考慮してください。

Storage Gateway の設定方法の詳細については、 AWS ブログの記事「AWS Storage Gatewayを使用して SQL サーバーバックアップを Amazon S3 に保存する」を参照してください。

EBS ボリュームへの SQL Server のネイティブバックアップ

SQL Server データベースのネイティブバックアップを作成し、そのファイルを Amazon EBS ボリュームに保存することができます。Amazon EBS は、きわめて高性能なブロックストレージサービスです。EBS ボリュームは伸縮自在で、暗号化をサポートしています。デタッチして EC2 インスタンスにアタッチすることができます。EC2 インスタンス上の SQL Server は、同じ EBS ボリュームタイプで、または異なる EBS ボリュームタイプでバックアップすることができます。異なる EBS ボリュームにバックアップする利点の 1 つが、コストを削減できることです。

以下の図は、EBS ボリュームへのネイティブバックアップのアーキテクチャを示したものです。

Amazon EBS ボリュームのアーキテクチャ

EBS ボリュームへの SQL Server のネイティブバックアップを使用する次の利点を考慮してください。

  • SQL Server の EC2 インスタンスにある個々のデータベースのバックアップを作成し、すべてのインスタンスを復元するのではなく個々のデータベースを復元することができます。

  • 複数ファイルのバックアップがサポートされています。

  • バックアップジョブを SQL Server エージェントと SQL Server ジョブエンジンを使用してスケジュールできます。

  • 選択したハードウェアによって、パフォーマンス上の利点が得られます。例えば、st1 ストレージボリュームを使用するとスループットを高めることができます。

EBS ボリュームへのネイティブバックアップを使用する際には、次の制限事項を考慮してください。

  • EBS ボリュームから Amazon S3 にバックアップを移動するときは、手動で行う必要があります。

  • 大規模なバックアップの場合、Amazon EC2 のディスク容量を管理する必要があります。

  • EC2 インスタンスでは、Amazon EBS のスループットがボトルネックになる可能性があります。

  • Amazon EBS にバックアップを保存するには追加のストレージが必要になります。

Amazon FSx for Windows File Server への SQL Server ネイティブバックアップ

Amazon FSx for Windows File Server は、FSx for Windows File Server でのマルチ AZ ファイルシステムデプロイのネイティブサポート AWS を導入し、高速で予測可能で一貫したパフォーマンスを実現するように設計された、最大 64 TB のストレージを提供するフルマネージドのネイティブ Windows ファイルシステムです。ネイティブサポートにより、複数のアベイラビリティーゾーンを横断する高可用性と冗長性とを備えた AWS に、Windows ファイルストレージを簡単にデプロイできるようになりました。 AWS では、SMB Continuously Available (CA) ファイル共有のサポートも開始しました。FSx for Windows File Server を、SQL Server データベースのバックアップストレージとして使用できます。

以下の図は、FSx for Windows File Server への、SQL Server のネイティブバックアップのアーキテクチャを示したものです。

FSx for Windows File Server のバックアップのアーキテクチャ

FSx for Windows File Server への SQL Server のネイティブバックアップを使用する次の利点を考慮してください。

  • お使いの SQL Server データベースを Amazon FSx ファイル共有にバックアップすることができます。

  • SQL Server インスタンスにある個々のデータベースのバックアップを作成し、すべてのインスタンスを復元するのではなく個々のデータベースを復元することができます。

  • 複数の要素からなるバックアップがサポートされています。

  • バックアップジョブを SQL Server エージェントとそのジョブエンジンを使用してスケジュールできます。

  • インスタンスで Amazon EBS よりも高いネットワーク帯域幅を利用できます。

FSx for Windows File Server への SQL Server のネイティブバックアップを使用する際には、次の制限事項を考慮してください。

  • AWS Backup または を使用して、Amazon FSx から Amazon S3 にバックアップを手動で移動する必要があります AWS DataSync。 FSx

  • 大規模なバックアップでは、Amazon FSx のディスク容量の管理のため、追加のオーバーヘッドが必要になる場合があります。

  • EC2 インスタンスのネットワークスループットがボトルネックになる可能性があります。

  • FSx for Windows File Server にバックアップを保存するには追加のストレージが必要になります。

Amazon FSx for NetApp ONTAP への SQL Server のバックアップ

FSx for ONTAP のスナップショットは常に Crash-consistent ですが、アプリケーション整合性のあるスナップショットを作成するには、データベースを休止 (または I/O を一時停止) する必要があります。NetApp SnapCenter (SQL Server を含む特定のアプリケーションのプラグインを備えたオーケストレーションツール) と FSx for ONTAP を使用して、アプリケーション整合性のあるスナップショットを作成し、データベースを追加料金なしで保護、レプリケート、およびクローンすることができます。

NetApp SnapCenter

NetApp SnapCenter は、アプリケーション整合性のあるデータ保護のための統合プラットフォームです。SnapCenter では、スナップショットをバックアップと呼びます。本ガイドでは、この同じ命名規則を採用しています。SnapCenter には、アプリケーション整合性のあるバックアップ、復元、クローンを管理するための一元的なウィンドウが用意されています。特定のデータベースアプリケーションに SnapCenter プラグインを追加して、アプリケーション整合性のあるバックアップを作成します。SQL Server 用 SnapCenter プラグインには、データ保護ワークフローを簡素化する次の機能があります。

  • 完全バックアップとログバックアップの粒度を備えたバックアップおよび復元オプション

  • インプレース復元と別の場所への復元

SnapCenter の詳細については、 AWS ストレージブログの「Amazon FSx for NetApp ONTAP で NetApp SnapCenter を使用して SQL Server ワークロードを保護する」の投稿を参照してください。

バックアップのコスト最適化

次のオプションは、 AWSに SQL Server のバックアップを保存するコストを削減するのに役立ちます。

  • バックアップファイルの作成中に SQL Server の圧縮を有効にし、可能な限り小さいファイルをストレージに送信します。例えば、3:1 の圧縮率は、ディスクスペースを約 66% 節約することを示しています。これらの列に対してクエリを実行するには、次の Transact-SQL ステートメントを使用できます: SELECT backup_size/compressed_backup_size FROM msdb..backupset;

  • S3 バケットにバックアップする場合は、Amazon S3 Intelligent-Tiering ストレージクラスを有効にして、ストレージコストを 30% 削減します。 

  • FSx for Windows File Server または FSx for ONTAP にバックアップする場合は、単一のアベイラビリティーゾーンを使用すると、複数のアベイラビリティーゾーンを使用する場合と比較して 50% のコスト削減になります。料金については、「Amazon FSx for Windows File Server の料金」と「Amazon FSx for NetApp ONTAP の料金」を参照してください。

  • SQL Server 2022 の最も効率的なオプションは、Amazon S3 への直接バックアップです。Storage Gateway を回避することで、追加コストを節約できます。

バックアップのベンチマークテスト結果

このセクションでは、本ガイドで説明するバックアップソリューションのパフォーマンスベンチマークテストの結果に基づいて、サンプル 1 TB データベースのコストとパフォーマンスの観点から次のオプションを比較します。

  • EC2 インスタンス仕様 – Windows Server 2019 および SQL Server 2019 Developer Edition を使用した r5d.8xlarge

  • データベース仕様 – TDE が無効になっている 1 TB のサイズ

これらのテストは、r5d.8xlarge インスタンスと、1 TB の SQL Server データベースをソースとして使用して実行されました。ソースシステムはベストプラクティスに沿って構成され、ソースデータベースには、個別の gp3 ボリュームに分散された 4 つのデータファイル (各 250 GB) と 1 つのログファイル (50 GB) が含まれていました。SQL Server ネイティブの BACKUP コマンドには、圧縮を使ってバックアップパフォーマンスを最適化し、ネットワーク経由で送信されターゲットに書き込まれるデータの量を減らすため、10 のバックアップファイルへの書き込みが含まれています。すべてのテストケースで、ストレージのパフォーマンスがボトルネックでした。

この種のテストの考えられる構成は、無限に近いバリエーションがあります。このテストでは、パフォーマンス、コスト、スケーラビリティ、実際のユースケースの最適化に焦点を当てました。次の表は、バックアップターゲットオプションでキャプチャされたパフォーマンスメトリクスを示しています。

バックアップオプション レベル 実行時間 (近似値) バックアップレート 1 か月あたりのコスト (USD)*
ローカル EBS st1 HDD へのネイティブバックアップ、2 TB [Database] (データベース) 00:30:46 分 554.7 Mbps 92.16 USD
ローカル EBS SSD gp3 へのネイティブバックアップ、2 TB [Database] (データベース) 00:22:00 分 512 Mbps 193.84 USD
FSx for Windows File Server HDD へのネイティブバックアップ、2 TB @512 Mbps スループット [Database] (データベース) 00:20:58 分 814.0 Mbps 1,146 USD
FSx for Windows File Server SSD へのネイティブバックアップ、2 TB @512 Mbps スループット [Database] (データベース) 00:20:00 分 814.0 Mbps 1,326 USD
S3 ファイルゲートウェイ m6i.4xlarge (16 vCPU、64 GB) へのネイティブバックアップ、2 TB gp3 [Database] (データベース) 00:23:20 分 731.5 Mbps 470.42 USD
EBS VSS スナップショット EBS ボリューム

00:00:02 秒

00:00:53 秒

スナップショットなし 51 USD
AWS Backup (AMI バックアップ) AMI

00:00:04 秒

00:08:00 分

スナップショットなし 75 USD
Amazon S3 への SQL Server の直接ネイティブバックアップ (SQL Server 2022) [Database] (データベース) 00:12:00 分 731.5 Mbps 最初の 50 TB/月、1 GB あたり 0.023 USD、1 か月あたり 23.55 USD
FSx for ONTAP へのネイティブバックアップ (SnapCenter を使用) [Database] (データベース) 440.20 USD

上記の表は、次のことを前提としています。

  • データ転送と Amazon S3 のコストは含まれません。

  • ストレージ料金はインスタンス料金に含まれます。

  • コストは us-east-1 リージョンに基づいています。

  • 1 か月間の全体的な変化率が 10% である複数のバックアップにより、スループットと IOPS が 10% 増加します。

テスト結果は、最速のオプションが FSx for Windows File Server へのネイティブ SQL Server データベースバックアップであることを示しています。Storage Gateway とローカルにアタッチされた EBS ボリュームへのバックアップは、コスト効率の高いオプションですが、パフォーマンスが低下します。サーバーレベルのバックアップ (AMI) では、最適なパフォーマンス、コスト、管理性 AWS Backup を実現するために を使用することをお勧めします。

コスト最適化の推奨事項

Amazon EC2 における SQL Server のバックアップ用ソリューションについて理解しておくことは、データを保護し、バックアップのニーズを満たし、重大事象から回復するための計画を立てる上で鍵となります。このセクションで説明する、SQL Server インスタンスとデータベースをバックアップおよび復元するさまざまな方法は、データを保護し、組織の要件を満たすバックアップおよび復元戦略を考案するのに役立ちます。

このセクションでは、次のバックアップオプションについて説明します。

  • Compression

  • Amazon S3 の新しいストレージクラス、S3 Intelligent-Tiering を発表

  • 単一のアベイラビリティーゾーン

  • URL へのバックアップ

これらのオプションごとに提供されるガイダンスは高レベルです。組織でこれらの推奨事項のいずれかを実装する場合は、アカウントチームに連絡することをお勧めします。その後、チームは Microsoft スペシャリスト SA と連携して会話を主導することができます。optimize-microsoft@amazon.com に E メールを送信して連絡をとることもできます。

要約すると、次のことをお勧めします。

  • SQL Server 2022 を使用している場合は、Amazon S3 へのバックアップが最もコスト効率の高いオプションです。

  • SQL Server 2019 以前の SQL Server エディションを使用している場合は、最もコスト効率の高いオプションとして、Amazon S3 によって支援された Storage Gateway へのバックアップを検討してください。

Compression

圧縮の目的は、バックアップごとに消費されるストレージを減らすことです。これは、さまざまなストレージオプションにとって有益です。SQL Server インスタンスのレベルで SQL Server バックアップの圧縮を有効にする必要があります。次の例は、バックアップデータベースで圧縮キーワードを追加する方法を示しています。

BACKUP DATABASE <database_name> TO DISK WITH COMPRESSION (ALGORITHM = QAT_DEFLATE)

Amazon S3 の新しいストレージクラス、S3 Intelligent-Tiering を発表

Amazon S3 バケットへのバックアップの場合、Amazon S3 Intelligent-Tiering を Amazon S3 ファイルゲートウェイストレージクラスとして有効にできます。これにより、ストレージコストを最大 30% 削減できます。次に、Active Directory ドメインと統合できる SMB ファイル共有を使用して、S3 ファイルゲートウェイを SQL サーバーにマウントします。これにより、共有のアクセスコントロール、既存のサービスアカウントを活用する機能、一般的な Microsoft 向けファイルプロトコルを使用した Amazon S3 へのアクセスが可能になります。ドメインコントローラーに直接接続できない可能性があるアカウントでは、Active Directory Connector を使用して、オンプレミスまたはクラウドでの Active Directory との通信を容易にすることができます。ゲートウェイで Active Directory 設定を構成するには、ドメインコントローラーが Active Directory へのリクエストをプロキシするための Active Directory Connector IP を指定する必要があります。

次の図は、S3 Intelligent-Tiering に基づくソリューションのアーキテクチャを示しています。

S3 Intelligent-Tiering のアーキテクチャ

デフォルトでは、S3 バケットに書き込まれたバックアップファイルは標準階層を使用します。バックアップファイルを標準階層から S3 Intelligent-Tiering に変換するには、ライフサイクルルールを作成する必要があります。AWS マネジメントコンソール を使用して S3 Intelligent-Tiering を有効にすることもできます。詳細については、 AWS ドキュメントの「Amazon S3 Intelligent-Tiering の使用を開始する」を参照してください。

単一のアベイラビリティーゾーン

単一のアベイラビリティーゾーンのファイルシステムを作成するには、FSx for Windows File Server ファイルシステムを作成するときにシングル AZ オプションを選択します。Amazon FSx は、Windows ボリュームシャドウコピーサービスを使用して、ファイルシステムの耐久性の高いバックアップ (Amazon S3 に保存) を毎日取得し、ユーザーはいつでも追加のバックアップを取ることができます。単一のアベイラビリティーゾーンの使用に関するいくつかの問題に注意してください。例えば、ファイルシステムがプロビジョニングされる、影響を受けるアベイラビリティーゾーンが一度に数時間ダウンすると、SMB ファイル共有にアクセスできなくなります。データへのアクセスが必要な場合は、ソースリージョン内の使用可能なアベイラビリティーゾーンのバックアップから復元する必要があります。詳細については、このガイドの「Use a single Availability Zone」セクションを参照してください。

URL へのバックアップ

SQL Server 2022 の場合、URL へのバックアップ機能を使用すると、Amazon S3 への直接バックアップが可能になります。これは、ストレージレイヤーで Amazon S3 の完全な機能セットを取得し、この機能を容易にするために以前のバージョンで必要なアプライアンスの AWS Storage Gateway コストを排除 AWS するため、 で実行されている SQL Server 2022 の理想的なバックアップアプローチです。この機能を実装する際に考慮すべき主なコストは、データ転送コストと、選択した S3 ストレージクラスの 2 つです。Amazon S3 のネイティブディザスタリカバリ機能が必要な場合は、クロスリージョンレプリケーションによってクロスリージョンのデータエグレスコストが発生することを考慮する必要があります。このオプションの設定方法の詳細については、Microsoft Workloads on AWS ブログの記事「Backup SQL Server databases to Amazon S3」を参照してください。

その他のリソース