Azure Data Factory 또는 Azure Synapse Analytics를 사용하여 Amazon RDS for SQL Server에서 데이터 복사

이 문서에서는 Azure Data Factory 및 Azure Synapse 파이프라인의 복사 작업을 사용하여 Amazon RDS for SQL Server 데이터베이스의 데이터를 복사하는 방법을 간략하게 설명합니다. 자세한 내용은 Azure Data Factory 또는 Azure Synapse Analytics의 소개 문서를 참조하세요.

지원되는 기능

이 Amazon RDS for SQL Server 커넥터에서 지원하는 기능은 다음과 같습니다.

지원되는 기능 IR
복사 작업(원본/-) ① ②
조회 작업 ① ②
GetMetadata 작업 ① ②
저장 프로시저 작업 ① ②

① Azure 통합 런타임 ② 자체 호스팅 통합 런타임

복사 작업의 원본 또는 싱크로 지원되는 데이터 저장소 목록은 지원되는 데이터 저장소 표를 참조하세요.

특히 이 Amazon RDS for SQL Server 커넥터는 다음을 지원합니다.

  • SQL Server 버전 2005 이상
  • SQL 또는 Windows 인증을 사용한 데이터 복사
  • SQL 쿼리 또는 저장 프로시저를 사용하여 데이터 검색(원본). Amazon RDS for SQL Server 원본에서 병렬 복사를 선택할 수도 있습니다. 자세한 내용은 SQL 데이터베이스에서 병렬 복사 섹션을 참조하세요.

SQL Server Express LocalDB는 지원되지 않습니다.

필수 조건

데이터 저장소가 온-프레미스 네트워크, Azure 가상 네트워크 또는 Amazon Virtual Private Cloud 내에 있는 경우 자체 호스팅된 통합 런타임을 구성하여 연결해야 합니다.

데이터 저장소가 관리형 클라우드 데이터 서비스인 경우 Azure Integration Runtime을 사용할 수 있습니다. 액세스가 방화벽 규칙에서 승인된 IP로 제한되는 경우 허용 목록에 Azure Integration Runtime IP를 추가할 수 있습니다.

또한 Azure Data Factory의 관리형 가상 네트워크 통합 런타임 기능을 사용하면 자체 호스팅 통합 런타임을 설치하고 구성하지 않고도 온-프레미스 네트워크에 액세스할 수 있습니다.

Data Factory에서 지원하는 네트워크 보안 메커니즘 및 옵션에 대한 자세한 내용은 데이터 액세스 전략을 참조하세요.

시작하기

파이프라인에 복사 작업을 수행하려면 다음 도구 또는 SDK 중 하나를 사용하면 됩니다.

UI를 사용하여 Amazon RDS for SQL Server 연결된 서비스 만들기

다음 단계를 사용하여 Azure Portal UI에서 Amazon RDS for SQL Server 연결된 서비스를 만듭니다.

  1. Azure Data Factory 또는 Synapse 작업 영역에서 관리 탭으로 이동하여 연결된 서비스를 선택하고 새로 만들기를 클릭합니다.

  2. Amazon RDS for SQL Server를 검색하고 Amazon RDS for SQL Server 커넥터를 선택합니다.

    Amazon RDS for SQL Server 커넥터의 스크린샷

  3. 서비스 세부 정보를 구성하고, 연결을 테스트하고, 새로운 연결된 서비스를 만듭니다.

    Amazon RDS for SQL Server 연결된 서비스 구성 스크린샷

커넥터 구성 세부 정보

다음 섹션에서는 Amazon RDS for SQL Server 데이터베이스 커넥터와 관련된 Data Factory 및 Synapse 파이프라인 엔터티를 정의하는 데 사용되는 속성에 대해 자세히 설명합니다.

연결된 서비스 속성

Amazon RDS for SQL Server 연결된 서비스에 지원되는 속성은 다음과 같습니다.

속성 설명 필수
type 형식 속성은 AmazonRdsForSqlServer로 설정되어야 합니다.
connectionString SQL 인증 또는 Windows 인증을 사용하여 Amazon RDS for SQL Server 데이터베이스에 연결하는 데 필요한 connectionString 정보를 지정합니다. 다음 샘플을 참조하세요.
암호를 Azure Key Vault에 입력할 수도 있습니다. SQL 인증인 경우 연결 문자열에서 password 구성을 끌어올 수도 있습니다. 자세한 내용은 표 뒤에 나오는 JSON 예제 및 Azure Key Vault에 자격 증명 저장을 참조하세요.
userName Windows 인증을 사용하는 경우 사용자 이름을 지정합니다. domainname\username을 예로 들 수 있습니다. 아니요
password 사용자 이름으로 지정한 사용자 계정에 대한 암호를 지정합니다. 이 필드를 SecureString으로 표시하여 안전하게 저장합니다. 또는 Azure Key Vault에 저장된 비밀을 참조할 수 있습니다. 아니요
alwaysEncryptedSettings 관리 ID 또는 서비스 주체를 사용하여 Amazon RDS for SQL Server에 저장된 중요한 데이터를 보호하기 위해 Always Encrypted를 사용하도록 설정하는 데 필요한 alwaysencryptedsettings 정보를 지정합니다. 자세한 내용은 표 다음에 나오는 JSON 예제와 Always Encrypted 사용 섹션을 참조하세요. 지정하지 않으면 기본 Always Encrypted 설정이 사용하도록 설정되지 않습니다. 아니요
connectVia Integration Runtime은 데이터 저장소에 연결하는 데 사용됩니다. 필수 구성 요소 섹션에서 자세히 알아보세요. 지정하지 않으면 기본 Azure 통합 런타임이 사용됩니다. 아니요

참고 항목

Amazon RDS for SQL Server Always Encrypted는 데이터 흐름에서 지원되지 않습니다.

"UserErrorFailedToConnectToSqlServer" 오류 코드 및 "데이터베이스에 대한 세션 제한이 XXX이고 이에 도달했습니다."와 같은 메시지가 있는 오류가 발생하면 Pooling=false를 연결 문자열에 추가하고 다시 시도하세요.

예제 1: SQL 인증 사용

{
    "name": "AmazonSqlLinkedService",
    "properties": {
        "type": "AmazonRdsForSqlServer",
        "typeProperties": {
            "connectionString": "Data Source=<servername>\\<instance name if using named instance>;Initial Catalog=<databasename>;Integrated Security=False;User ID=<username>;Password=<password>;"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

예제 2: Azure Key Vault의 암호를 통한 SQL 인증 사용

{
    "name": "AmazonSqlLinkedService",
    "properties": {
        "type": "AmazonRdsForSqlServer",
        "typeProperties": {
            "connectionString": "Data Source=<servername>\\<instance name if using named instance>;Initial Catalog=<databasename>;Integrated Security=False;User ID=<username>;",
            "password": { 
                "type": "AzureKeyVaultSecret", 
                "store": { 
                    "referenceName": "<Azure Key Vault linked service name>", 
                    "type": "LinkedServiceReference" 
                }, 
                "secretName": "<secretName>" 
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

예제 3: Windows 인증 사용

{
    "name": "AmazonSqlLinkedService",
    "properties": {
        "type": "AmazonRdsForSqlServer",
        "typeProperties": {
            "connectionString": "Data Source=<servername>\\<instance name if using named instance>;Initial Catalog=<databasename>;Integrated Security=True;",
            "userName": "<domain\\username>",
            "password": {
                "type": "SecureString",
                "value": "<password>"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

예제 4: Always Encrypted 사용

{
    "name": "AmazonSqlLinkedService",
    "properties": {
        "type": "AmazonRdsForSqlServer",
        "typeProperties": {
            "connectionString": "Data Source=<servername>\\<instance name if using named instance>;Initial Catalog=<databasename>;Integrated Security=False;User ID=<username>;Password=<password>;"
        },
        "alwaysEncryptedSettings": {
            "alwaysEncryptedAkvAuthType": "ServicePrincipal",
            "servicePrincipalId": "<service principal id>",
            "servicePrincipalKey": {
                "type": "SecureString",
                "value": "<service principal key>"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

데이터 세트 속성

데이터 세트 정의에 사용할 수 있는 섹션 및 속성의 전체 목록은 데이터 세트 문서를 참조하세요. 이 섹션에서는 Amazon RDS for SQL Server 데이터 세트에서 지원하는 속성 목록을 제공합니다.

Amazon RDS for SQL Server 데이터베이스에서 데이터를 복사하기 위해 다음 속성이 지원됩니다.

속성 설명 필수
type 데이터 세트의 type 속성을 AmazonRdsForSqlServerTable로 설정해야 합니다.
schema(스키마) 스키마의 이름입니다. 아니요
table 테이블/뷰의 이름입니다. 아니요
tableName 스키마가 포함된 테이블/뷰의 이름입니다. 이 속성은 이전 버전과의 호환성을 위해 지원됩니다. 새 워크로드의 경우 schematable을 사용합니다. 아니요

예제

{
    "name": "AmazonRdsForSQLServerDataset",
    "properties":
    {
        "type": "AmazonRdsForSqlServerTable",
        "linkedServiceName": {
            "referenceName": "<Amazon RDS for SQL Server linked service name>",
            "type": "LinkedServiceReference"
        },
        "schema": [ < physical schema, optional, retrievable during authoring > ],
        "typeProperties": {
            "schema": "<schema_name>",
            "table": "<table_name>"
        }
    }
}

복사 작업 속성

작업 정의에 사용할 수 있는 섹션 및 속성의 전체 목록은 파이프라인 문서를 참조하세요. 이 섹션에서는 Amazon RDS for SQL Server 원본에서 지원하는 속성 목록을 제공합니다.

원본인 Amazon RDS for SQL Server

데이터 분할을 사용하여 Amazon RDS for SQL Server에서 데이터를 효율적으로 로드하려면 SQL Database에서 병렬 복사에서 자세히 알아보세요.

Amazon RDS for SQL Server에서 데이터를 복사하려면 복사 작업의 원본 형식을 AmazonRdsForSqlServerSource로 설정합니다. 복사 작업 source 섹션에서 다음 속성이 지원됩니다.

속성 설명 필수
type 복사 작업 원본의 type 속성은 AmazonRdsForSqlServerSource로 설정해야 합니다.
SqlReaderQuery 사용자 지정 SQL 쿼리를 사용하여 데이터를 읽습니다. 예제는 select * from MyTable입니다. 아니요
sqlReaderStoredProcedureName 이 속성은 원본 테이블에서 데이터를 읽는 저장 프로시저의 이름입니다. 마지막 SQL 문은 저장 프로시저의 SELECT 문이어야 합니다. 아니요
storedProcedureParameters 저장 프로시저용 매개 변수입니다.
허용되는 값은 이름 또는 값 쌍입니다. 매개 변수의 이름 및 대/소문자는 저장 프로시저 매개 변수의 이름 및 대/소문자와 일치해야 합니다.
아니요
isolationLevel SQL 원본에 대한 트랜잭션 잠금 동작을 지정합니다. 허용되는 ReadCommitted, ReadUncommitted, RepeatableRead, Serializable, Snapshot입니다. 지정하지 않으면 데이터베이스의 기본 격리 수준이 사용됩니다. 자세한 내용은 이 문서를 참조하세요. 아니요
partitionOptions Amazon RDS for SQL Server에서 데이터를 로드하는 데 사용되는 데이터 분할 옵션을 지정합니다.
허용되는 값은 None(기본값), PhysicalPartitionsOfTableDynamicRange입니다.
파티션 옵션을 사용하도록 설정하는 경우(즉, None이 아님) Amazon RDS for SQL Server에서 데이터를 동시에 로드하는 병렬 처리 수준은 복사 작업의 parallelCopies 설정으로 제어됩니다.
아니요
partitionSettings 데이터 분할에 대한 설정 그룹을 지정합니다.
파티션 옵션이 None이 아닌 경우 적용됩니다.
아니요
partitionSettings에서:
partitionColumnName 병렬 복사를 위해 범위 분할에서 사용할 원본 열의 이름을 정수 또는 날짜/날짜/시간 형식(int, smallint, bigint, date, smalldatetime, datetime, datetime2 또는 datetimeoffset)으로 지정합니다. 지정하지 않으면 테이블의 인덱스 또는 기본 키가 자동으로 검색되어 파티션 열로 사용됩니다.
파티션 옵션이 DynamicRange인 경우에 적용됩니다. 쿼리를 사용하여 원본 데이터를 검색하는 경우 WHERE 절에서 ?DfDynamicRangePartitionCondition 를 후크합니다. 예제는 SQL 데이터베이스에서 병렬 복사 섹션을 참조하세요.
아니요
partitionUpperBound 파티션 범위 분할에 대한 파티션 열의 최댓값입니다. 이 값은 테이블의 행을 필터링하는 것이 아니라 파티션 진행 속도를 결정하는 데 사용됩니다. 테이블 또는 쿼리 결과의 모든 행이 분할되고 복사됩니다. 지정하지 않으면 복사 작업에서 값을 자동으로 검색합니다.
파티션 옵션이 DynamicRange인 경우에 적용됩니다. 예제는 SQL 데이터베이스에서 병렬 복사 섹션을 참조하세요.
아니요
partitionLowerBound 파티션 범위 분할에 대한 파티션 열의 최솟값입니다. 이 값은 테이블의 행을 필터링하는 것이 아니라 파티션 진행 속도를 결정하는 데 사용됩니다. 테이블 또는 쿼리 결과의 모든 행이 분할되고 복사됩니다. 지정하지 않으면 복사 작업에서 값을 자동으로 검색합니다.
파티션 옵션이 DynamicRange인 경우에 적용됩니다. 예제는 SQL 데이터베이스에서 병렬 복사 섹션을 참조하세요.
아니요

주의 사항:

  • AmazonRdsForSqlServerSource에 대해 sqlReaderQuery가 지정되면 복사 작업에서 Amazon RDS for SQL Server 원본에 대해 이 쿼리를 실행하여 데이터를 가져옵니다. 저장 프로시저가 매개 변수를 사용하는 경우에는 sqlReaderStoredProcedureNamestoredProcedureParameters를 지정하여 저장 프로시저를 지정할 수도 있습니다.
  • 원본에서 저장 프로시저를 사용하여 데이터를 검색하는 경우 다른 매개 변수 값이 전달될 때 저장 프로시저에서 다른 스키마를 반환하도록 설계되면 UI에서 스키마를 가져오거나 자동 테이블 만들기를 사용하여 데이터를 SQL 데이터베이스에 복사할 때 예기치 않은 결과가 발생할 수 있습니다.

예제: SQL 쿼리 사용

"activities":[
    {
        "name": "CopyFromAmazonRdsForSQLServer",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<Amazon RDS for SQL Server input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "AmazonRdsForSqlServerSource",
                "sqlReaderQuery": "SELECT * FROM MyTable"
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

예제: 저장 프로시저 사용

"activities":[
    {
        "name": "CopyFromAmazonRdsForSQLServer",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<Amazon RDS for SQL Server input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "AmazonRdsForSqlServerSource",
                "sqlReaderStoredProcedureName": "CopyTestSrcStoredProcedureWithParameters",
                "storedProcedureParameters": {
                    "stringData": { "value": "str3" },
                    "identifier": { "value": "$$Text.Format('{0:yyyy}', <datetime parameter>)", "type": "Int"}
                }
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

저장 프로시저 정의

CREATE PROCEDURE CopyTestSrcStoredProcedureWithParameters
(
    @stringData varchar(20),
    @identifier int
)
AS
SET NOCOUNT ON;
BEGIN
    select *
    from dbo.UnitTestSrcTable
    where dbo.UnitTestSrcTable.stringData != stringData
    and dbo.UnitTestSrcTable.identifier != identifier
END
GO

SQL 데이터베이스에서 병렬 복사

복사 작업의 Amazon RDS for SQL Server 커넥터는 데이터를 병렬로 복사하는 기본 제공 데이터 분할을 제공합니다. 복사 작업의 원본 탭에서 데이터 분할 옵션을 찾을 수 있습니다.

파티션 옵션의 스크린샷

분할된 복사본을 사용하도록 설정하면 복사 작업에서 Amazon RDS for SQL Server 원본에 대해 병렬 쿼리를 실행하여 파티션별로 데이터를 로드합니다. 병렬 수준은 복사 작업의 parallelCopies 설정에 의해 제어됩니다. 예를 들어 parallelCopies의 값을 4로 설정하면 서비스는 지정된 파티션 옵션과 설정에 따라 4개의 쿼리를 동시에 생성하고 실행하며, 각 쿼리는 Amazon RDS for SQL Server에서 데이터의 일부를 검색합니다.

특히 Amazon RDS for SQL Server에서 대량의 데이터를 로드하는 경우 데이터 분할을 통해 병렬 복사를 사용하도록 설정하는 것이 좋습니다. 다양한 시나리오에 대해 권장되는 구성은 다음과 같습니다. 파일 기반 데이터 저장소에 데이터를 복사할 때 여러 파일로 폴더에 쓰는 것이 좋습니다(폴더 이름만 지정). 이 경우 단일 파일에 쓰는 것보다 성능이 좋습니다.

시나리오 제안된 설정
실제 파티션이 있는 대형 테이블에서 전체 로드 파티션 옵션: 테이블의 실제 파티션

실행하는 동안 서비스에서 실제 파티션을 자동으로 검색하여 데이터를 파티션별로 복사합니다.

실제 파티션이 테이블에 있는지 확인하려면 이 쿼리를 참조할 수 있습니다.
실제 파티션이 없지만 데이터 분할에 대한 정수 또는 날짜/시간 열이 있는 대형 테이블에서 전체 로드를 수행합니다. 파티션 옵션: 동적 범위 파티션입니다.
파티션 열(선택 사항): 데이터를 분할하는 데 사용되는 열을 지정합니다. 지정하지 않으면 기본 키 열이 사용됩니다.
파티션 상한파티션 하한(선택 사항): 파티션 진행 속도를 결정할지 여부를 지정합니다. 이는 테이블의 행을 필터링하기 위한 것이 아니며, 테이블의 모든 행을 분할하고 복사합니다. 지정하지 않으면 복사 작업에서 값을 자동으로 검색하고 MIN 및 MAX 값에 따라 시간이 오래 걸릴 수 있습니다. 상한 및 하한을 제공하는 것이 좋습니다.

예를 들어, “ID” 파티션 열의 값 범위가 1~100이고, 하한을 20으로 설정하고, 상한을 80으로 설정하고, 병렬 복사를 4로 설정하면 서비스에서 4개의 파티션별로(각각 ID 범위: <=20, [21, 50], [51, 80] 및 >=81) 데이터를 검색합니다.
실제 파티션이 없지만 데이터 분할에 대한 정수, 날짜 또는 날짜/시간 열이 있는 사용자 지정 쿼리를 사용하여 많은 양의 데이터를 로드합니다. 파티션 옵션: 동적 범위 파티션입니다.
쿼리:SELECT * FROM <TableName> WHERE ?DfDynamicRangePartitionCondition AND <your_additional_where_clause>.
파티션 열: 데이터를 분할하는 데 사용되는 열을 지정합니다.
파티션 상한파티션 하한(선택 사항): 파티션 진행 속도를 결정할지 여부를 지정합니다. 이는 테이블의 행을 필터링하기 위한 것이 아니며, 쿼리 결과의 모든 행을 분할하고 복사합니다. 지정하지 않으면 복사 작업에서 값을 자동으로 검색합니다.

예를 들어 "ID" 파티션 열의 값 범위가 1~100이고 하한을 20으로 설정하고 상한을 80으로 설정하고 병렬 복사를 4로 설정하면 서비스에서 4개의 파티션별로(각각 ID 범위: <=20, [21, 50], [51, 80] 및 >=81) 데이터를 검색합니다.

다양한 시나리오에 대한 추가 샘플 쿼리는 다음과 같습니다.
1. 전체 테이블 쿼리:
SELECT * FROM <TableName> WHERE ?DfDynamicRangePartitionCondition
2. 열을 선택하고 where 절 필터를 추가하여 테이블 쿼리:
SELECT <column_list> FROM <TableName> WHERE ?DfDynamicRangePartitionCondition AND <your_additional_where_clause>
3. 하위 쿼리를 사용하여 쿼리:
SELECT <column_list> FROM (<your_sub_query>) AS T WHERE ?DfDynamicRangePartitionCondition AND <your_additional_where_clause>
4. 하위 쿼리에서 파티션을 사용하여 쿼리:
SELECT <column_list> FROM (SELECT <your_sub_query_column_list> FROM <TableName> WHERE ?DfDynamicRangePartitionCondition) AS T

파티션 옵션을 사용하여 데이터를 로드하는 모범 사례:

  1. 데이터 기울이기를 방지하려면 고유한 열(예: 기본 키 또는 고유 키)을 분할 열로 선택합니다.
  2. 테이블에 기본 제공 파티션이 있는 경우 "테이블의 실제 파티션" 파티션 옵션을 사용하여 성능을 향상시킵니다.
  3. Azure Integration Runtime을 사용하여 데이터를 복사하는 경우 더 많은 컴퓨팅 리소스를 활용할 수 있도록 더 큰 “DIU(데이터 통합 ​​단위)”(>4)를 설정할 수 있습니다. 여기서 적용 가능한 시나리오를 확인합니다.
  4. "복사 병렬 처리 수준"은 파티션 수를 제어합니다. 이 수를 너무 크게 설정하면 성능이 저하되는 경우가 있습니다. 이 수를 (DIU 또는 자체 호스팅 IR 노드 수) * (2~4)로 설정하는 것이 좋습니다.

예제: 실제 파티션이 있는 대형 테이블에서 전체 로드

"source": {
    "type": "AmazonRdsForSqlServerSource",
    "partitionOption": "PhysicalPartitionsOfTable"
}

예: 동적 범위 파티션이 있는 쿼리

"source": {
    "type": "AmazonRdsForSqlServerSource",
    "query": "SELECT * FROM <TableName> WHERE ?DfDynamicRangePartitionCondition AND <your_additional_where_clause>",
    "partitionOption": "DynamicRange",
    "partitionSettings": {
        "partitionColumnName": "<partition_column_name>",
        "partitionUpperBound": "<upper_value_of_partition_column (optional) to decide the partition stride, not as data filter>",
        "partitionLowerBound": "<lower_value_of_partition_column (optional) to decide the partition stride, not as data filter>"
    }
}

실제 파티션을 확인하기 위한 샘플 쿼리

SELECT DISTINCT s.name AS SchemaName, t.name AS TableName, pf.name AS PartitionFunctionName, c.name AS ColumnName, iif(pf.name is null, 'no', 'yes') AS HasPartition
FROM sys.tables AS t
LEFT JOIN sys.objects AS o ON t.object_id = o.object_id
LEFT JOIN sys.schemas AS s ON o.schema_id = s.schema_id
LEFT JOIN sys.indexes AS i ON t.object_id = i.object_id 
LEFT JOIN sys.index_columns AS ic ON ic.partition_ordinal > 0 AND ic.index_id = i.index_id AND ic.object_id = t.object_id 
LEFT JOIN sys.columns AS c ON c.object_id = ic.object_id AND c.column_id = ic.column_id 
LEFT JOIN sys.partition_schemes ps ON i.data_space_id = ps.data_space_id 
LEFT JOIN sys.partition_functions pf ON pf.function_id = ps.function_id 
WHERE s.name='[your schema]' AND t.name = '[your table name]'

실제 파티션이 테이블에 있는 경우 다음과 같이 "HasPartition"이 "yes"로 표시됩니다.

SQL 쿼리 결과

조회 작업 속성

속성에 대한 자세한 내용을 보려면 조회 작업을 확인하세요.

GetMetadata 작업 속성

속성에 대한 자세한 내용을 보려면 GetMetadata 작업을 확인하세요.

Always Encrypted 사용

Always Encrypted를 사용하여 Amazon RDS for SQL Server에서/로 데이터를 복사하는 경우 다음 단계를 수행합니다.

  1. Azure Key VaultCMK(열 마스터 키)를 저장합니다. Azure Key Vault를 사용하여 Always Encrypted를 구성하는 방법을 자세히 알아보세요.

  2. CMK(열 마스터 키)가 저장된 키 자격 증명 모음에 액세스할 수 있는지 확인합니다. 필요한 권한은 이 문서를 참조하세요.

  3. 연결된 서비스를 만들어 SQL 데이터베이스에 연결하고 관리 ID 또는 서비스 주체를 사용하여 ‘Always Encrypted’ 기능을 사용하도록 설정합니다.

연결 문제 해결

  1. 원격 연결을 허용하도록 Amazon RDS for SQL Server 인스턴스를 구성합니다. Amazon RDS for SQL Server Management Studio를 시작하고, 마우스 오른쪽 단추로 서버를 클릭하고, 속성을 선택합니다. 목록에서 연결을 선택하고, 이 서버에 대한 원격 연결 허용 확인란을 선택합니다.

    원격 연결 사용

    자세한 단계는 원격 액세스 서버 구성 옵션 구성을 참조하세요.

  2. Amazon RDS for SQL Server 구성 관리자를 시작합니다. 사용하려는 인스턴스에 대한 Amazon RDS for SQL Server 네트워크 구성을 확장하고 MSSQLSERVER용 프로토콜을 선택합니다. 오른쪽 창에 프로토콜이 표시됩니다. 마우스 오른쪽 단추로 TCP/IP를 클릭하고 사용을 선택하여 TCP/IP를 사용하도록 설정합니다.

    TCP/IP 사용

    자세한 내용 및 TCP/IP 프로토콜을 사용하도록 설정하는 다른 방법은 서버 네트워크 프로토콜 설정 또는 해제를 참조하세요.

  3. 동일한 창에서 TCP/IP를 두 번 클릭하여 TCP/IP 속성 창을 시작합니다.

  4. IP 주소 탭으로 전환합니다. 아래로 스크롤하여 IPAll 섹션을 확인합니다. TCP 포트를 적어 둡니다. 기본값은 1433입니다.

  5. 컴퓨터에 Windows 방화벽에 대한 규칙 을 만들어 이 포트를 통해 들어오는 트래픽을 허용합니다.

  6. 연결 확인: 정규화된 이름을 사용하여 Amazon RDS for SQL Server에 연결하려면 다른 컴퓨터의 Amazon RDS for SQL Server Management Studio를 사용합니다. 예제는 "<machine>.<domain>.corp.<company>.com,1433"입니다.

복사 작업에서 원본 및 싱크로 지원되는 데이터 저장소 목록은 지원되는 데이터 저장소를 참조하세요.