다음을 통해 공유


웹 동기화 구성

적용 대상: SQL Server

SQL Server 병합 복제에 대한 웹 동기화 옵션을 사용하면 인터넷을 통해 HTTPS 프로토콜을 사용하여 데이터 복제를 사용할 수 있습니다. 웹 동기화를 사용하려면 먼저 다음 구성 동작을 수행해야 합니다.

  1. 새 도메인 계정을 만들고 SQL Server 로그인을 매핑합니다.

  2. 구독을 동기화하도록 IIS(Microsoft 인터넷 정보 서비스)를 실행하는 컴퓨터를 구성합니다.

  3. 웹 동기화를 허용하도록 병합 게시를 구성합니다.

  4. 하나 이상의 구독에서 웹 동기화를 사용하도록 구성합니다.

참고 항목

많은 양의 데이터를 복제하거나 varchar(max) 등의 큰 데이터 형식을 사용하려는 경우 이 항목의 "많은 양의 데이터 복제" 섹션을 참조하십시오.

웹 동기화를 성공적으로 설정하려면 특정 요구 사항 및 정책에 맞게 보안을 구성하는 방법을 결정해야 합니다. IIS, 게시 및 구독을 구성하기 전에 이러한 결정을 내리고 필요한 계정을 만드는 것이 가장 좋습니다.

다음 절차에서는 간결하게 로컬 계정을 사용하는 간소화된 보안 구성에 대해 설명합니다. 프로덕션 설치의 경우 사용자가 다중 서버 토폴로지를 사용할 가능성이 매우 높으며 또한 이렇게 하는 것이 권장되지만 IIS와 SQL Server 게시자 및 배포자가 모두 동일한 컴퓨터에서 실행되는 설치에는 이러한 간단한 구성이 적합합니다. 절차에서 로컬 계정의 도메인 계정을 대체할 수 있습니다.

새 계정 만들기 및 SQL Server 로그인 매핑

SQL Server 복제 수신기(replisapi.dll)는 복제 웹 사이트와 연결된 애플리케이션 풀에 지정된 계정을 가장하여 게시자에 연결합니다.

SQL Server 복제 수신기에 대해 사용되는 계정은 병합 에이전트 보안 항목의 "게시자 또는 배포자에 연결" 섹션에 설명된 대로 사용 권한을 가지고 있어야 합니다. 요약하자면, 계정은 반드시 다음과 같아야 합니다.

  • PAL(게시 액세스 목록)의 멤버여야 합니다.

  • 게시 데이터베이스의 사용자와 연결된 로그인에 매핑됩니다.

  • 배포 데이터베이스의 사용자와 연결된 로그인이어야 합니다.

  • 스냅샷 공유에 대해 읽기 권한이 있어야 합니다.

처음 복제를 사용하는 경우에는 SQL Server 복제 에이전트에 대한 계정 및 로그인도 만들어야 합니다. 자세한 내용은 이 항목의 "게시 구성" 및 "구독 구성" 섹션을 참조하세요.

웹 동기화를 구성하기 전에 이 항목의 "웹 동기화에 대한 보안 모범 사례" 섹션을 읽어보는 것이 좋습니다. 웹 동기화에 대한 자세한 내용은 통합 복제를 위한 웹 동기화를 참조하세요.

IIS를 실행하는 컴퓨터 구성

웹 동기화를 수행하려면 IIS를 설치하고 구성해야 합니다. 웹 동기화를 사용하도록 게시를 구성하려면 복제 웹 사이트에 대한 URL이 필요합니다.

웹 동기화는 버전 5.0부터 IIS에서 지원됩니다. 웹 동기화 구성 마법사는 IIS 버전 7.0에서 지원되지 않습니다. SQL Server 2012부터 IIS 서버에서 웹 동기화 구성 요소를 사용하려면 사용자가 복제를 사용하여 SQL Server를 설치하는 것이 좋습니다. 무료 SQL Server Express Edition일 수 있습니다.

TLS는 웹 동기화에 필요합니다. 인증 기관에서 발급한 보안 인증서가 필요합니다. 테스트 목적으로만 자체 발급된 보안 인증서를 사용할 수 있습니다.

웹 동기화를 위해 IIS를 구성하려면

웹 가든 만들기

SQL Server 복제 수신기는 스레드당 두 개의 동시 동기화 작업을 지원합니다. 이 제한을 초과하면 복제 수신기에서 응답을 중지할 수 있습니다. replisapi.dll에 할당된 스레드 수는 애플리케이션 풀 최대 작업자 프로세스 수 속성에 의해 결정됩니다. 기본적으로 이 속성은 1로 설정됩니다.

최대 작업자 프로세스 속성 값을 늘려 CPU당 더 많은 수의 동시 동기화 작업을 지원할 수 있습니다. CPU당 작업자 프로세스의 수를 늘려 확장하는 것을 "웹 가든"을 만드는 것이라고 합니다.

웹 가드닝을 사용하면 두 명 이상의 구독자가 동시에 동기화될 수 있습니다. 또한 replisapi.dll CPU 사용률을 높여 전체 서버 성능에 부정적인 영향을 줄 수 있습니다. 최대 작업자 프로세스에 대한 값을 선택할 때 이러한 고려 사항의 균형을 맞추는 것이 중요합니다.

IIS 7에서 최대 작업자 프로세스를 늘리려면

  1. 인터넷 정보 서비스(IIS) 관리자에서 로컬 서버 노드를 확장한 다음 애플리케이션 풀 노드를 클릭합니다.

  2. 웹 동기화 사이트와 연결된 애플리케이션 풀을 선택한 다음 작업 창에서 고급 설정을 클릭합니다.

  3. 고급 설정 대화 상자의 프로세스 모델 머리글 아래에서 최대 작업자 프로세스 수라는 레이블이 지정된 행을 클릭합니다. 속성 값을 변경하고 확인을 클릭합니다.

게시 구성

웹 동기화를 사용하려면 표준 병합 토폴로지와 동일한 방식으로 게시물을 만듭니다. 자세한 내용은 데이터 및 데이터베이스 개체 게시를 참조하세요.

게시를 만든 후 SQL Server Management Studio, Transact-SQL 또는 RMO(복제 관리 개체) 방법 중 하나를 사용하여 웹 동기화를 허용하는 옵션을 사용하도록 설정합니다. 웹 동기화를 사용하도록 설정하려면 구독자 연결에 대한 웹 서버 주소를 제공해야 합니다.

게시자를 처음으로 사용하는 경우에는 배포자 및 스냅샷 공유도 구성해야 합니다. 각 구독자의 병합 에이전트에는 이 스냅샷 공유에 대한 읽기 권한이 있어야 합니다. 자세한 내용은 배포 구성스냅샷 폴더 보안 설정을 참조하세요.

gen 은 websync xml 파일의 예약어입니다. gen이라는 열이 포함된 테이블을 게시하지 마세요.

구독 구성

게시를 사용하도록 설정하고 IIS를 구성한 후 끌어오기 구독을 만들고 IIS를 사용하여 끌어오기 구독을 동기화하도록 지정합니다. (웹 동기화는 끌어오기 구독에 대해서만 지원됩니다.)

이전 버전의 SQL Server에서 업그레이드

기존 웹 동기화 토폴로지를 구성하고 SQL Server를 업그레이드하는 경우 최신 버전의 Replisapi.dll 웹 동기화에서 사용하는 가상 디렉터리에 복사해야 합니다. 기본적으로 최신 버전의 Replisapi.dll C:\Program Files\Microsoft SQL Server\<nnn>\COM에 있습니다.

대용량 데이터 복제

구독자 컴퓨터의 잠재적인 메모리 문제를 방지하기 위해 웹 동기화는 변경 내용을 전송하는 데 사용되는 XML 파일의 기본 최대 크기인 100MB를 사용합니다. 다음 레지스트리 키를 설정하여 제한을 올릴 수 있습니다.

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\100\Replication

WebSyncMaxXmlSize DWORD 2000000

이러한 키에 허용되는 값 범위는 100MB ~ 4GB입니다. KB에서 지정된 값이 잘못되었습니다. 이 매개 변수를 높은 값으로 설정해도 사용자가 해당 양의 데이터를 동기화할 수 있다고 보장하지는 않습니다. 유효 한도는 구독자 컴퓨터에서 사용할 수 있는 연속 메모리의 양에 따라 제한됩니다. 값이 100MB보다 커야 하는 경우 구독자의 일반적인 워크로드를 사용하여 값을 증분 방식으로 늘리고 메모리 소모를 테스트하는 것이 좋습니다.

XML 파일의 최대 크기는 4GB이지만 복제는 해당 파일의 변경 내용을 일괄 처리로 동기화합니다. 데이터 및 메타데이터의 최대 일괄 처리 크기는 25MB입니다. 각 일괄 처리의 데이터가 메타데이터 및 기타 오버헤드를 허용하는 약 20MB를 초과하지 않도록 해야 합니다. 이 한도에는 다음과 같은 의미가 있습니다.

  • 데이터 및 메타데이터가 25MB를 초과하는 열은 복제할 수 없습니다. 이는 varchar(max) 등의 큰 데이터 형식이 포함된 행을 복제하는 경우 문제가 될 수 있습니다.

  • 대량의 데이터를 복제하는 경우 병합 에이전트 일괄 처리 크기를 조정해야 할 수 있습니다.

병합 복제에 대한 일괄 처리 크기는 아티클당 변경 내용의 컬렉션인 세대 단위로 측정됩니다. 일괄 처리에 포함되는 세대의 수는 병합 에이전트의 -DownloadGenerationsPerBatch 및 -UploadGenerationsPerBatch 매개 변수를 사용하여 지정됩니다. 자세한 내용은 복제 병합 에이전트를 참조하세요.

대량의 데이터의 경우 각 일괄 처리 매개 변수에 대해 작은 수를 지정합니다. 값 10으로 시작한 다음 애플리케이션 요구 사항 및 성능에 따라 조정하는 것이 좋습니다. 일반적으로 이러한 매개 변수는 에이전트 프로필에 지정됩니다. 프로필에 대한 더 자세한 내용은 복제 에이전트 프로필을 참조하세요.

웹 동기화에 대한 보안 모범 사례

웹 동기화에는 보안 관련 설정에 대한 여러 가지 옵션이 있습니다. 다음 접근 방식을 권장합니다.

  • SQL Server 배포자와 게시자는 동일한 컴퓨터(병합 복제에 대한 일반적인 설정)에 있을 수 있습니다. 그러나 IIS는 별도의 컴퓨터에 설치해야 합니다.

  • 이전에 SSL(Secure Sockets Layer)로 알려진 TLS(전송 계층 보안)은 구독자와 IIS 실행 컴퓨터 사이의 연결을 암호화하기 위해 사용됩니다. 이는 웹 동기화에 필요합니다.

  • 구독자에서 IIS로 연결하는 경우에는 기본 인증을 사용하세요. IIS는 기본 인증을 사용하여 위임 없이 구독자를 대신하여 게시자/배포자에 연결할 수 있습니다. 통합 인증을 사용하는 경우 위임이 필요합니다.

    참고 항목

    기본 인증은 자격 증명이 IIS에 전달되는 방법입니다. 기본 인증은 IIS에 대한 연결에 Windows 도메인 계정을 지정하는 것을 방지하지 않습니다.

  • 스냅샷 에이전트 Windows 도메인 계정으로 실행되도록 지정하고 에이전트가 해당 계정으로 연결되도록 지정합니다. (기본 구성입니다.) 각 병합 에이전트 구독자 컴퓨터를 사용하는 사용자의 도메인 계정에서 실행되도록 지정하고 에이전트가 해당 계정으로 연결되도록 지정합니다.

    에이전트에 필요한 사용 권한에 대한 자세한 내용은 Replication Agent Security Model을 참조하십시오.

  • 새 구독 마법사의 웹 서버 정보 페이지에서 계정과 암호를 지정할 때 또는 @internet_url@internet_login@internet_login를 참조하십시오. 이 계정에는 스냅샷 공유에 대한 읽기 권한이 있어야 합니다.

  • 각 게시는 IIS에 대해 별도의 가상 디렉터리를 사용해야 합니다.

  • SQL Server 복제 수신기(Replisapi.dll)를 실행하는 계정은 동기화하는 동안 게시자 및 배포자에 연결되는 계정이기도 합니다. 이 계정은 게시자 및 배포자의 SQL 로그인 계정에 매핑되어야 합니다. 자세한 내용은 웹 동기화를 위한 IIS 구성에서 "SQL Server 복제 수신기에 대한 사용 권한 설정" 섹션을 참조하세요.

  • FTP를 사용하여 게시자에서 IIS를 실행하는 컴퓨터로 스냅샷을 배달할 수 있습니다. 스냅샷은 항상 HTTPS를 사용하여 IIS를 실행하는 컴퓨터에서 구독자에게 전달됩니다. 자세한 내용은 FTP를 통해 스냅샷 전송을 참조하세요.

  • 복제 토폴로지의 서버가 방화벽 뒤에 있는 경우 웹 동기화를 사용하도록 설정하려면 방화벽에서 포트를 열어야 할 수 있습니다.

    • 구독자 컴퓨터는 일반적으로 포트 443을 사용하도록 구성된 TLS를 사용하여 HTTPS를 통해 IIS를 실행하는 컴퓨터에 연결합니다. SQL Server Compact 구독자는 HTTP(일반적으로 포트 80을 사용하도록 구성)를 통해 연결할 수도 있습니다.

    • IIS를 실행하는 컴퓨터는 일반적으로 포트 1433(기본 인스턴스)을 사용하여 게시자 또는 배포자에 연결합니다. 게시자 또는 배포자가 다른 기본 인스턴스를 사용하는 서버의 명명된 인스턴스인 경우 포트 1500은 일반적으로 명명된 인스턴스에 연결하는 데 사용됩니다.

    • IIS를 실행하는 컴퓨터가 배포자에서 방화벽으로 분리되고 FTP 공유가 스냅샷 배달에 사용되는 경우 FTP에 사용되는 포트를 열어야 합니다. 자세한 내용은 FTP를 통해 스냅샷 전송을 참조하세요.

Important

방화벽에서 포트를 열면 서버가 악의적인 공격에 노출될 수 있습니다. 포트를 열기 전에 방화벽 시스템에 대해 알고 있어야 합니다. 자세한 내용은 Security Considerations for a SQL Server Installation을 참조하세요.