View a markdown version of this page

を使用して Amazon RDS for SQL Server テーブルを S3 バケットにエクスポートする AWS DMS - AWS 規範ガイダンス

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

を使用して Amazon RDS for SQL Server テーブルを S3 バケットにエクスポートする AWS DMS

Amazon Web Services、Subhani Shaik

概要

Amazon Relational Database Service (Amazon RDS) for SQL Server は、Amazon Web Services () クラウド上の他のデータベース (DB AWS) エンジンリンクサーバーへのデータのロードをサポートしていません。代わりに、 AWS Database Migration Service (AWS DMS) を使用して Amazon RDS for SQL Server テーブルを Amazon Simple Storage Service (Amazon S3) バケットにエクスポートし、そのデータを他の DB エンジンで使用できます。

AWS DMS を使用すると、データベースを AWS 迅速かつ安全に に移行できます。ソースデータベースは移行中も完全に動作し続け、データベースに依存するアプリケーションのダウンタイムを最小限に抑えます。 AWS DMS は、最も広く使用されている商用データベースとオープンソースデータベースとの間でデータを移行できます。

このパターンでは、 AWS DMS エンドポイントの設定 AWS Secrets Manager 時に を使用します。Secrets Manager は、アプリケーション、サービス、IT リソースへのアクセスに必要なシークレットの保護に役立ちます。このサービスを使うと、ライフサイクルを通じてデータベース認証情報、API キー、その他のシークレットをローテーション、管理、取得することができます。ユーザーとアプリケーションは Secrets Manager を呼び出すことでシークレットを取得できるため、機密情報をハードコーディングする必要がなくなります。Secrets Manager は、Amazon RDS、Amazon Redshift、Amazon DocumentDB (MongoDB 互換) の組み込み統合によるシークレットローテーションを提供します。また、このサービスは API キーや OAuth トークンなど、他のタイプのシークレットにも拡張できます。Secrets Manager を使用すると、きめ細かなアクセス許可を使用してシークレットへのアクセスを制御し、 AWS クラウド、サードパーティーサービス、オンプレミスのリソースのシークレットローテーションを一元的に監査できます。

前提条件と制限

前提条件

  • アクティブな AWS アカウント

  • Amazon S3 バケット

  • 仮想プライベートクラウド (VPC)

  • DB サブネット

  • Amazon RDS for SQL Server

  • Amazon RDS インスタンスに代わって S3 バケットにアクセス (オブジェクトを一覧表示、取得、配置) する AWS Identity and Access Management (IAM) ロール

  • Amazon RDS インスタンス認証情報を保存する Secrets Manager

アーキテクチャ

テクノロジースタック

  • Amazon RDS for SQL Server

  • AWS DMS

  • Amazon S3

  • AWS Secrets Manager

ターゲットアーキテクチャ

次の図は、Amazon RDS インスタンスから Amazon S3 バケットにデータをエクスポートするためのアーキテクチャを示しています AWS DMS。

説明は図に続いて記載します。
  1. ソースエンドポイントを介してソース Amazon RDS インスタンスに接続する AWS DMS 移行タスク

  2. ソース Amazon RDS インスタンスからデータをコピーする

  3. ターゲットエンドポイントを介してターゲット Amazon S3 バケットに接続する AWS DMS 移行タスク

  4. コピーしたデータをカンマ区切り値 (CSV) 形式で Amazon S3 バケットにエクスポートする

ツール

AWS のサービス

  • AWS Database Migration Service (AWS DMS) を使用すると、データストアを AWS クラウドに移行するか、クラウドとオンプレミスのセットアップの組み合わせ間で移行できます。

  • AWS Identity and Access Management (IAM) は、リソースの使用を認証および認可されたユーザーを制御することで、 AWS リソースへのアクセスを安全に管理できます。

  • Amazon Relational Database Service (Amazon RDS) は、 AWS クラウドでのリレーショナルデータベースのセットアップ、運用、スケーリングに役立ちます。

  • Amazon Simple Storage Service (Amazon S3) は、あらゆる量のデータを保存、保護、取得できるクラウドベースのオブジェクトストレージサービスです。

  • AWS Secrets Manager を使用すると、コード内のハードコードされた認証情報 (パスワードを含む) を Secrets Manager への API コールで置き換えて、プログラムでシークレットを取得することができます。

その他のツール

ベストプラクティス

エピック

タスク説明必要なスキル

Amazon RDS for SQL Server インスタンスを作成します。

  1. を開き AWS マネジメントコンソール、RDS を選択し、標準作成オプションを使用して、SQL Server Express Edition、SQL Server Standard Edition、SQL Server Enterprise Edition などの必要なエディションの Amazon RDS インスタンスを作成します。バージョンは、2016 以降を選択してください。

  2. テンプレート[開発/テスト] を選択します。

DBA、DevOps エンジニア

インスタンスの認証情報を設定する。

  1. インスタンスの名前を入力します。

  2. Amazon RDS インスタンスの ユーザー名とパスワードを入力します。

DBA、DevOps エンジニア

インスタンスクラス、ストレージ、自動スケーリング、可用性を構成します。

  1. DB インスタンスクラスを次のリストから選択します: [標準]、[メモリ最適化]、[バースト可能] クラス。この DB インスタンスに予定されているワークロードに必要な計算、ネットワーク、メモリ容量を割り当てる DB インスタンスタイプを選択します。詳細については、AWS のドキュメントを参照してください。

  2. 汎用 SSDプロビジョンド IOPS SSD、またはマグネティックのリストからストレージタイプを選択します。必要に応じてデフォルトのストレージサイズを割り当てます。

  3. キャパシティプランニングに基づいて Amazon RDS ストレージを増やすには、[自動スケーリングを有効にする] を選択します。

  4. レプリケーションインスタンスを使用したマルチ AZ 配置は、 でサポートされています AWS DMS。アベイラビリティーゾーン、内部ハードウェア、またはネットワークで障害が発生した場合、 AWS DMS はスタンバイインスタンスを作成し、スタンバイレプリカへの自動フェイルオーバーを通じて高可用性 (HA) を提供します。インポートのサイズに応じて、適切なオプションを選択します。

DBA、DevOps エンジニア

VPC、サブネットグループ、パブリックアクセス、セキュリティグループを指定します。

必要に応じて [VPC]、[DB サブネットグループ]、[VPC セキュリティグループ] を選択し、Amazon RDS インスタンスを作成します。次のようなベストプラクティスに従ってください。

  • Amazon RDS インスタンスへのパブリックアクセスを有効にしないでください。

  • CIDR 0.0.0.0/0 をセキュリティグループで使用しない。

  • Amazon RDS インスタンスにアクセスするには、必要な IP アドレスとポートの詳細のみを使用します。

DBA、DevOps エンジニア

モニタリング、バックアップ、メンテナンスを構成する。

  1. 必要なバックアップオプションを指定します。デフォルトでは、自動バックアップは 7 日の保持期間で有効になっています。

  2. 適切な [自動マイナーバージョンアップグレード] と [メンテナンスウィンドウ] 設定を選択し、保留中の変更またはメンテナンスを Amazon RDS によるデータベースに適用します。

  3. [データベースの作成] を選択します。

DBA、DevOps エンジニア
タスク説明必要なスキル

テーブルを作成し、例データをロードします。

新しいデータベース内にテーブルを作成します。[追加情報] セクションのサンプルコードを使用して、テーブルにデータをロードします。

DBA、DevOps エンジニア
タスク説明必要なスキル

シークレットを作成します。

  1. コンソールで Secrets Manager を選択し、新しいシークレットの保存を選択します。

  2. Amazon RDS for SQL Server データベースのユーザー名とパスワードを入力します。

このシークレットはソース AWS DMS エンドポイントに使用されます。

DBA、DevOps エンジニア
タスク説明必要なスキル

Amazon RDS にアクセスするための IAM ロールを作成します。

  1. コンソールで [IAM] を選択し、S3 バケットに Amazon RDS への読み取り/書き込みアクセスを許可する IAM ロールを作成します。

  2. [機能] で [S3 統合] を選択します。

DBA、DevOps エンジニア
タスク説明必要なスキル

Amazon S3 バケットを作成します。

Amazon RDS for SQL Server からのデータを保存するには、コンソールで [S3] を選択し、[バケットの作成] を選択します。Amazon S3 バケットが公開されていないことを確認します。

DBA、DevOps エンジニア
タスク説明必要なスキル

が Amazon S3 にアクセス AWS DMS するための IAM ロールを作成します。 Amazon S3

が Amazon S3 バケットからオブジェクト AWS DMS を一覧表示、取得、配置できるようにする IAM ロールを作成します。 Amazon S3

DBA、DevOps エンジニア
タスク説明必要なスキル

AWS DMS ソースエンドポイントを作成します。

  1. コンソールで [データベース移行サービス] を選択し、[エンドポイント] を選択します。[RDS DB インスタンスを選択する] チェックボックスを選択して、ソースエンドポイントを作成します。

  2. ソースエンジンには、[Microsoft SQL サーバー] を選択します。

  3. エンドポイントデータベースへのアクセスで を選択しAWS Secrets Manager、前に作成したシークレットと IAM ロール、およびデータベース名を入力します。

  4. ソースエンドポイントをテストします。

DBA、DevOps エンジニア

AWS DMS ターゲットエンドポイントを作成します。

ターゲットエンドポイントを作成し、ターゲットエンジンとして Amazon S3 を選択します。

前に作成した IAM ロールの Amazon S3 バケット名とフォルダ名を指定します。

DBA、DevOps エンジニア

AWS DMS レプリケーションインスタンスを作成します。

同じ VPC、サブネット、セキュリティグループで、 AWS DMS レプリケーションインスタンスを作成します。インスタンスクラスの選択の詳細については、 AWS ドキュメントを参照してください。

DBA、DevOps エンジニア

AWS DMS 移行タスクを作成します。

Amazon RDS for SQL Server から Amazon S3 バケットにデータをエクスポートするには、データベース移行タスクを作成します。[Migration type (移行タイプ)] で [Migrate existing data (既存のデータを移行する)] を選択します。作成した AWS DMS エンドポイントとレプリケーションインスタンスを選択します。

DBA、DevOps エンジニア
タスク説明必要なスキル

データベース移行タスクを実行します。

データベース移行タスクを開始して、SQL Server テーブルデータをエクスポートします。タスクは、データを Amazon RDS for SQL Server から Amazon S3 バケットに CSV 形式でエクスポートします。

DBA、DevOps エンジニア
タスク説明必要なスキル

リソースを削除します。

追加コストが発生しないように、コンソールを使用して次の順序でリソースを削除します。

  1. 移行タスク

  2. レプリケーションインスタンス

  3. エンドポイント

  4. Amazon S3 バケット

  5. Database instance

DBA、DevOps エンジニア

トラブルシューティング

問題ソリューション

Microsoft SQL Server 問題のトラブルシューティング

使用中の Microsoft SQL Server の問題の解決の詳細については AWS DMS、「Microsoft SQL Server に関する問題のトラブルシューティング」を参照してください。

移行タスクのトラブルシューティング

を使用する際の移行問題の解決の詳細については AWS DMS、「 での移行タスクのトラブルシューティング AWS Database Migration Service」を参照してください。

関連リソース

追加情報

データベースとテーブルを作成し、サンプルデータをロードするには、次のコードを使用します。

--Step1: Database creation in RDS SQL Server CREATE DATABASE [Test_DB] ON PRIMARY ( NAME = N'Test_DB', FILENAME = N'D:\rdsdbdata\DATA\Test_DB.mdf' , SIZE = 5120KB , FILEGROWTH = 10%) LOG ON ( NAME = N'Test_DB_log', FILENAME = N'D:\rdsdbdata\DATA\Test_DB_log.ldf' , SIZE = 1024KB , FILEGROWTH = 10%) GO --Step2: Create Table USE Test_DB GO Create Table Test_Table(ID int, Company Varchar(30), Location Varchar(20)) --Step3: Load sample data. USE Test_DB GO Insert into Test_Table values(1,'AnyCompany','India') Insert into Test_Table values(2,'AnyCompany','USA') Insert into Test_Table values(3,'AnyCompany','UK') Insert into Test_Table values(4,'AnyCompany','Hyderabad') Insert into Test_Table values(5,'AnyCompany','Banglore')