웹 동기화 구성Configure Web Synchronization

이 항목은 다음에 적용됩니다.예SQL Server(2008부터)아니요Azure SQL Database아니요Azure SQL Data Warehouse 아니요병렬 데이터 웨어하우스 THIS TOPIC APPLIES TO:yesSQL Server (starting with 2008)noAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

SQL ServerSQL Server 병합 복제를 위한 웹 동기화 옵션을 사용하면 인터넷에서 HTTPS 프로토콜을 사용하여 데이터를 복제할 수 있습니다.The Web synchronization option for SQL ServerSQL Server Merge Replication enables data replication using the HTTPS protocol over the Internet. 웹 동기화를 사용하려면 먼저 다음 구성 동작을 수행해야 합니다.To use Web synchronization, you first need to perform the following configuration actions:

  1. 새 도메인 계정을 만들고 SQL ServerSQL Server 로그인을 매핑합니다.Create new domain accounts and map SQL ServerSQL Server logins.

  2. MicrosoftMicrosoft 인터넷 정보 서비스(IIS)를 실행하는 컴퓨터에서 구독을 동기화하도록 구성합니다.Configure the computer that is running MicrosoftMicrosoft Internet Information Services (IIS) to synchronize subscriptions.

  3. 병합 게시에서 웹 동기화를 사용하도록 구성합니다.Configure a merge publication to allow Web synchronization.

  4. 하나 이상의 구독에서 웹 동기화를 사용하도록 구성합니다.Configure one or more subscriptions to use Web synchronization.

참고

많은 양의 데이터를 복제하거나 varchar(max)등의 큰 데이터 형식을 사용하려는 경우 이 항목의 "많은 양의 데이터 복제" 섹션을 참조하십시오.If you plan to replicate large volumes of data or use large data types such as varchar(max), read the section "Replicating Large Volumes of Data" in this topic.

웹 동기화를 성공적으로 설정하려면 특정 요구 사항 및 정책에 맞게 보안을 구성하는 방법을 결정해야 합니다.To successfully set up Web synchronization, you must decide how you will configure security to meet your particular requirements and policies. IIS, 게시 및 구독을 구성하기 전에 이러한 의사 결정을 내리고 필요한 계정을 만드는 것이 가장 좋습니다.It is best to make these decisions and create the necessary accounts before you attempt to configure IIS, the publication, and subscriptions.

이후의 절차에서는 간결한 설명을 위해 로컬 계정을 사용하는 간단한 보안 구성에 대해 설명합니다.In the procedures that follow, a simplified security configuration using local accounts is described, for brevity. 프로덕션 설치의 경우 사용자가 다중 서버 토폴로지를 사용할 가능성이 매우 높으며 또한 이렇게 하는 것이 권장되지만 IIS와 SQL ServerSQL Server 게시자 및 배포자가 모두 동일한 컴퓨터에서 실행되는 설치에는 이러한 간단한 구성이 적합합니다.This simplified configuration is suitable for installations where both IIS and the SQL ServerSQL Server Publisher and Distributor are running on the same computer, even though it is much more likely (and recommended) that you will use a multiple-server topology for a production installation. 다음 절차에서 로컬 계정 대신 도메인 계정을 사용할 수 있습니다.You can substitute domain accounts for the local accounts in the procedures.

새 계정 만들기 및 SQL Server 로그인 매핑Creating New Accounts and Mapping SQL Server Logins

복제 웹 사이트와 연결된 응용 프로그램 풀에 대해 지정된 계정을 가장하여 SQL ServerSQL Server 복제 수신기(replisapi.dll)가 게시자에 연결됩니다.The SQL ServerSQL Server Replication Listener (replisapi.dll) connects to the Publisher by impersonating the account specified for the application pool that is associated with the replication web site.

SQL ServerSQL Server 복제 수신기에 사용되는 계정에는 병합 에이전트 보안의 "게시자 또는 배포자에 연결" 섹션에 설명된 대로 사용 권한이 있어야 합니다.The account used for the SQL ServerSQL Server Replication Listener must have permissions as described in Merge Agent Security, under the section "Connect to the Publisher or Distributor." 요약하면, 계정은 다음 조건을 만족해야 합니다.In summary, the account must:

  • PAL(게시 액세스 목록)의 멤버여야 합니다.Be a member of the Publication Access List (PAL).

  • 게시 데이터베이스의 사용자와 연결된 로그인에 매핑되어야 합니다.Be mapped to a login associated with a user in the publication database.

  • 배포 데이터베이스의 사용자와 연결된 로그인에 매핑되어야 합니다.Be mapped to a login associated with a user in the distribution database.

  • 스냅숏 공유에 대한 읽기 권한을 가지고 있어야 합니다.Have Read permissions on the snapshot share.

    처음 SQL ServerSQL Server 복제를 사용하는 경우에는 복제 에이전트에 대한 계정 및 로그인도 만들어야 합니다.If this is the first time you are using SQL ServerSQL Server Replication, you will also need to create accounts and logins for the replication agents. 자세한 내용은 이 항목의 "게시 구성" 및 "구독 구성" 섹션을 참조하십시오.For more information, see the "Configuring the Publication" and "Configuring the Subscription" sections in this topic.

    웹 동기화를 구성하기 전에 이 항목의 "웹 동기화에 대한 최상의 보안 방법" 섹션을 읽어 보는 것이 좋습니다.Before you configure Web synchronization, we recommend that you read the "Security Best Practices for Web Synchronization" section in this topic. 웹 동기화 보안에 대한 자세한 내용은 Security Architecture for Web Synchronization를 참조하십시오.For more information about Web synchronization security, see Security Architecture for Web Synchronization.

IIS를 실행하는 컴퓨터 구성Configuring the Computer That Is Running IIS

웹 동기화를 수행하려면 IIS를 설치하고 구성해야 합니다.Web synchronization requires that you install and configure IIS. 게시에서 웹 동기화를 사용하도록 구성하려면 복제 웹 사이트에 대한 URL이 필요합니다.You will need the URL to the replication Web site before you can configure a publication to use Web synchronization.

웹 동기화는 IIS 버전 5.0부터 지원됩니다.Web synchronization is supported on IIS beginning with version 5.0. 웹 동기화 구성 마법사는 IIS 버전 7.0에서 지원되지 않습니다.The Configure Web Synchronization Wizard is not supported on IIS version 7.0. SQL Server 2012부터 IIS 서버의 웹 동기화 구성 요소를 사용하려면 사용자가 복제와 함께 SQL Server를 설치하는 것이 좋습니다.Beginning with SQL Server 2012, to use the web sync component on IIS server, we recommend users install SQL Server with replication. 무료 SQL Server Express Edition일 수 있습니다.This can be the free SQL Server Express edition.

웹 동기화에 SSL이 필요합니다.SSL is required for Web synchronization. 인증 기관에서 발급한 보안 인증서가 필요합니다.You will need a security certificate issued by a certification authority. 테스트용으로만 자체 발급 보안 인증서를 사용할 수 있습니다.For testing purposes only, you can use a self-issued security certificate.

웹 동기화를 위해 IIS를 구성하려면To configure IIS for Web synchronization

웹 가든 만들기Creating a Web Garden

SQL ServerSQL Server 복제 수신기에서는 스레드당 두 개의 동기화 작업이 동시에 수행되도록 지원합니다.The SQL ServerSQL Server Replication Listener supports two concurrent synchronization operations per thread. 이 제한을 초과하면 복제 수신기에서 응답을 중지할 수 있습니다.Exceeding this limit may cause the Replication Listener to stop responding. replisapi.dll에 할당된 스레드 수는 응용 프로그램 풀 최대 작업자 프로세스 수 속성에 의해 결정됩니다.The number of threads allocated to replisapi.dll is determined by the application pool Maximum Worker Processes property. 기본적으로 이 속성은 1로 설정됩니다.By default, this property is set at 1.

최대 작업자 프로세스 수 속성 값을 늘려 CPU당 동시에 실행할 수 있는 동기화 작업 수를 더 늘릴 수 있습니다.You can support a greater number of concurrent synchronization operations per CPU by increasing the Maximum Worker Process property value. CPU당 작업자 프로세스의 수를 늘려 확장하는 것을 "웹 가든"을 만드는 것이라고 합니다.Scaling out by increasing the number of worker processes per CPU is known as creating a "Web garden."

웹 가든 만들기를 통해 동시에 세 개 이상의 구독자를 동기화할 수 있습니다.Web gardening will allow more than two Subscribers to synchronize at the same time. 또한 replisapi.dll에 의한 CPU 사용률이 증가하는데 이로 인해 전체 서버 성능에 부정적인 영향을 끼칠 수 있습니다.It will also increase CPU utilization by replisapi.dll, which can negatively impact overall server performance. 따라서 최대 작업자 프로세스 수의 값을 선택할 때에는 이러한 사항을 균형 있게 고려하는 것이 중요합니다.It is important to balance these considerations when you choose a value for Maximum Worker Processes.

IIS 7에서 최대 작업자 프로세스 수를 늘리려면To increase Maximum Worker Processes in IIS 7

  1. 인터넷 정보 서비스(IIS) 관리자에서 로컬 서버 노드를 확장한 다음 응용 프로그램 풀 노드를 클릭합니다.In Internet Information Services (IIS) Manager, expand the local server node, and then click on the Application Pool node.

  2. 웹 동기화 사이트와 연결된 응용 프로그램 풀을 선택한 다음 동작 창에서 고급 설정 을 클릭합니다.Select the application pool associated with the Web synchronization site, and then click Advanced Settings on the Actions pane.

  3. 고급 설정 대화 상자의 프로세스 모델 머리글 아래에서 최대 작업자 프로세스 수라는 레이블이 지정된 행을 클릭합니다.On the Advanced Settings dialog, under the Process Model heading, click the row labeled Maximum Worker Processes. 속성 값을 변경한 다음 확인을 클릭합니다.Change the property value, and then click OK.

게시 구성Configuring the Publication

웹 동기화를 사용하려면 표준 병합 토폴로지를 만드는 것과 같은 방법으로 게시를 만듭니다.To use Web synchronization, create a publication in the same way that you would for a standard merge topology. 자세한 내용은 데이터 및 데이터베이스 개체 게시를 참조하세요.For more information, see Publish Data and Database Objects.

게시가 생성되면 SQL Server Management StudioSQL Server Management Studio, Transact-SQLTransact-SQL또는 RMO(복제 관리 개체) 방법 중 하나를 사용하여 웹 동기화를 허용하는 옵션을 활성화합니다.After the publication is created, enable the option to allow for Web synchronization by using one of the following methods: SQL Server Management StudioSQL Server Management Studio, Transact-SQLTransact-SQL, or Replication Management Objects (RMO). 웹 동기화를 사용하도록 설정하려면 구독자 연결에 대한 웹 서버 주소를 제공해야 합니다.To enable Web synchronization, you will need to supply the Web server address for Subscriber connections.

게시자를 처음으로 사용하는 경우에는 배포자 및 스냅숏 공유도 구성해야 합니다.If you are using a Publisher for the first time, you must also configure a Distributor and a snapshot share. 각 구독자의 병합 에이전트에는 이 스냅숏 공유에 대한 읽기 권한이 있어야 합니다.The Merge Agent at each Subscriber must have read permissions on the snapshot share. 자세한 내용은 배포 구성스냅숏 폴더 보안 설정을 참조하세요.For more information, see Configure Distribution and Secure the Snapshot Folder.

gen 은 websync xml 파일의 예약어입니다.gen is a reserved word in websync xml files. 이름이 gen인 열을 포함하는 테이블은 게시하지 마십시오.Do not attempt to publish tables containing columns named gen.

구독 구성Configuring the Subscription

게시를 설정하고 IIS를 구성한 다음에는 끌어오기 구독을 만들고 이 구독에서 IIS를 사용하여 동기화를 수행하도록 지정합니다.After you enable a publication and configure IIS, create a pull subscription and specify that the pull subscription should synchronize by using IIS. 웹 동기화는 끌어오기 구독에 대해서만 지원됩니다.(Web synchronization is supported only for pull subscriptions.)

이전 버전의 SQL Server에서 업그레이드Upgrading from an Earlier Version of SQL Server

기존 웹 동기화 토폴로지를 구성한 상태에서 SQL ServerSQL Server를 업그레이드하는 경우 웹 동기화에 사용되는 가상 디렉터리에 최신 버전의 Replisapi.dll이 복사되어 있는지 확인해야 합니다.If you have an existing Web synchronization topology configured and you upgrade SQL ServerSQL Server, you must ensure that the latest version of Replisapi.dll is copied to the virtual directory used by Web synchronization. 기본적으로 최신 버전의 Replisapi.dll은C:\Program Files\Microsoft SQL Server\\COM에 있습니다.By default, the latest version of Replisapi.dll is located in C:\Program Files\Microsoft SQL Server\\COM.

많은 양의 데이터 복제Replicating Large Volumes of Data

구독자 컴퓨터에서 메모리 문제가 발생하지 않도록 웹 동기화에서 변경 내용을 전송하는 데 사용되는 XML 파일에 대해 기본 최대 크기인 100MB를 사용합니다.To help avoid potential memory problems on Subscriber computers Web synchronization uses a default maximum size of 100 MB for the XML file used to transfer changes. 다음 레지스트리 키를 설정하여 제한을 늘릴 수 있습니다.The limit can be raised by setting the following registry key:

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

WebSyncMaxXmlSize DWORD 2000000WebSyncMaxXmlSize DWORD 2000000

이러한 키에 허용되는 값 범위는 100MB ~ 4GB입니다.The range of acceptable values for this key is 100 MB to 4GB. 값이 KB로 지정됩니다.The value is specified in KB. 이 매개 변수를 높은 값으로 설정해도 사용자가 해당 양의 데이터를 동기화할 수 있다고 보장하지는 않습니다.Setting this parameter to a high value does not guarantee that you can synchronize that amount of data. 유효 제한은 구독자 컴퓨터에서 사용할 수 있는 연속적인 메모리 양에 따라 달라집니다.The effective limit is constrained by how much contiguous memory is available on the Subscriber computer. 100MB보다 큰 값이 필요한 경우 값을 증분식으로 늘리고 구독자에서의 일반적인 작업을 수행하는 데 필요한 메모리 사용을 테스트하는 것이 좋습니다.If you must have a value larger than 100 MB, we recommend that you increase the value incrementally and test memory consumption with a typical workload on the Subscriber.

XML 파일의 최대 크기는 4GB이지만 복제를 수행하면 일괄 처리에 있는 해당 파일의 변경 내용이 동기화됩니다.The maximum size for the XML file is 4 GB, but replication synchronizes the changes from that file in batches. 데이터 및 메타데이터의 최대 일괄 처리 크기는 25MB입니다.The maximum batch size of data and metadata is 25 MB. 각 일괄 처리의 데이터가 20MB를 초과하지 않도록 해야 메타데이터 및 기타 오버헤드를 위한 공간이 확보됩니다.You must ensure that the data in each batch does not exceed approximately 20 MB, which allows for metadata and any other overhead. 이러한 제한이 의미하는 바는 다음과 같습니다.This limit has the following implications:

  • 데이터와 메타데이터가 25MB를 초과하도록 하는 열은 복제할 수 없습니다.You cannot replicate any column that causes the data and metadata to exceed 25 MB. 이는 varchar(max)등의 큰 데이터 형식이 포함된 행을 복제하는 경우 문제가 될 수 있습니다.This might be an issue when you are replicating rows that contain large data types, such as varchar(max).

  • 많은 양의 데이터를 복제하는 경우 병합 에이전트 일괄 처리 크기를 조정해야 합니다.If you replicate large volumes of data, you might have to adjust the Merge Agent batch size.

    병합 복제를 위한 일괄 처리 크기는 아티클 단위의 변경 내용 컬렉션인 세대로 측정됩니다.Batch size for merge replication is measured in generations, which are collections of changes per article. 일괄 처리에 포함되는 세대의 수는 병합 에이전트의 -DownloadGenerationsPerBatch 및 -UploadGenerationsPerBatch 매개 변수를 사용하여 지정됩니다.The number of generations in a batch is specified by using the–DownloadGenerationsPerBatch and –UploadGenerationsPerBatch parameters of the Merge Agent. 자세한 내용은 Replication Merge Agent을(를) 참조하세요.For more information, see Replication Merge Agent.

    데이터의 양이 많은 경우 각 일괄 처리 매개 변수에 작은 수를 지정하십시오.For large volumes of data, specify a small number for each of the batching parameters. 10부터 시작한 다음 응용 프로그램 요구 사항과 성능에 따라 조정하는 것이 좋습니다.We recommend that you start with a value of 10, and then tune based on application needs and performance. 일반적으로 이러한 매개 변수는 에이전트 프로필에 지정됩니다.Typically, these parameters are specified in an agent profile. 프로필에 대한 자세한 내용은 Replication Agent Profiles을 참조하십시오.For more information about profiles, see Replication Agent Profiles.

웹 동기화에 대한 최상의 보안 방법Security Best Practices for Web Synchronization

웹 동기화의 보안 관련 설정은 다양하게 지정할 수 있습니다.There are many choices for security-related settings in Web synchronization. 다음 방법을 사용하는 것이 좋습니다.We recommend the following approach:

  • SQL ServerSQL Server 배포자 및 게시자는 동일한 컴퓨터에 있을 수 있습니다. 이러한 설정은 병합 복제에 일반적입니다.The SQL ServerSQL Server Distributor and Publisher can be on the same computer (a typical setup for merge replication). 그러나 IIS는 서로 다른 컴퓨터에 설치되어 있어야 합니다.However, IIS should be installedon a separate computer.

  • SSL(Secure Sockets Layer)을 사용하여 IIS를 실행하는 컴퓨터와 구독자 간의 연결을 암호화합니다.Use Secure Sockets Layer (SSL) to encrypt the connection between the Subscriber and the computer running IIS. 이 작업은 웹 동기화에 필요합니다.This is required for Web synchronization.

  • 구독자에서 IIS로 연결할 때 기본 인증을 사용합니다.Use Basic Authentication for connections from the Subscriber to IIS. 기본 인증을 사용하면 IIS가 위임 없이 구독자를 대신하여 게시자/배포자에 연결할 수 있습니다.Using Basic Authentication, IIS can make connections to the Publisher/Distributor on behalf of the Subscriber without requiring delegation. 통합 인증을 사용하는 경우에는 위임이 필요합니다.Delegation is required if you use Integrated Authentication.

    참고

    기본 인증은 IIS로 자격 증명을 전달하는 방법입니다.Basic Authentication is the method by which credentials are passed to IIS. 기본 인증은 IIS에 대해 설정한 연결에 Windows 도메인 계정을 지정하는 작업을 방지하지 않습니다.Basic Authentication does not prevent specifying Windows domain accounts for connections that are made to IIS.

  • Windows 도메인 계정으로 스냅숏 에이전트를 실행 및 연결하도록 지정합니다.Specify that the Snapshot Agent should run under a Windows domain account, and specify that the agent should make connections as that account. 이것이 기본 구성입니다. 구독자 컴퓨터를 사용하는 사용자의 도메인 계정으로 각 병합 에이전트를 실행 및 연결하도록 지정합니다.(This is the default configuration.) Specify that each Merge Agent should run under the domain account of the user that uses the Subscriber computer, and specify that the agent should make connections as that account.

    에이전트에 필요한 사용 권한에 대한 자세한 내용은 Replication Agent Security Model을 참조하십시오.For more information about the permissions that are required by agents, see Replication Agent Security Model.

  • 새 구독 마법사의 웹 서버 정보 페이지에서 계정과 암호를 지정할 때 또는 @internet_url@internet_login@internet_login를 참조하십시오.Specify the same domain account as the one the Merge Agent uses when you specify an account and password on the Web Server Information page of the New Subscription Wizard or when you specify values for the @internet_url and @internet_login parameters of sp_addpullsubscription_agent. 이 계정에는 스냅숏 공유에 대한 읽기 권한이 있어야 합니다.This account must have read permissions for the snapshot share.

  • 각 게시는 IIS에 대해 서로 다른 가상 디렉터리를 사용해야 합니다.Each publication should use a separate virtual directory for IIS.

  • SQL ServerSQL Server 복제 수신기(Replisapi.dll)를 실행하는 계정은 동기화하는 동안 게시자 및 배포자에 연결되는 계정이기도 합니다.The account under which the SQL ServerSQL Server Replication Listener (Replisapi.dll) runs is also the account that will connect to the Publisher and Distributor during synchronization. 계정은 게시자 및 배포자의 SQL 로그인 계정에 매핑되어야 합니다.This account must be mapped to a SQL Login account on the Publisher and Distributor. 자세한 내용은 웹 동기화를 위한 IIS 구성에서 "SQL Server 복제 수신기에 대한 사용 권한 설정" 섹션을 참조하세요.For more information, see the "Setting Permissions for the SQL Server Replication Listener" section in the Configure IIS for Web Synchronization.

  • FTP를 사용하여 게시자에 있는 스냅숏을 IIS를 실행하는 컴퓨터로 배달할 수 있습니다.You can use FTP to deliver the snapshot from the Publisher to the computer that is running IIS. 스냅숏은 항상 IIS를 실행하는 컴퓨터에서 HTTPS를 사용하여 구독자로 배달됩니다.The snapshot is always delivered from the computer that is running IIS to the Subscriber by using HTTPS. 자세한 내용은 FTP를 통해 스냅숏 전송을 참조하세요.For more information, see Transfer Snapshots Through FTP.

  • 복제 토폴로지에 있는 서버에 방화벽이 설정되어 있는 경우 웹 동기화를 사용하기 위해 방화벽에서 포트를 열어야 할 수 있습니다.If servers in the replication topology are behind a firewall, you might need to open ports in the firewall to enable Web synchronization.

    • 구독자 컴퓨터는 SSL을 사용하는 HTTPS(일반적으로 포트 443을 사용하도록 구성)를 통해 IIS를 실행하는 컴퓨터에 연결합니다.The Subscriber computer connects to the computer that is running IIS over HTTPS using SSL, which is typically configured to use port 443. SQL Server CompactSQL Server Compact 구독자는 HTTP(일반적으로 포트 80을 사용하도록 구성)를 통해 연결할 수도 있습니다. Subscribers can also connect over HTTP, which is typically configured to use port 80.

    • IIS를 실행하는 컴퓨터는 일반적으로 포트 1433(기본 인스턴스)을 사용하여 게시자나 배포자에 연결합니다.The computer that is running IIS typically connects to the Publisher or Distributor using port 1433 (default instance). 다른 기본 인스턴스가 있는 서버에서 게시자나 배포자가 명명된 인스턴스인 경우 일반적으로 포트 1500을 사용하여 명명된 인스턴스에 연결합니다.When the Publisher or Distributor is a named instance on a server with another default instance, port 1500 is typically used to connect to the named instance.

    • IIS를 실행하는 컴퓨터가 방화벽에 의해 배포자와 분리되고 스냅숏 전달에 FTP 공유가 사용되는 경우 FTP에 사용되는 포트를 열어야 합니다.If the computer running IIS is separated from the Distributor by a firewall and an FTP share is used for snapshot delivery, the ports used for FTP must be opened. 자세한 내용은 FTP를 통해 스냅숏 전송을 참조하세요.For more information, see Transfer Snapshots Through FTP.

중요

방화벽의 포트를 열면 서버가 악의적인 공격에 노출될 수 있습니다.Opening ports in your firewall can leave your server exposed to malicious attacks. 포트를 열기 전에 방화벽 시스템을 잘 이해해야 합니다.Make sure that you understand firewall systems before you open ports. 자세한 내용은 Security Considerations for a SQL Server Installation을 참조하세요.For more information, see Security Considerations for a SQL Server Installation.

관련 항목:See Also

병합 복제에 대한 웹 동기화Web Synchronization for Merge Replication