Amazon Web Services ブログ
AWS Storage Gateway を使用して Amazon S3 に SQL Server バックアップを保存する
Alkami や Acadian Asset Management などのお客様は、AWS Storage Gateway を使用して Microsoft SQL Server データベースを直接 Amazon S3 にバックアップし、オンプレミスのストレージ占有領域を削減し、耐久性、拡張性、および費用対効果の高いストレージとして S3 を活用しています。
Storage Gateway は、オンプレミスアプリケーションに対して、実質的に無制限のクラウドストレージへのアクセスを提供する、ハイブリッドなクラウドストレージサービスです。このサービスは、ストレージ管理を簡素化し、3 つの主な使用例でコストを削減します。
- クラウドへのバックアップ移動
- クラウドベースのファイル共有によるオンプレミスストレージの削減
- オンプレミスアプリケーション用に AWS 内のデータへのアクセスを低レイテンシーで提供
この記事では、Storage Gateway のファイルゲートウェイ設定を使用してバックアップをクラウドに移動する 1 つの方法を説明します。
概要
次の手順を使用してファイルゲートウェイをデプロイし、SQL Server のバックアップターゲットとしてファイル共有を作成して、S3 にバックアップを保存します。
- オンプレミス環境にファイルゲートウェイをデプロイします。
- ファイル共有認証でドメインユーザーとグループを使用できるように、ファイルゲートウェイを Microsoft Active Directory ドメインに接続します。
- ファイルゲートウェイに SMB ファイル共有を作成し、その共有を S3 バケットに関連付けます。Active Directory ドメインを使用して共有へのオンプレミスアクセスを設定します。
- 共有をマウントしてクイックバックアップを作成し、SQL Server がその共有にアクセスできることを確認します。
ファイルゲートウェイをデプロイする
始めるには、オンプレミス環境でファイルゲートウェイを作成します。ファイルゲートウェイは、オンプレミスの VMware 仮想マシン (VM)、Microsoft Hyper – V VM、またはハードウェアアプライアンスとしてデプロイできます。ご希望のホストプラットフォームを選択し、ゲートウェイを作成してください。
ファイルゲートウェイはデータをローカルキャッシュに保存し、バックグラウンドで S3 にアップロードします。このキャッシュは、最近使用したデータ (最近の SQL Server バックアップなど) へのアクセスを低レイテンシーで提供し、データが S3 にアップロードされる際のネットワークの変動に対するバッファを提供します。キャッシュのサイズは最大 16 TB です。少なくとも最大バックアップファイルのサイズになるように、キャッシュストレージのサイズを設定することをお勧めします。最新のバックアップファイルを迅速に復元するためにオンプレミスに保存できる十分な大きさが理想的です。
VMware または Hyper – V 環境にデプロイしている場合は、キャッシュに使用する仮想マシンに 1 つ以上のディスクを接続します。ハードウェアアプライアンスをデプロイしている場合は、アプライアンスにキャッシュディスクが事前設定されています。
ゲートウェイをアクティブにすると、Storage Gateway コンソールに新しいファイルゲートウェイが「ONLINE」と表示されます。
Active Directory ドメインに参加する
次に、ファイルゲートウェイを Active Directory に接続します。Active Directory に接続すると、認証されたドメインユーザーだけが SMB ファイル共有にアクセスできるようになり、特定の Active Directory ユーザーとグループのアクセスを制限できるようになります。
- Storage Gateway マネジメントコンソールから、前の手順で作成したファイルゲートウェイを選択し、[操作]、[SMB 設定の編集] の順に選択します。
- 次の画面で、Active Directory ドメインの名前と、そのドメインにコンピュータを追加する権限を持つユーザーの資格情報を入力します。ファイルゲートウェイに接続したいドメインコントローラー一覧を提供することもできます。
ファイル共有を作成する
ファイルゲートウェイを Active Directory に接続して、SMB ファイル共有を作成できます。検討すべき 2 つの主要ポイントを強調したいと思います。S3 バケットへの接続と共有へのアクセス設定です。詳しい手順については、SMB ファイル共有の作成を参照してください。
各ファイル共有は S3 バケットに関連付けられています。バックアップをバケットに保存して、ローカルまたは別のゲートウェイから (別のオフィスや AWS クラウドなど) バックアップを復元できます。バックアップの復元オプションについては、次のセクションを参照してください。ネットワークのレイテンシーを最小限に抑えるには、ファイルゲートウェイのインストールに最も近い AWS リージョンで S3 バケットを使用してください。
ゲートウェイファイル共有を作成するときは、S3 ストレージクラスを指定する必要があります。ファイルゲートウェイは、指定したストレージクラスを使用して S3 バケットにオブジェクトを作成します。ファイルゲートウェイは、S3 標準、S3 標準 – IA (低頻度アクセス)、および S3 OneZone – IA の 3 つの S3 ストレージクラスをサポートします。
SQL Server のバックアップジョブには、S3 標準の使用をお勧めします。このクラスを使用すると、アクセス料金が発生することなく、検証またはテスト目的でバックアップファイルを迅速かつ簡単に復元できます。長期保存用にファイルをバックアップするには、S3 ライフサイクルポリシーを使用します。オブジェクトを S3 標準 – IA、S3 Glacier、または S3 Glacier Deep Archive など、低コストのストレージクラスに移行できます。
ライフサイクルポリシーの結果として、オブジェクト (バックアップファイルなど) が S3 Glacier または S3 Glacier Deep Archive に移行された場合、オブジェクトを S3 標準に復元するまで、そのオブジェクトはゲートウェイファイル共有にアクセスできなくなります。詳しくは、ストレージクラスの使用を参照してください。
適切な S3 設定に加えて、バックアップの使用を必要とする Active Directory ドメインユーザーおよびグループへの共有アクセスも制限する必要があります。バックアップの使用例では、バックアップを作成しているドメイン “backup_user” に対して読み取り/書き込みアクセスを許可し、ドメイン “restore_user” に対して読み取り専用アクセスを許可して、バックアップを復元できることを確認します。
SQL Server をネットワーク共有にバックアップするには、ゲートウェイファイル共有へのアクセス権を持つアカウントからサービスを実行する必要があります。共有アクセス許可を変更する可能性があるユーザーまたはグループに対して、管理者特権を付与することを検討してください。これらの Active Directory ドメインユーザーおよびグループへのアクセスを制限する方法については、Active Directory を使用してユーザーを認証するを参照してください。
デフォルトでは、ファイル共有は所有権とアクセス許可に Windows のアクセスコントロールリスト (ACL) を使用します。ファイル共有内のファイルおよびフォルダでは、最大 10 人の Active Directory ユーザーおよびグループに対して、きめ細かいアクセスコントロールを適用できます。詳細については、Microsoft Windows ACL を使用して SMB ファイル共有へのアクセスを制御するを参照してください。管理を容易にするために、トップレベルの共有フォルダに必要なアクセス許可を設定することをお勧めします。継承を有効にして、ファイル共有内のすべてのファイルおよびフォルダに ACL を伝達します。新しいファイルとフォルダがこれらの ACL を自動的に継承します。
ファイル共有をマウントする
Storage Gateway コンソールと SMB ファイル共有の手順では、SQL Server システムにファイル共有をマウントする方法について説明しています。SQL Server を含め、Windows で実行しているすべてのアプリケーションにとって、ゲートウェイの SMB ファイル共有は標準ファイル共有のように見えます。アプリケーションは、S3 でバックアップがオブジェクトとして保存されていることを認識する必要がありません。
SMB ファイル共有を Windows のドライブ文字にマッピングし、SQL Server で標準ファイルパスを使用することができます。または、次の汎用命名規則 (UNC) パスを使用してファイル共有を直接参照することもできます。\\<ゲートウェイの IP アドレス>\<S3 バケット名>\。 SQL Server でネットワーク共有を使用する方法については、ディスクバックアップファイルのパスを指定するを参照してください。
データベースをバックアップする
SQL Server データベースをバックアップする方法はたくさんあります。すべて 1 つ以上のバックアップファイルが生成されます。
データベースのバックアップを設定するときは、SMB ファイル共有を指定してください。たとえば、SMB 共有を SQL Server システムの X: ドライブにマッピングする場合は、SQL Server Management Studio (SSMS) を使用してオンデマンドのバックアップジョブを実行し、次のスクリーンショットに示すように、ディスクの保存先として X: ドライブへのパスを指定できます。
Storage Gateway はバックアップファイルを共有ファイルに書き込むときに、バックグラウンドでファイルを S3 にもアップロードします。Transport Layer Security 暗号化は、転送中のデータを保護します。
NotifyWhenUploaded API をすぐに呼び出して、バックアップジョブが完了して S3 にアップロードした後に Amazon CloudWatch 通知を受け取ることができます。その後、S3 コンソールにアクセスして、バックアップが保存されているフォルダに移動し、バックアップファイルが S3 バケットにあることを確認します。詳細については、ファイル操作についての通知を受信するを参照してください。
バックアップファイルがすぐに S3 バケットに表示されない場合があります。ファイルのコンテンツをローカルキャッシュから S3 バケットに転送するのに時間がかかる場合があります。バックアップファイルのサイズ、ファイルゲートウェイと AWS 間のネットワーク帯域幅によって異なります。たとえば、1 GB/秒のネットワークリンクでは、500 GB のバックアップファイルを S3 にアップロードするのに約 1 時間半がかかります。CloudWatch メトリックを使用してトラフィックをモニタリングできます。
データベースを復元する
ファイルゲートウェイを使用すると、比較的少ない手順でバックアップからデータベースを復元できます。SMB 共有のバックアップファイルを選択して復元します。たとえば、データベースのバックアップを X:\Backups\backup2.bak に作成した場合は、SSMS を使用してオンデマンド復元を実行できます。次のスクリーンショットに示すように、ソースデバイスとしてバックアップファイルへのパスを指定します。
バックアップを作成した直近の日時とそのファイルサイズに応じて、ファイルデータの一部または全部がファイルゲートウェイのキャッシュに保存される場合があります。ファイルゲートウェイにキャッシュされていない SSMS でリクエストされたファイルデータを S3 から取得します。ファイルサイズとネットワーク帯域幅によっては、S3 から追加のデータを読み取った後にバックアップと復元にかかる時間が長くなる可能性があります。Amazon EC2 インスタンスで実行している SQL Server からバックアップファイルを復元することも、SQL Server のインスタンスを実行して Amazon RDS を使用するバックアップをインポートすることもできます。
結論
これで、SQL Server のバックアップ先として、ファイルゲートウェイをデプロイおよび設定する方法がわかりました。ファイルゲートウェイを使用すると、S3 が実際に提供する無制限で費用対効果に優れ、耐久性も高いストレージを利用して、バックアップや復元のワークフローを変更することなく、SQL Server でバックアップを利用することができます。 バックアップを S3 に保存することで、データベースのワークロードをクラウドに移行するための重要な第一歩を踏み出しました。これらは現在 Amazon RDS または Amazon EC2 で使用するためにクラウド内にインポートすることができます。
SQL Server バックアップにファイルゲートウェイを使用してデモを見る方法については、こちらのオンラインセミナー (24:07-32:42) をご覧ください。
著者について
Jeff Bartley は、アマゾンウェブサービスのハイブリッドストレージおよびデータ転送ソリューションのアーキテクトです。