翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
を使用して 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。

ソースエンドポイントを介してソース Amazon RDS インスタンスに接続する AWS DMS 移行タスク
ソース Amazon RDS インスタンスからデータをコピーする
ターゲットエンドポイントを介してターゲット Amazon S3 バケットに接続する AWS DMS 移行タスク
コピーしたデータをカンマ区切り値 (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 コールで置き換えて、プログラムでシークレットを取得することができます。
その他のツール
Microsoft SQL Server Management Studio (SSMS)
は、SQL Server コンポーネントへのアクセス、設定、管理など、SQL Server を管理するためのツールです。
ベストプラクティス
パフォーマンスをベンチマークして問題を特定する完全な移行の前に、テーブルのサブセットを使用して概念実証を実行します。
ソース Amazon RDS インスタンスの負荷を軽減するために、データベースのピーク時に AWS DMS タスクを実行しないでください。
のベストプラクティス AWS DMSに従います。
エピック
| タスク | 説明 | 必要なスキル |
|---|---|---|
Amazon RDS for SQL Server インスタンスを作成します。 |
| DBA、DevOps エンジニア |
インスタンスの認証情報を設定する。 |
| DBA、DevOps エンジニア |
インスタンスクラス、ストレージ、自動スケーリング、可用性を構成します。 |
| DBA、DevOps エンジニア |
VPC、サブネットグループ、パブリックアクセス、セキュリティグループを指定します。 | 必要に応じて [VPC]、[DB サブネットグループ]、[VPC セキュリティグループ] を選択し、Amazon RDS インスタンスを作成します。次のようなベストプラクティスに従ってください。
| DBA、DevOps エンジニア |
モニタリング、バックアップ、メンテナンスを構成する。 |
| DBA、DevOps エンジニア |
| タスク | 説明 | 必要なスキル |
|---|---|---|
テーブルを作成し、例データをロードします。 | 新しいデータベース内にテーブルを作成します。[追加情報] セクションのサンプルコードを使用して、テーブルにデータをロードします。 | DBA、DevOps エンジニア |
| タスク | 説明 | 必要なスキル |
|---|---|---|
シークレットを作成します。 |
このシークレットはソース AWS DMS エンドポイントに使用されます。 | DBA、DevOps エンジニア |
| タスク | 説明 | 必要なスキル |
|---|---|---|
Amazon RDS にアクセスするための IAM ロールを作成します。 |
| 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 ソースエンドポイントを作成します。 |
| 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 エンジニア |
| タスク | 説明 | 必要なスキル |
|---|---|---|
リソースを削除します。 | 追加コストが発生しないように、コンソールを使用して次の順序でリソースを削除します。
| 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')