Amazon RDS for SQL Server DB インスタンスと Amazon S3 の統合 - Amazon Relational Database Service

Amazon RDS for SQL Server DB インスタンスと Amazon S3 の統合

Amazon RDS for SQL Server を実行する DB インスタンスと Amazon S3 バケットの間でファイルを転送できます。これにより、BULK INSERT などの SQL Server 特性で Amazon S3 を使用することができます。例えば、Amazon S3 から .csv、.xml、.txt、その他ファイルを DB インスタンスホストにダウンロードして、D:\S3\ からデータベースにデータをインポートできます。全てのファイルは DB インスタンスの D:\S3\ に保存されます。

以下の制限が適用されます。

  • D:\S3 フォルダ内のファイルは、マルチ AZ インスタンスでのフェイルオーバー後にスタンバイレプリカで削除されます。詳細については、「S3 統合のマルチ AZ の制限」を参照してください。

  • DB インスタンスと S3 バケットが同じ AWS リージョンに存在する必要があります。

  • 一度に複数の S3 統合タスクを実行する場合、タスクは並列ではなく順次に実行されます。

    注記

    S3 統合タスクは、ネイティブバックアップおよび復元タスクと同じキューを共有します。このキューでは、一度に最大2つのタスクまで同時進行させることができます。したがって、実行中の 2 つのネイティブバックアップおよび復元タスクによって S3 統合タスクがブロックされます。

  • S3 統合機能を復元インスタンスで再度有効にする必要があります。S3 統合は元のインスタンスから復元インスタンスに伝搬されることはありません。D:\S3 のファイルは、復元インスタンスで削除されます。

  • DB インスタンスへのダウンロードは、最大 100 ファイルまでです。言い換えれば、D:\S3\ 内には 100 ファイル以上は入れておけません。

  • ファイル拡張子がない、または次のファイル拡張子があるファイルのみがダウンロードできます。.abf、.asdatabase、.bcp、.configsettings、.csv、.dat、.deploymentoptions、.deploymenttargets、.fmt、.info、.ispac、.lst、.tbl、.txt、.xml、および.xmla

  • S3 バケットは、関連の AWS Identity and Access Management (IAM) 役割に関連した同じオーナーである必要があります。したがって、クロスアカウント S3 統合はサポートされていません。

  • S3 バケットは一般に公開できません。

  • RDS から S3 へのアップロードのファイルサイズは、1 ファイルあたり 50 GB に制限されます。

  • S3 から RDS へのダウンロードのファイルサイズは、S3 でサポートされている最大サイズに制限されます。

Amazon S3 でのファイルの操作の詳細については、「Amazon Simple Storage Service の開始方法」を参照してください。

RDS for SQL Server を S3 と統合するための前提条件

開始する前に、使用するS3バケットを選択してください。また、許可を追加してRDS DBインスタンスがS3バケットにアクセスできるようにしてください。このアクセスを設定するには、IAMポリシーとIAMロールの両方を作成します。

Amazon S3にアクセスするための IAM ポリシーを作成します。
  1. IAMマネジメントコンソールのナビゲーションペインで、ポリシー を選択します。

  2. 新しいポリシーを作成し、ビジュアルエディタタブを使用して以下の手順を行ってください。

  3. サービスのため、S3を入力してS3サービスを選択します。

  4. 実行のため,以下を選択してDBインスタンス要件にアクセスできるようにします。

    • ListAllMyBuckets – 必須

    • ListBucket – 必須

    • GetBucketACL – 必須

    • GetBucketLocation – 必須

    • GetObject – S3 から にファイルをダウンロードする際に必須D:\S3\

    • PutObjectD:\S3\ から S3 にファイルをアップロードする際に必須

    • ListMultipartUploadPartsD:\S3\ から S3 にファイルをアップロードする際に必須

    • AbortMultipartUploadD:\S3\ から S3 にファイルをアップロードする際に必須

  5. [リソース] では、表示されるオプションは、前の手順で選択した内容により異なります。[バケット]、[オブジェクト]、またはその両方に対するオプションが表示されます。それぞれ、適切な Amazon リソースネーム (ARN) を加えてください。

    [バケット] は、使用したいバケットに対する ARN を追加します。例えば、バケットの名前が amzn-s3-demo-bucket の場合、ARN を arn:aws:s3:::amzn-s3-demo-bucket に設定します。

    [オブジェクト] は、バケットの ARN を入力してから以下のいずれかを選択します。

    • 特定のバケット内のすべてのファイルへのアクセスを許可するには、[バケット名] および [オブジェクト名] の両方に対して [すべて] を選択してください。

    • バケット内の特定のファイルやフォルダへのアクセスを許可する場合は、SQL Server からのアクセスを希望する特定のバケットやオブジェクトに、ARN を提供します。

  6. ポリシーの作成が完了するまで、コンソール内の指示に従ってください。

    前述の部分は、ポリシーの簡略設定ガイドです。IAM ポリシーを作成する詳細な手順については、IAM ユーザーガイドIAM ポリシーの作成を参照してください。

前の手順からの IAM ポリシーを使用する IAM ロールを作成します。
  1. [IAM 管理コンソール] で、ナビゲーションペインから [ロール] を選択します。

  2. 新しい IAM ロールを作成し、コンソール内に表示された以下のオプションを選択してください。

    • AWS サービス

    • RDS

    • RDS – ロールをデータベースに加える

    次に、下部の [次: 許可] を選択します。

  3. アクセス権限ポリシーをアタッチする で、事前に作成した IAM ポリシーの名前を入力してください。次にリストからポリシーを選択します。

  4. ロールの作成が完了するまで、コンソール内の指示に従ってください。

    前述の部分は、ロールの簡略設定ガイドです。ロールを作成する詳細な手順については、IAM ユーザーガイドIAM ロールを参照してください。

Amazon RDS に Amazon S3 バケットへのアクセスを付与するには、次のプロセスを使用します。

  1. S3 バケットに Amazon RDS アクセスを付与する IAM ポリシーを作成します。

  2. S3 バケットにアクセスするには、お客様に代わって Amazon RDS が引き受けることのできる IAM ロールを作成します。

    詳細については、IAM ユーザーガイドの「IAM ユーザーにアクセス許可を委任するロールの作成」を参照してください。

  3. 作成した IAM ポリシーを、作成した IAM ロールにアタッチします。

IAM ポリシーを作成するには

DB インスタンスが必要とするアクセスを付与するための適切なアクションが含まれるようにしてください。

  • ListAllMyBuckets – 必須

  • ListBucket – 必須

  • GetBucketACL – 必須

  • GetBucketLocation – 必須

  • GetObject – S3 から にファイルをダウンロードする際に必須D:\S3\

  • PutObjectD:\S3\ から S3 にファイルをアップロードする際に必須

  • ListMultipartUploadPartsD:\S3\ から S3 にファイルをアップロードする際に必須

  • AbortMultipartUploadD:\S3\ から S3 にファイルをアップロードする際に必須

  1. 以下の AWS CLI コマンドでは、これらのオプションを指定して、rds-s3-integration-policy という名前の IAM ポリシーを作成します。amzn-s3-demo-bucket という名前のバケットへのアクセスを許可します。

    Linux、macOS、Unix の場合:

    aws iam create-policy \ --policy-name rds-s3-integration-policy \ --policy-document '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:ListAllMyBuckets", "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetBucketACL", "s3:GetBucketLocation" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket" }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:ListMultipartUploadParts", "s3:AbortMultipartUpload" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/key_prefix/*" } ] }'

    Windows の場合:

    インターフェイスでサポートされた改行コードに、必ず変更してください (^ではなく\)。また Windows では、すべてのダブルクオテーションを \ にエスケープしてください。JSON のクオーツをエスケープしなくても済むようにするには、代わりにファイルに保存し、パラメータとしてパスします。

    最初に、以下の許可ポリシーで policy.json ファイルを作成してください。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:ListAllMyBuckets", "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetBucketACL", "s3:GetBucketLocation" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket" }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:ListMultipartUploadParts", "s3:AbortMultipartUpload" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/key_prefix/*" } ] }

    次のコマンドを使用してポリシーを作成します。

    aws iam create-policy ^ --policy-name rds-s3-integration-policy ^ --policy-document file://file_path/assume_role_policy.json
  2. ポリシーが作成されたら、そのポリシーの Amazon リソースネーム (ARN) を書き留めます。この ARN は、後のステップで必要になります。

IAM ロールを作成するには
  • 次の AWS CLI コマンドでは、この目的で rds-s3-integration-role IAM ロールを作成します。

    Linux、macOS、Unix の場合:

    aws iam create-role \ --role-name rds-s3-integration-role \ --assume-role-policy-document '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "rds.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }'

    Windows の場合:

    インターフェイスでサポートされた改行コードに、必ず変更してください (^ではなく\)。また Windows では、すべてのダブルクオテーションを \ にエスケープしてください。JSON のクオーツをエスケープしなくても済むようにするには、代わりにファイルに保存し、パラメータとしてパスします。

    最初に、次のポリシーで、assume_role_policy.json ファイルを作成します。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "rds.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }

    次に、以下のコマンドを使用して IAM ロールを作成します。

    aws iam create-role ^ --role-name rds-s3-integration-role ^ --assume-role-policy-document file://file_path/assume_role_policy.json
    例 グローバル条件コンテキストキーを使用した IAM ロールの作成

    リソースポリシー内では aws:SourceArn および aws:SourceAccount のグローバル条件コンテキストキーを使用して、サービスに付与するリソースへのアクセス許可を制限することをお勧めします。これは、混乱した使節の問題に対する最も効果的な保護方法です。

    両方のグローバル条件コンテキストキーを使用し、aws:SourceArn 値にアカウント ID を含めます。この場合、同じポリシーステートメントで使用する際に、aws:SourceAccount 値と aws:SourceArn 値のアカウントで同じアカウント ID を使用する必要があります。

    • 単一リソースに対するクロスサービスアクセスが必要な場合は aws:SourceArn を使用します。

    • そのアカウント内の任意のリソースをクロスサービス使用に関連付けることを許可する場合、aws:SourceAccountを使用します。

    ポリシーでは、ロールにアクセスするリソースの完全な ARN を持つ aws:SourceArn グローバル条件コンテキストキーを必ず使用してください。S3 統合の場合、次の例に示すように DB インスタンスの ARN を必ず含めてください。

    Linux、macOS、Unix の場合:

    aws iam create-role \ --role-name rds-s3-integration-role \ --assume-role-policy-document '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "rds.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceArn":"arn:aws:rds:Region:my_account_ID:db:db_instance_identifier" } } } ] }'

    Windows の場合:

    assume_role_policy.json にグローバル条件コンテキストキーを追加します。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "rds.amazonaws.com" ] }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceArn":"arn:aws:rds:Region:my_account_ID:db:db_instance_identifier" } } } ] }
IAM ポリシーを IAM ロールにアタッチするには
  • 以下の AWS CLI コマンドでは、rds-s3-integration-role という名前のロールにこのポリシーをアタッチします。your-policy-arn を、以前のステップで書き留めたポリシー ARN に置き換えます。

    Linux、macOS、Unix の場合:

    aws iam attach-role-policy \ --policy-arn your-policy-arn \ --role-name rds-s3-integration-role

    Windows の場合:

    aws iam attach-role-policy ^ --policy-arn your-policy-arn ^ --role-name rds-s3-integration-role

RDS for SQL Server と S3 の統合を有効にする

このセクションでは、Amazon RDS for SQL Server と Amazon S3 の統合を有効にする方法を確認できます。S3 統合を行うには、S3_INTEGRATION FeatureName パラメータを使用する前に、事前に作成した IAM ロールに DB インスタンスが関連付けられていなければなりません。

注記

IAM ロールを DB インスタンスに追加するには、DB インスタンスのステータスが [有効] である必要があります。

IAM ロールを DB インスタンスに関連付けるには
  1. AWS Management Console にサインインし、Amazon RDS コンソール (https://console.aws.amazon.com/rds/) を開きます。

  2. RDS for SQL Server DB インスタンスの名前を選択して詳細を表示します。

  3. [接続とセキュリティ] タブの [IAM ロールの管理] セクションで、[このインスタンスに IAM ロールを追加] で追加する IAM ロールを選択します。

  4. [機能] で、[S3_INTEGRATION] を選択します。

    S3_INTEGRATION ロールを追加する
  5. [Add role] を選択します。

IAM ロールを RDS for SQL Server DB インスタンスに追加するには
  • 以下の AWS CLI コマンドは、IAM ロールを mydbinstance と名前の付いた RDS for SQL Server DB インスタンスに追加します。

    Linux、macOS、Unix の場合:

    aws rds add-role-to-db-instance \ --db-instance-identifier mydbinstance \ --feature-name S3_INTEGRATION \ --role-arn your-role-arn

    Windows の場合:

    aws rds add-role-to-db-instance ^ --db-instance-identifier mydbinstance ^ --feature-name S3_INTEGRATION ^ --role-arn your-role-arn

    your-role-arn を、以前のステップで書き留めたロール ARN に置き換えます。S3_INTEGRATION オプションには --feature-name が指定されている必要があります。

RDS for SQL Server と Amazon S3 間のファイル転送

Amazon RDS ストアドプロシージャを使用して、Amazon S3 と RDS DB インスタンス間でファイルのダウンロードおよびアップロードを行います。また、Amazon RDS ストアドプロシージャを使用して、RDS インスタンスのファイルを記入および削除することができます。

S3 からダウンロードまたは S3 へアップロードするファイルは、D:\S3 フォルダに保存します。このフォルダは、ファイルにアクセスする際に使用できる唯一のフォルダとなります。ダウンロード時に対象フォルダを設定する際に作成したサブフォルダ内でファイルを構成することができます。

ストアドプロシージャによっては、Amazon Resource Name (ARN) を S3 バケットおよびファイルに指定する必要があります。ARN の形式は arn:aws:s3:::amzn-s3-demo-bucket/file_name です。Amazon S3 には、ARN のアカウント番号または AWS リージョンは不要です。

S3 統合タスクは順次実行され、同じキューをネイティブバックアップとして共有し、タスクの復元を行います。このキューでは、一度に最大2つのタスクまで同時進行させることができます。タスクが処理を開始するまでに、最大 5 分かかります。

Amazon S3 バケットから SQL Server DB インスタンスにファイルをダウンロードする

S3 バケットから RDS for SQL Server DB インスタンスにファイルをダウンロードするには、Amazon RDS ストアドプロシージャ msdb.dbo.rds_download_from_s3 を使用してください。

パラメータ名 データ型 デフォルト 必須 説明

@s3_arn_of_file

NVARCHAR

必須

ダウンロードするファイルの S3 ARN 例: arn:aws:s3:::amzn-s3-demo-bucket/mydata.csv

@rds_file_path

NVARCHAR

オプション

RDS インスタンスのファイルパス。指定されなかった場合、ファイルパスは D:\S3\<filename in s3> です。RDS は、絶対パスと相対パスをサポートしています。サブフォルダを作成したい場合、ファイルパス内に含めます。

@overwrite_file

INT

0

オプション

既存のファイルを上書きしてください。

0 = 上書きしないでください

1 = 上書きしてください

ファイル拡張子のないファイルと、ファイル拡張子が .bcp、.csv、.dat、.fmt、.info、.lst、.tbl、.txt、.xml のファイルをダウンロードできます。

注記

SQL Server Integration Services が有効になっている場合、ファイル拡張子が .ispac のファイルのダウンロードがサポートされます。SSIS の有効化の詳細については、「SQL Server Integration Services」を参照してください。

SQL Server Analysis Services が有効になっている場合、ファイル拡張子が .abf、.asdatabase、.configsettings、.deploymentoptions、.deploymenttargets、.xmla のファイルのダウンロードがサポートされます。SSAS の有効化の詳細については、「SQL Server Analysis Services」を参照してください。

以下の例は S3 からファイルをダウンロードするためのストアドプロシージャを表します。

exec msdb.dbo.rds_download_from_s3 @s3_arn_of_file='arn:aws:s3:::amzn-s3-demo-bucket/bulk_data.csv', @rds_file_path='D:\S3\seed_data\data.csv', @overwrite_file=1;

rds_download_from_s3 の操作は、フォルダがまだない場合、seed_dataD:\S3\ という名前のフォルダを作成します。次に例ではソースファイル bulk_data.csv を S3 から DB インスタンスの data.csv という名前の新しいファイルにダウンロードします。@overwrite_file パラメータが 1 に設定されているため、すでにファイルが存在する場合は上書きされます。

SQL Server DB インスタンスから Amazon S3 バケットにファイルをアップロードする

RDS for SQL Server DB インスタンスから S3 バケットにファイルをアップロードするには、Amazon RDS ストアドプロシージャ msdb.dbo.rds_upload_to_s3 を以下のパラメータで使用してください。

パラメータ名 データ型 デフォルト 必須 説明

@s3_arn_of_file

NVARCHAR

必須

ファイルの S3 ARN が S3 内で作成されます (例: arn:aws:s3:::amzn-s3-demo-bucket/mydata.csv)。

@rds_file_path

NVARCHAR

必須

S3 にアップロードするファイルのファイルパス。絶対パスと相対パスの両方をサポートしています。

@overwrite_file

INT

オプション

既存のファイルを上書きしてください。

0 = 上書きしないでください

1 = 上書きしてください

以下の例では、data.csv という名前のファイルを D:\S3\seed_data\ 内の指定の場所から、ARN が指定する S3 バケットに、ファイル new_data.csv をアップロードします。

exec msdb.dbo.rds_upload_to_s3 @rds_file_path='D:\S3\seed_data\data.csv', @s3_arn_of_file='arn:aws:s3:::amzn-s3-demo-bucket/new_data.csv', @overwrite_file=1;

@overwrite_file パラメータが 1 に設定されているため、ファイルが S3 にすでに存在している場合は上書きされます。

RDS DB インスタンスでのファイル一覧表示

DB インスタンスで使用可能なファイルをリスト表示するには、ストアドプロシージャと機能の両方を使用します。最初に、以下のストアドプロシージャを実行して D:\S3\ 内のファイルから詳細を集めます。

exec msdb.dbo.rds_gather_file_details;

ストアドプロシージャは、タスクの ID を返します。保管のタスクと同様、ストアドプロシージャも同期せずに実行されます。タスクのステータスが SUCCESS になるとすぐに、rds_fn_list_file_details 機能のタスク ID を使用して、 D:\S3\ 内の既存のファイルやディレクトリのリスト表示ができます。以下を参照してください。

SELECT * FROM msdb.dbo.rds_fn_list_file_details(TASK_ID);

rds_fn_list_file_details 機能は、次の列があるテーブルを返します。

出力パラメータ 説明
filepath ファイルの絶対パス (例: D:\S3\mydata.csv)
size_in_bytes ファイルサイズ (バイト単位)
last_modified_utc UTC 形式での最終変更を行った日時
is_directory アイテムがディレクトリ (true/false) かどうかを表示するオプション

RDS DB インスタンスでのファイル削除

DB インスタンスで使用可能なファイルを削除するには、Amazon RDS ストアドプロシージャ msdb.dbo.rds_delete_from_filesystem を以下のパラメータで使用します。

パラメータ名 データ型 デフォルト 必須 説明

@rds_file_path

NVARCHAR

必須

削除するファイルのファイルパス。絶対パスと相対パスの両方をサポートしています。

@force_delete

INT

0

オプション

ディレクトリを削除するには、このフラグが 1 に含まれ設定されている必要があります。

1 = ディレクトリを削除する

ファイルを削除する場合、このパラメータは無視されます。

ディレクトリを削除するには、@rds_file_path がバックスラッシュ (\) で終了し、@force_delete1 に設定される必要があります。

次の例では、ファイル D:\S3\delete_me.txt が削除されます。

exec msdb.dbo.rds_delete_from_filesystem @rds_file_path='D:\S3\delete_me.txt';

次の例では、ディレクトリ D:\S3\example_folder\ が削除されます。

exec msdb.dbo.rds_delete_from_filesystem @rds_file_path='D:\S3\example_folder\', @force_delete=1;

ファイル転送タスクのステータスをモニタリングする

S3 統合タスクのステータスを追跡するには、rds_fn_task_status 機能を呼び出してください。2 つのパラメータを使用します。1 つめのパラメータは常に NULL を選択してください。これは、S3 統合に適用されないためです。2 つめのパラメータは、タスク ID を受け入れます。

全タスクのリストを見るには、以下の例にあるように、初期のパラメータを NULL に設定し、2 つめのパラメータを 0 に設定します。

SELECT * FROM msdb.dbo.rds_fn_task_status(NULL,0);

特定のタスクを受け取るには、以下の例にあるように、初期のパラメータを NULL に設定し、2 つめのパラメータをタスク ID に設定します。

SELECT * FROM msdb.dbo.rds_fn_task_status(NULL,42);

rds_fn_task_status 機能は次の情報を返します。

出力パラメータ

説明

task_id

タスクの ID。

task_type

S3 統合では、タスクには以下のタスクタイプがあります。

  • DOWNLOAD_FROM_S3

  • UPLOAD_TO_S3

  • LIST_FILES_ON_DISK

  • DELETE_FILES_ON_DISK

database_name

S3 統合タスクには適用できません。

% complete

タスクの進行状況の割合。

duration(mins)

タスクにかかった時間 (分単位)。

lifecycle

タスクのステータス。有効な状態には以下のものがあります。

  • CREATED – S3 統合ストアドプロシージャを呼び出すと、タスクが作成され、ステータスが に設定されます。CREATED

  • IN_PROGRESS – タスクが開始すると、ステータスが に設定されます。IN_PROGRESSステータスが CREATED から IN_PROGRESS に変わるまで、最大 5 分かかることがあります。

  • SUCCESS - タスクが完了すると、ステータスが に設定されます。SUCCESS

  • ERROR - タスクが失敗すると、ステータスが に設定されます。ERRORエラーの詳細については、task_info 列を参照してください。

  • CANCEL_REQUESTED - rds_cancel_task を呼び出すと、タスクのステータスが CANCEL_REQUESTED になります。

  • CANCELLED - タスクが正常にキャンセルされると、タスクのステータスが に設定されます。CANCELLED

task_info

タスクに関する追加情報。処理中にエラーが発生した場合、この列にエラーに関する情報が含まれます。

last_updated

タスクのステータスが最後に更新された日時。

created_at

タスクが作成された日時。

S3_object_arn

S3 オブジェクトの ARN はダウンロードまたはアップロードされます。

overwrite_S3_backup_file

S3 統合タスクには適用できません。

KMS_master_key_arn

S3 統合タスクには適用できません。

filepath

RDS DB インスタンスのファイルパス。

overwrite_file

既存のファイルが上書きされるかどうかを表示するオプション

task_metadata

S3 統合タスクには適用できません。

タスクのキャンセル

S3 統合タスクをキャンセルするには、msdb.dbo.rds_cancel_task パラメータで task_id ストアドプロシージャを使用します。進行中の削除およびリスト作成タスクは、キャンセルできません。以下の例は、タスクをキャンセルするリクエストを示します。

exec msdb.dbo.rds_cancel_task @task_id = 1234;

すべてのタスクとそのタスク ID の概要を表示するには、 rds_fn_task_status に記載のように ファイル転送タスクのステータスをモニタリングする 機能を使用してください。

S3 統合のマルチ AZ の制限

マルチ AZ インスタンスでは、D:\S3 フォルダ内のファイルはフェイルオーバー後にスタンバイレプリカから削除されます。フェイルオーバーは、例えば、インスタンスクラスの変更やエンジンバージョンのアップグレードなど、DB インスタンスの変更中に計画できます。または、プライマリの停止中にフェイルオーバーが予定外になることがあります。

注記

D:\S3 フォルダをファイルストレージに使用することはお勧めしません。ベストプラクティスは、作成したファイルを Amazon S3 にアップロードして耐久性を保持し、データをインポートする必要があるときにファイルをダウンロードすることです。

最後のフェイルオーバー時間を決定するには、msdb.dbo.rds_failover_time ストアドプロシージャを使用できます。詳細については、「最後のフェイルオーバー時間の確認」を参照してください。

例 最近のフェイルオーバーがない例

この例は、エラーログに最近のフェイルオーバーが存在しない場合の出力を示しています。2020-04-29 23:59:00.01 以降、フェイルオーバーは発生していません。

したがって、rds_delete_from_filesystem ストアドプロシージャを使用して削除されていない、その時間の後にダウンロードされたすべてのファイルは、現在のホストで引き続きアクセスできます。それ以前にダウンロードされたファイルも利用可能になる場合があります。

errorlog_available_from recent_failover_time

2020-04-29 23:59:00.0100000

null

例 最近のフェイルオーバーの

この例は、エラーログにフェイルオーバーが存在する場合の出力を示しています。最新のフェイルオーバーは、2020-05-05 18:57:51.89 に発生しています。

rds_delete_from_filesystem ストアドプロシージャを使用して削除されていない、その時間以降にダウンロードされたすべてのファイルは、現在のホストで引き続きアクセスできます。

errorlog_available_from recent_failover_time

2020-04-29 23:59:00.0100000

2020-05-05 18:57:51.8900000

RDS for SQL Server と S3 の統合を無効にする

ここでは、Amazon RDS for SQL Server と Amazon S3 の統合を無効にする方法について説明します。S3 統合を無効化するときは、D:\S3\ のファイルは削除されません。

注記

IAM ロールを DB インスタンスから削除するには、DB インスタンスのステータスが available である必要があります。

IAM ロールと DB インスタンスの関連を外す
  1. AWS Management Console にサインインし、Amazon RDS コンソール (https://console.aws.amazon.com/rds/) を開きます。

  2. RDS for SQL Server DB インスタンスの名前を選択して詳細を表示します。

  3. [接続とセキュリティ] タブの [IAM ロールの管理] セクションで、削除する IAM ロールを選択します。

  4. [削除] を選択します。

IAM ロールを RDS for SQL Server DB インスタンスから削除するには
  • 以下の AWS CLI コマンドが、IAM ロールを mydbinstance と名前の付いたRDS for SQL Server DB インスタンスから削除します。

    Linux、macOS、Unix の場合:

    aws rds remove-role-from-db-instance \ --db-instance-identifier mydbinstance \ --feature-name S3_INTEGRATION \ --role-arn your-role-arn

    Windows の場合:

    aws rds remove-role-from-db-instance ^ --db-instance-identifier mydbinstance ^ --feature-name S3_INTEGRATION ^ --role-arn your-role-arn

    your-role-arn を、--feature-name オプションにとって適した IAM ロール ARN に交換します。