翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
SQL Server バックアップ戦略を最適化する
概要:
ほとんどの組織は、SQL Server 上のデータを Amazon EC2 に保護し、前回のバックアップからの最大許容時間である目標復旧時点 (RPO) とサービス中断からサービス復旧までの最大許容遅延時間である目標復旧時間 (RTO) に関する現在の要件を満たす、適切なソリューションを求めています。EC2 インスタンスで SQL Server を実行している場合、データのバックアップを作成したり、データを復元したりする複数のオプションがあります。SQL Server on Amazon EC2 でデータを保護するバックアップ戦略には、次のようなものがあります。
-
Windows Volume Shadow Copy Service (VSS)-enabled Amazon Elastic Block Store (Amazon EBS)
スナップショットまたは AWS Backup を使用するサーバーレベルのバックアップ -
SQL Server のネイティブバックアップと復元
を使用するデータベースレベルのバックアップ
データベースレベルのネイティブバックアップを選択した場合、以下のストレージオプションがあります。
-
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 スナップショット
次の図は、VSS 対応スナップショットを使用したサーバーレベルのバックアップのアーキテクチャを示しています。
VSS 対応スナップショットを使用する次の利点を考慮してください。
-
DB インスタンスの初期のスナップショットには、フル DB インスタンスのデータが含まれています。同じ DB インスタンスの後続のスナップショットは増分です。つまり、直近のスナップショット以降に変更されたデータのみが保存されます。
-
EBS スナップショットは、ポイントインタイムリカバリを提供します。
-
インスタンスが 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 Backupを使用した SQL Server on EC2 のバックアップと復元ソリューションのアーキテクチャを示したものです。
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 を使用した SQL Server ネイティブのバックアップを使用する次の利点を考慮してください。
-
ストレージゲートウェイを、EC2 インスタンスのサーバーメッセージブロック (SMB) ファイル共有としてマッピングし、バックアップを Amazon S3 に送信できます。
-
バックアップは S3 バケットに直接行われるか、Storage Gateway のファイルキャッシュを介して行われます。
-
複数ファイルのバックアップがサポートされています。
Storage Gateway を使用したネイティブバックアップの次の制限事項を考慮してください。
-
バックアップと復元をデータベースごとに設定する必要があります。
-
バックアップファイル用の Amazon S3 ライフサイクルポリシーの管理が必要になります。
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 ボリュームへのネイティブバックアップのアーキテクチャを示したものです。
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 への、SQL 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 インスタンス
BACKUP DATABASE <database_name> TO DISK WITH COMPRESSION
(ALGORITHM = QAT_DEFLATE)
Amazon S3 の新しいストレージクラス、S3 Intelligent-Tiering を発表
Amazon S3 バケットへのバックアップの場合、Amazon 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 EC2 での SQL Server のバックアップと復元のオプション (AWS 規範ガイダンス)
-
を使用した Amazon RDS Point-in-timeリカバリと継続的バックアップ AWS Backup
(AWS ストレージブログ) -
Amazon FSx for NetApp ONTAP で NetApp SnapCenter を使用して SQL Server ワークロードを保護する
(AWS ストレージブログ) -
Amazon S3 Intelligent-Tiering の使用開始
(AWS 入門リソースセンター) -
Amazon RDS for SQL Server のバックアップおよび復元戦略
(AWS データベースブログ) -
オンプレミスの Microsoft SQL Server データベースを Amazon EC2 に移行する (AWS 規範ガイダンス)
-
Amazon EC2 に Microsoft SQL Server をデプロイするためのベストプラクティス (AWS ホワイトペーパー)