

# RDS for SQL Server と Amazon S3 間のファイル転送
<a name="Appendix.SQLServer.Options.S3-integration.using"></a>

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 インスタンスにファイルをダウンロードする
<a name="Appendix.SQLServer.Options.S3-integration.using.download"></a>

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](Appendix.SQLServer.Options.SSIS.md)」を参照してください。  
SQL Server Analysis Services が有効になっている場合、ファイル拡張子が .abf、.asdatabase、.configsettings、.deploymentoptions、.deploymenttargets、.xmla のファイルのダウンロードがサポートされます。SSAS の有効化の詳細については、「[SQL Server Analysis Services](Appendix.SQLServer.Options.SSAS.md)」を参照してください。

以下の例は 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_data` に `D:\S3\` という名前のフォルダを作成します。次に例ではソースファイル `bulk_data.csv` を S3 から DB インスタンスの `data.csv` という名前の新しいファイルにダウンロードします。`@overwrite_file` パラメータが `1` に設定されているため、すでにファイルが存在する場合は上書きされます。

## SQL Server DB インスタンスから Amazon S3 バケットにファイルをアップロードする
<a name="Appendix.SQLServer.Options.S3-integration.using.upload"></a>

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\$1file パラメータが `1` に設定されているため、ファイルが S3 にすでに存在している場合は上書きされます。