웹 동기화 구성

적용 대상:SQL Server

SQL Server 병합 복제의 웹 동기화 옵션은 인터넷을 통한 HTTPS 프로토콜을 사용하여 데이터 복제를 가능하게 합니다. 웹 동기화를 사용하려면 먼저 다음 구성 단계를 완료하세요:

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

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

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

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

참고

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

웹 동기화를 성공적으로 설정하려면, 특정 요구사항과 정책에 맞게 보안을 어떻게 구성할지 결정해야 합니다. 이러한 결정을 내리고 필요한 계정을 생성한 후 IIS, 출판물, 구독을 설정하려고 시도하세요.

다음 절차는 로컬 계정을 사용하는 간소화된 보안 구성을 설명합니다. 이 단순화된 구성은 IIS와 SQL Server Publisher 및 배포기가 동일한 컴퓨터에서 실행되는 설치에 적합하지만, 실제 설치에서는 다중 서버 토폴로지를 사용하는 것이 훨씬 더 일반적이고 권장됩니다. 절차에서 로컬 계정을 도메인 계정으로 대체할 수 있습니다.

새 계정 생성 및 SQL Server 로그인 매핑

SQL Server 복제 리스너(replisapi.dll)는 복제 웹사이트와 연관된 애플리케이션 풀에 지정한 계정을 가칭하여 Publisher에 연결합니다.

SQL Server 복제 리스너에 사용하는 계정은 병합 에이전트 Security의 "Connect to the Publisher or Distributor" 섹션에 설명된 권한이 필요합니다. 요약하자면, 해당 계정은 다음과 같은 조건을 충족해야 합니다:

  • 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당 작업자 프로세스의 수를 늘려 확장하는 것을 "웹 가든"을 만드는 것이라고 합니다.

웹 원예는 두 명 이상의 구독자가 동시에 동기화할 수 있게 합니다. 또한 CPU 사용률 replisapi.dll을 증가시켜 전체 서버 성능에 부정적인 영향을 줄 수 있습니다. 최대 근로자 프로세스 값을 선택할 때 이러한 고려사항을 균형 있게 고려하세요.

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

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

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

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

게시 설정

웹 동기화를 사용하려면 표준 병합 토폴로지 출판물을 만드는 것과 같은 방식으로 출판물을 생성하세요. 자세한 내용은 데이터 및 데이터베이스 개체 게시를 참조하세요.

출판물을 생성한 후, 다음 방법 중 하나를 사용하여 웹 동기화를 허용하는 옵션을 활성화하세요: SQL Server Management Studio, Transact-SQL, 또는 복제 관리 객체(RMO). 웹 동기화를 활성화하려면 구독자 연결용 웹 서버 주소를 제공해야 합니다.

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

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

이 키의 허용 가능한 값 범위는 100 MB에서 4 GB입니다. 값은 KB 단위로 지정됩니다. 이 매개변수를 높게 설정한다고 해서 그 양의 데이터를 동기화할 수 있다는 보장은 없습니다. 유효 한도는 구독자 컴퓨터에서 사용할 수 있는 연속 메모리의 양에 따라 제한됩니다. 100MB 이상이어야 한다면, 값을 점진적으로 늘리고 구독자의 일반적인 작업 부하로 메모리 사용량을 테스트하세요.

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

  • 데이터와 메타데이터가 25MB를 초과하는 어떤 열도 복제할 수 없습니다. 이 제한은 varchar(max)처럼 큰 데이터 타입을 포함하는 행을 복제할 때 문제가 될 수 있습니다.

  • 대량의 데이터를 복제할 경우, 병합 에이전트 배치 크기를 조정해야 할 수도 있습니다.

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

대량의 데이터의 경우 각 일괄 처리 매개 변수에 대해 작은 수를 지정합니다. 10으로 시작해 애플리케이션 요구와 성능에 맞춰 조정하세요. 보통 이러한 매개변수는 에이전트 프로필에서 명시합니다. 프로필에 대한 더 자세한 내용은 복제 에이전트 프로필을 참조하세요.

웹 동기화를 위한 보안 모범 사례

웹 동기화는 보안 관련 설정에 다양한 선택지를 제공합니다. 다음 방법을 사용합니다.

  • SQL Server 배포자와 게시자는 동일한 컴퓨터(병합 복제에 대한 일반적인 설정)에 있을 수 있습니다. 하지만 별도의 컴퓨터에 IIS를 설치하세요.

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

  • 구독자에서 IIS로 연결하는 경우에는 기본 인증을 사용하세요. 기본 인증을 사용하면 IIS는 위임 없이 가입자를 대신해 Publisher/Distributor와 연결할 수 있습니다. 통합 인증을 사용하는 경우 위임이 필요합니다.

    참고

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

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

    에이전트가 요구하는 권한에 대한 자세한 내용은 복제 에이전트 보안 모델을 참조하세요.

  • 새 구독 마법사의 웹 서버 정보 페이지에서 계정과 암호를 지정할 때 또는 sp_addpullsubscription_agent@internet_url@internet_login 매개 변수에 대한 값을 지정할 때는 병합 에이전트가 사용하는 것과 동일한 도메인 계정을 지정하십시오. 이 계정에는 스냅샷 공유에 대한 읽기 권한이 있어야 합니다.

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

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

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

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

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

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

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

중요

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