

# 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에서 다운로드 및 업로드한 파일은 `D:\S3` 폴더에 저장됩니다. 파일에 액세스하는 데 사용할 수 있는 유일한 폴더입니다. 다운로드하는 동안 대상 폴더를 포함할 때 생성되는 하위 폴더에 파일을 구성할 수 있습니다.

저장 프로시저 중에는 S3 버킷과 파일에 Amazon 리소스 이름(ARN)을 제공해야 하는 것도 있습니다. ARN의 형식은 `arn:aws:s3:::amzn-s3-demo-bucket/file_name`입니다. Amazon S3에서는 ARN에 계정 번호나 AWS 리전을 요구하지 않습니다.

S3 통합 작업은 순차적으로 실행되며 기본 백업 및 복원 작업과 동일한 대기열을 공유합니다. 이 대기열에서는 언제든 최대 두 개의 작업만 진행할 수 있습니다. 작업이 처리를 시작하는 데 최대 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\`라는 폴더를 만듭니다. 그런 다음 이 예제에서는 S3의 원본 파일 `bulk_data.csv`를 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에 생성할 파일의 S3 ARN(예: `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;
```

S3에 파일이 이전에 존재한 경우, @overwrite\$1file 파라미터가 `1`로 설정되어 있으므로 덮어쓰기됩니다.