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\에 저장됩니다.

다음과 같은 제한이 적용됩니다.

  • 다중 AZ 인스턴스에서 장애 조치 후 D:\S3 폴더의 파일이 예비 복제본에서 삭제됩니다. 자세한 내용은 S3 통합에 대한 다중 AZ 제한 사항 섹션을 참조하세요.

  • DB 인스턴스와 S3 버킷은 같은 AWS 리전에 있어야 합니다.

  • 한 번에 둘 이상의 S3 통합 작업을 실행하는 경우 작업은 병렬이 아닌 순차적으로 실행됩니다.

    참고

    S3 통합 작업은 기본 백업 및 복원 작업과 동일한 대기열을 공유합니다. 이 대기열에서는 언제든 최대 두 개의 작업만 진행할 수 있습니다. 따라서 두 개의 기본 백업 및 복원 작업을 실행하면 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로의 업로드 파일 크기는 파일당 50GB로 제한됩니다.

  • 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 Management Console의 탐색 창에서 정책을 선택합니다.

  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 Management Console의 탐색 창에서 역할을 선택합니다.

  2. 새 IAM 역할을 생성하고 콘솔에 표시되는 다음 옵션을 선택하십시오.

    • AWS 서비스

    • RDS

    • RDS – Add Role to Database(데이터베이스에 역할 추가)

    그런 다음 하단의 다음: 권한을 선택합니다.

  3. Attach permissions policies(권한 정책 연결)에 이전에 생성한 IAM 정책의 이름을 입력하십시오. 그런 다음 목록에서 그 정책을 선택합니다.

  4. 역할 생성을 완료할 때까지 콘솔의 지침을 따르십시오.

    위의 내용은 역할 설정을 위한 약어 형태의 안내서입니다. 역할 생성에 대한 자세한 지침은 IAM 사용 설명서에서 IAM 역할을 참조하세요.

Amazon RDS에 Amazon S3 버킷에 대한 액세스 권한을 부여하려면 다음 프로세스를 사용합니다.

  1. Amazon RDS에 S3 버킷 액세스 권한을 부여하는 IAM 정책을 생성합니다.

  2. Amazon RDS가 S3 버킷에 액세스하기 위해 사용자 대신 가정할 수 있는 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이라는 버킷에 대한 액세스 권한을 부여합니다.

    대상 LinuxmacOS, 또는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 역할을 생성합니다.

    대상 LinuxmacOS, 또는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:SourceArnaws:SourceAccount 전역 조건 컨텍스트 키를 사용하는 것이 좋습니다. 이는 혼동된 대리자 문제를 방지하는 가장 효과적인 방법입니다.

    전역 조건 컨텍스트 키를 모두 사용하고 aws:SourceArn 값에 계정 ID가 포함되도록 할 수 있습니다. 이 경우 aws:SourceAccount 값과 aws:SourceArn 값의 계정이 동일한 정책 문에서 사용될 때 동일한 계정 ID를 사용해야 합니다.

    • 단일 리소스에 대한 교차 서비스 액세스를 원하는 경우 aws:SourceArn을 사용하세요.

    • 해당 계정의 모든 리소스가 교차 서비스 사용과 연결되도록 허용하려는 경우 aws:SourceAccount를 사용하세요.

    정책에서는 역할에 액세스하는 리소스의 전체 Amazon 리소스 이름(ARN)이 포함된 aws:SourceArn 전역 조건 컨텍스트 키를 사용해야 합니다. S3 통합의 경우 다음 예와 같이 DB 인스턴스 ARN을 포함해야 합니다.

    대상 LinuxmacOS, 또는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으로 바꾸세요.

    대상 LinuxmacOS, 또는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 S3와 Amazon RDS for SQL Server의 통합을 활성화하는 방법을 배울 수 있습니다. S3 통합 작업을 위해, S3_INTEGRATION feature-name 파라미터를 사용하기 전에 생성한 IAM 역할과 DB 인스턴스를 연결해야 합니다.

참고

DB 인스턴스에 IAM 역할을 추가하려면 DB 인스턴스 상태가 사용 가능이어야 합니다.

IAM 역할을 DB 인스턴스와 연결하려면
  1. AWS Management Console에 로그인한 후 https://console.aws.amazon.com/rds/에서 Amazon RDS 콘솔을 엽니다.

  2. 세부 정보를 표시하고자 하는 RDS for SQL Server DB 인스턴스 이름을 선택합니다.

  3. Connectivity & security(연결성 및 보안) 탭에 있는 Manage IAM roles(IAM 역할 관리) 섹션의 이 인스턴스에 IAM 역할 추가에서 추가할 IAM 역할을 선택합니다.

  4. 기능에서 S3_INTEGRATION을 선택하십시오.

    S3_INTEGRATION 역할 추가
  5. [Add role]을 선택합니다.

RDS for SQL Server DB 인스턴스에 IAM 역할을 추가하려면
  • 다음 AWS CLI 명령은 mydbinstance라는 RDS for SQL Server DB 인스턴스에 IAM 역할을 추가합니다.

    대상 LinuxmacOS, 또는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에서 다운로드 및 업로드한 파일은 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 인스턴스로 다운로드

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\라는 폴더를 만듭니다. 그런 다음 이 예제에서는 S3의 원본 파일 bulk_data.csv를 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에 생성할 파일의 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_file 파라미터가 1로 설정되어 있으므로 덮어쓰기됩니다.

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 함수를 호출하십시오. 두 가지 파라미터가 필요합니다. 첫 번째 파라미터는 S3 통합에 적용되지 않기 때문에 항상 NULL이어야 합니다. 두 번째 파라미터는 작업 ID를 수락합니다.

모든 작업 목록을 보려면 다음 예와 같이 첫 번째 파라미터를 NULL로, 두 번째 파라미터를 0으로 설정하십시오.

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

특정 작업을 수행하려면 다음 예와 같이 첫 번째 파라미터를 NULL로, 두 번째 파라미터를 작업 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 S3와 Amazon RDS for SQL Server의 통합을 비활성화하는 방법을 배울 수 있습니다. S3 통합을 비활성화해도 D:\S3\의 파일은 삭제되지 않습니다.

참고

DB 인스턴스에서 IAM 역할을 삭제하려면 DB 인스턴스 상태가 available이어야 합니다.

DB 인스턴스에서 IAM 역할 연결을 해제하려면
  1. AWS Management Console에 로그인한 후 https://console.aws.amazon.com/rds/에서 Amazon RDS 콘솔을 엽니다.

  2. 세부 정보를 표시하고자 하는 RDS for SQL Server DB 인스턴스 이름을 선택합니다.

  3. Connectivity & security(연결성 및 보안) 탭에 있는 Manage IAM roles(IAM 역할 관리) 섹션에서 삭제할 IAM 역할을 선택합니다.

  4. Delete(삭제)를 선택합니다.

RDS for SQL Server DB 인스턴스에서 IAM 역할을 제거하려면
  • 다음 AWS CLI 명령은 mydbinstance라는 RDS for SQL Server DB 인스턴스에서 IAM 역할을 삭제합니다.

    대상 LinuxmacOS, 또는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으로 바꿉니다.