AdventureWorksのサンプルデータベースをAmazon RDS for SQL Serverに復元する方法

記事タイトルとURLをコピーする

本記事では、Microsoftが提供するサンプルデータベース「AdventureWorks」をAmazon RDS for SQL Server上に復元し、すぐにクエリを実行できる状態にする方法を解説します。 AdventureWorksは、架空の多国籍自転車製造会社「Adventure Works Cycles」を題材に作成され、販売・製造・人事などのデータを含む学習・テスト用データベースで、以下のような用途に使用することができます。

  1. SQL学習とスキル向上
  2. アプリケーション開発のテストデータ
  3. データベース設計の理解

概要

AdventureWorksはネイティブバックアップのファイル(AdventureWorks2019.bakのような形式)で配布されています。 そのため、Amazon RDS for SQL ServerにAdventureWorksを復元するには、SQL Serverのネイティブバックアップとリストア機能を利用します。この機能は、Amazon S3バケットを経由してバックアップファイルを転送することで実現されます。

  1. 復元に必要なリソースをAWS上で準備します
  2. AdventureWorksのバックアップファイルを取得しS3に配置します
  3. SQL Server Management Studio(SSMS)などからRDSインスタンスに接続し、リストアを実行します

システム構成概要
システム構成概要

手順

前提準備

まず、必要なリソースをAWS上で準備します。ポイントとなるのはS3バケットとそれに関連したIAMロールの作成とRDSインスタンスへの紐づけです。

S3バケットの作成

AdventureWorksのバックアップファイル(.bak)をアップロードするためのS3バケットを作成します。このバケットは、RDSインスタンスと同じAWSリージョンに作成するのが推奨されます。

IAMロールの作成

RDS for SQL ServerがS3バケットにアクセスできるように、適切な権限を持つIAMロールを作成します。このロールには、S3バケットへの読み取り/書き込み権限が必要です。

オプショングループの設定

RDSインスタンスに「SQLSERVER_BACKUP_RESTORE」オプションが含まれるオプショングループを設定します。このオプションは、ネイティブバックアップとリストアを可能にするためのものです。先ほど作成したIAMロールを、このオプションに関連付けます。

詳細な手順については以下のAmazon RDSユーザーガイドをご参照ください。

docs.aws.amazon.com

バックアップファイルの入手とS3へのアップロード

次に、AdventureWorksのバックアップファイルをS3に配置します。

AdventureWorksのバックアップファイル入手

Microsoftの公式サイトから、使用するSQL Serverのバージョンに対応したAdventureWorksのバックアップファイル(例: AdventureWorks2019.bak)をダウンロードします。

learn.microsoft.com

S3バケットへのアップロード

ダウンロードした.bakファイルを、作成したS3バケットにアップロードします。

RDSへのリストア

最後に、SQL Server Management Studio(SSMS)などからRDSインスタンスに接続し、リストアを実行します。

リストアコマンドの実行

以下のストアドプロシージャを実行して、S3上のバックアップファイルからRDSにデータベースを復元します。

exec msdb.dbo.rds_restore_database 
    @restore_db_name='AdventureWorks2019', 
    @s3_arn_to_restore_from='arn:aws:s3:::your-s3-bucket-name/AdventureWorks2019.bak';

your-s3-bucket-name は作成したS3バケット名に置き換えてください。

復元の確認: 実行が完了したら、SSMSのオブジェクトエクスプローラーを更新し、指定したデータベース名(例: AdventureWorks2019)でデータベースがリストアされていることを確認します。

これらの手順を通じて、AdventureWorksをAmazon RDS for SQL Serverで利用できるようになります。