SQL サーバーバックアップ戦略の最適化 - AWS 規範ガイダンス

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

SQL サーバーバックアップ戦略の最適化

概要

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

データベースレベルのネイティブバックアップ には、次のストレージオプションがあります。

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

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

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

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

このセクションでは、以下を行います。

  • ストレージスペースを節約するのに役立つ機能を強調表示

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

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

VSSが有効なスナップショットを使用したサーバーレベルのバックアップ

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

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

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

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

VSSが有効なスナップショットを使用する利点を以下から考慮してください。

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

  • EBS スナップショットはリカバリを提供します point-in-time。

  • スナップショット から新しいSQLサーバーEC2インスタンスに復元できます。

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

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

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

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

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

VSSが有効なスナップショットを使用する際には、以下の制限を考慮してください。

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

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

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

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

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

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

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

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

次の図は、 EC2を使用して 上の SQL Server のバックアップおよび復元ソリューションのアーキテクチャを示しています AWS Backup。

AWS Backup アーキテクチャ

を使用して SQL Server をバックアップする利点を以下から検討してください AWS Backup。

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

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

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

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

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

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

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

  • ソリューションは で動作しますTDE。

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

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

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

これらのアプローチでは、ネイティブの Microsoft SQL Server バックアップ機能を使用します。Server SQLインスタンス上の個々のデータベースのバックアップを取得し、個々のデータベースを復元できます。

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

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

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

  • TDE暗号化されたデータベース

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

SQL Amazon 上のサーバーは、SQLサーバーデータベースのネイティブバックアップと復元EC2をサポートしています。Server SQL データベースのバックアップを取り、バックアップファイルを既存のデータベース、または新しい 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サーバーバックアップを使用する利点を次に示します。

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

  • バックアップは S3 バケットに直接、または Storage Gateway ファイルキャッシュを介して送信されます。

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

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

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

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

Server SQL データベースのネイティブバックアップを取得し、Amazon EBSボリュームにファイルを保存できます。Amazon EBSは、パフォーマンスの高いブロックストレージサービスです。EBS ボリュームは伸縮自在で、暗号化をサポートしています。これらはデタッチしてEC2インスタンスにアタッチできます。Server SQLは、同じEBSボリュームタイプまたは別のEBSボリュームタイプのEC2インスタンスでバックアップできます。別のEBSボリュームにバックアップする利点の 1 つは、コスト削減です。

次の図は、EBSボリュームへのネイティブバックアップのアーキテクチャを示しています。

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

Server SQLネイティブバックアップをEBSボリュームに使用する利点を以下から検討してください。

  • 完全なEC2インスタンスを復元するのではなく、SQLサーバーインスタンス上の個々のデータベースのバックアップを取得し、個々のデータベースを復元できます。

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

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

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

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

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

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

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

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

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

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

次の図は、 for Windows File Server FSx へのネイティブSQLサーバーバックアップのアーキテクチャを示しています。

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

for Windows File Server で FSx にネイティブSQLサーバーバックアップを使用する利点を次に示します。

  • Server SQL データベースを Amazon FSx ファイル共有にバックアップできます。

  • 完全なインスタンスを復元するのではなく、SQLサーバーインスタンス上の個々のデータベースのバックアップを取り、個々のデータベースを復元できます。

  • マルチパートバックアップがサポートされています。

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

  • インスタンスのネットワーク帯域幅は、Amazon に比べて高くなりますEBS。

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

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

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

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

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

SQL FSxの Amazon へのサーバーバックアップ NetApp ONTAP

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

NetApp SnapCenter

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

  • フルバックアップとログバックアップのきめ細かなバックアップと復元のオプション

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

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

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

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

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

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

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

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

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

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

  • EC2 インスタンス仕様 – Windows Server 2019 および SQL Server 2019 デベロッパーエディションを使用した r5d.8xlarge

  • データベース仕様 – 1 TB サイズ、TDE無効

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

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

バックアップオプション レベル 実行期間 (Appx) バックアップレート 1 か月USDあたりのコスト*
ローカル EBS st1 へのネイティブバックアップHDD、2 TB データベース 00:30:46 分 554.7 Mbps 92.16 ドル
ローカル EBS SSD gp3 へのネイティブバックアップ、2 TB データベース 00:22:00 分 512 Mbps 193.84 ドル
Windows File Server FSx用 へのネイティブバックアップHDD、2 TB @512 Mbps スループット データベース 00:20:58 分 814.0 Mbps 1,146 ドル
Windows File Server FSx の へのネイティブバックアップSSD、2 TB @512 Mbps スループット データベース 00:20:00 分 814.0 Mbps 1,326 ドル
2 TB gp3 を使用した S3 File Gateway m6i.4xlarge (16 v CPU、64 GB) へのネイティブバックアップ データベース 00:23:20 分 731.5 Mbps 470.42 ドル
EBS VSS スナップショット EBS ボリューム

00:00:02 秒

00:00:53 秒

N/A スナップショット 51 ドル
AWS Backup (AMI バックアップ) AMI

00:00:04 秒

00:08:00 分

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

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

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

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

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

  • スループットとIOPS成長率は 10% で、複数のバックアップでは 1 か月全体の変化率が 10% です。

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

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

Amazon で SQL Server をバックアップするための考えられるソリューションを理解することEC2は、データを保護し、バックアップのニーズを確実に満たし、重要なイベントから復旧するための計画を立てる上で重要です。このセクションで調べたSQLサーバーインスタンスとデータベースをバックアップおよび復元するさまざまな方法は、データを保護し、組織の要件を満たすバックアップおよび復元戦略を考案するのに役立ちます。

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

  • 圧縮

  • 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 へのバックアップを最もコスト効率の高いオプションとして検討してください。

圧縮

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

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

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

Amazon S3 バケットへのバックアップでは、Amazon S3 File Gateway ストレージクラス として Amazon S3 Intelligent-Tiering を有効にできます。 Amazon S3 https://docs.aws.amazon.com/filegateway/latest/files3/storage-classes.html#ia-file-gateway これにより、ストレージコストを最大 30% 削減できます。次に、Active Directory ドメイン と統合できるSMBファイル共有を使用して、S3 File Gateway をSQLサーバーにマウントします。これにより、共有のアクセスコントロール、既存のサービスアカウントを活用する機能、一般的な Microsoft に焦点を当てたファイルプロトコルを使用した Amazon S3 へのアクセスが可能になります。ドメインコントローラーに直接接続されていない可能性のあるアカウントでは、Active Directory Connector を使用して、オンプレミスまたはクラウドで Active Directory との通信を容易にできます。ゲートウェイで Active Directory 設定を構成するには、Active Directory へのリクエストをプロキシするドメインコントローラーIPsの Active Directory Connector を指定する必要があります。

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

S3 Intelligent-Tiering アーキテクチャ

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

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

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

へのバックアップ URL

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

追加リソース