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 の開始方法」を参照してください。
S3 統合のマルチ AZ の制限
マルチ AZ インスタンスでは、D:\S3
フォルダ内のファイルはフェイルオーバー後にスタンバイレプリカから削除されます。フェイルオーバーは、例えば、インスタンスクラスの変更やエンジンバージョンのアップグレードなど、DB インスタンスの変更中に計画できます。または、プライマリの停止中にフェイルオーバーが予定外になることがあります。
注記
D:\S3
フォルダをファイルストレージに使用することはお勧めしません。ベストプラクティスは、作成したファイルを Amazon S3 にアップロードして耐久性を保持し、データをインポートする必要があるときにファイルをダウンロードすることです。
最後のフェイルオーバー時間を決定するには、msdb.dbo.rds_failover_time
ストアドプロシージャを使用できます。詳細については、「Amazon RDS for SQL Server の最終フェイルオーバー時間の決定」を参照してください。
例 最近のフェイルオーバーがない例
この例は、エラーログに最近のフェイルオーバーが存在しない場合の出力を示しています。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 |