SQL Server 기반 클러스터 구성(Windows Server AppFabric 캐싱)

Windows Server AppFabric에서는 SQL Server 데이터베이스를 사용하여 클러스터 구성 설정을 저장하는 옵션을 제공합니다. AppFabric 구성 마법사는 클러스터 구성 관리를 위해 대상 데이터베이스를 자동으로 준비합니다. 그러면 AppFabric에서 캐시 클러스터, 캐시 호스트 및 명명된 캐시를 정의할 주 참조 지점으로 이 데이터베이스를 사용합니다. 클러스터에 포함된 모든 캐시 서버가 클러스터 구성 데이터베이스에 액세스할 수 있어야 합니다.

클러스터 구성 저장소 위치에 대해 SQL Server 데이터베이스를 준비하는 방법에 대한 자세한 내용은 Windows Server AppFabric 설치 가이드(https://go.microsoft.com/fwlink/?LinkId=169172)(영문)를 참조하십시오.

AppFabric 캐싱 기능을 구성하는 동안 기존 SQL Server 데이터베이스를 지정하거나 마법사가 지정한 SQL Server에 새 데이터베이스를 자동으로 만들도록 선택할 수 있습니다. 클러스터에 포함된 모든 캐시 서버가 클러스터 구성 데이터베이스에 액세스할 수 있어야 합니다.

기본적으로 AppFabric 캐싱 서비스는 자동으로 시작되지 않습니다. 대신 관리 Windows Powershell 명령 프롬프트에서 Start-CacheCluster 명령을 사용하여 서비스를 시작해야 합니다. 그러나 SQL Server가 구성 저장소에 사용되는 경우 각 캐시 호스트의 서비스를 자동으로 시작되도록 변경할 수 있습니다. 이렇게 하려면 각 캐시 서버의 서비스 관리자 도구에서 "AppFabric 캐싱 서비스"의 속성을 수정하여 시작 유형을 자동으로 변경합니다.

사용 가능성 고려 사항

클러스터 구성 저장소 위치는 분산 캐시 시스템의 단일 실패 지점이 될 수 있습니다. 이런 이유로 클러스터 구성 설정을 저장하는 SQL Server 데이터베이스의 사용 가능성을 높이는 단계를 수행하는 것이 좋습니다. 한 가지 옵션은 Microsoft Windows Server 2008 장애 조치 클러스터링(https://go.microsoft.com/fwlink/?LinkId=130692)(영문)을 사용하여 캐시 클러스터 구성 저장소 위치에 대해 "클러스터된" 데이터베이스 리소스를 호스트하는 것입니다.

다른 옵션은 SQL Server 데이터베이스 미러링을 사용하는 것입니다. 자세한 내용은 데이터베이스 미러링 사용(https://go.microsoft.com/fwlink/?LinkId=190691)을 참조하십시오. 데이터베이스 미러링을 사용하려면 다음과 같은 세 가지 작업을 수행해야 합니다.

  • 연결 문자열에 Failover Partner 속성을 추가합니다.

  • 파트너 서버에서 SQL Server 로그인 계정으로 각 캐시 호스트에 대한 컴퓨터 계정을 추가합니다. 예를 들어, Domain1 도메인에서 컴퓨터 이름이 CacheServer1이면 컴퓨터 계정은 Domain1\CacheServer1$입니다. 이 작업은 주 SQL Server에 대해서는 자동으로 수행되지만 장애 조치(Failover)용 파트너 서버에 대해서는 수동으로 수행해야 합니다.

  • 파트너 서버에서 미러링된 구성 데이터베이스의 사용자 계정으로 각 캐시 호스트에 대한 컴퓨터 계정을 추가합니다. 이 사용자는 db_datareaderdb_datawriter 권한이 있어야 합니다.

캐시 클러스터가 이미 구성되어 있는 경우 Windows PowerShell 명령을 사용하여 연결 문자열을 수동으로 수정할 수 있습니다. 각 캐시 호스트 컴퓨터에서 다음 단계를 수행합니다.

  1. Windows PowerShell 명령 창을 열고 Use-CacheCluster 명령을 실행합니다.

  2. Remove-CacheHostRemove-CacheAdmin 명령을 실행합니다.

  3. Add-CacheHost 명령을 실행하여 Failover Partner 속성이 있는 새 연결 문자열을 지정합니다. 예를 들면 다음과 같습니다.

    Add-CacheHost -Provider System.Data.SqlClient -ConnectionString "Data Source=SQLServer1;Initial Catalog=CacheClusterConfigurationDB;Integrated Security=True;Failover Partner=SQLServer2"  -Account "NT Authority\Network Service"
    
  4. Add-CacheAdmin 명령을 실행하여 Failover Partner 속성이 있는 새 연결 문자열을 지정합니다. 예를 들면 다음과 같습니다.

    Add-CacheAdmin -Provider System.Data.SqlClient -ConnectionString "Data Source=SQLServer1;Initial Catalog=CacheClusterConfigurationDB;Integrated Security=True;Failover Partner=SQLServer2"
    

ChangeConnString.ps1 스크립트를 다운로드하여 모든 캐시 호스트의 연결 문자열 변경을 자동화할 수 있습니다. 자세한 내용은 ChangeConnString.ps1 다운로드를 참조하십시오.

참고

캐시 클러스터 관리자는 장애 조치(failover) 후에 Windows PowerShell에서 캐싱 명령을 실행하려면 캐시 클러스터 구성 저장소 데이터베이스에 대한 db_owner 권한이 있어야 합니다.

사용 권한

모든 캐시 호스트에 클러스터 구성 데이터베이스를 호스트하는 데이터베이스 서버에 대한 로그온 권한이 있어야 합니다. 또한 각 캐시 서버에 데이터베이스에 대한 SQL Server 로그인, db_datareader, db_datawriterEXECUTE 권한이 있도록 클러스터 구성 데이터베이스에 보안 설정이 구성되어 있어야 합니다.

참고

설치 프로그램에서 자동으로 이러한 사용 권한을 구성합니다. 설치를 수행하는 사용자의 보안 ID에 SQL Server 데이터베이스에 대한 db_owner 권한과 SQL Server 인스턴스에 대한 SQL Server 로그인이 있어야 합니다.

Windows 보안 그룹을 만들어 캐시 구성 데이터베이스에 대한 액세스를 관리하는 경우 SQL Server 로그온 및 데이터베이스 사용 권한을 한 번만 설정하면 됩니다. 예를 들어, ClusterACacheServers라는 Windows 보안 그룹을 설정하여 캐시 클러스터 ClusterA의 구성원 권한을 가진 캐시 서버를 나타낼 수 있습니다.

ClusterACacheServers 보안 그룹을 만든 후 적용 가능한 캐시 서버의 도메인 컴퓨터 계정에 이 그룹의 구성원 자격을 부여합니다(예: domain\computername$). 그런 다음 ClusterACacheServers 보안 그룹에 데이터베이스에 대한 SQL Server 로그인, db_datawriter, db_datareaderEXECUTE 권한을 부여합니다. 이러한 설정 후에는 캐시 클러스터에 서버를 추가할 때마다 새 서버의 도메인 컴퓨터 계정만 보안 그룹에 추가하면 됩니다.

데이터베이스 구조

SQL Server 기반 구성 옵션을 사용하여 AppFabric 캐싱 기능을 처음으로 구성하는 경우 구성 도구는 지정한 데이터베이스에 많은 테이블을 만듭니다. 클러스터의 내부 작업을 위해 추가되는 일부 저장 프로시저도 있습니다.

참고

클러스터 구성 데이터베이스에 있는 데이터는 수동으로 편집할 수 없습니다. 클러스터가 계속 작동하도록 하려면 캐시 호스트와 설치 프로그램만 데이터베이스에 쓰기 작업을 수행해야 합니다.

데이터베이스 보안

연결 문자열에 암호를 사용하면 보안 위험이 발생하므로 가능한 한 암호를 사용하지 않도록 해야 합니다. 연결 문자열은 각 캐시 서버의 캐시 호스트 구성 파일 DistributedCacheService.exe.config에 일반 텍스트로 저장됩니다. 이러한 위험을 최소화하려면 통합 보안을 사용하여 SQL Server에 대해 신뢰할 수 있는 연결을 설정합니다. 이 방법을 사용하면 연결 문자열에 암호를 저장하지 않아도 됩니다. 통합 보안이 없는 경우 연결 문자열에 일반 텍스트 암호가 필요합니다. 연결 문자열의 보안을 설정하는 최상의 방법은 다음과 같으며 뒤로 갈수록 위험이 증가합니다.

  1. 통합 보안을 사용합니다.

  2. 암호를 사용하여 연결 문자열의 보안을 설정하고 연결 문자열 전달을 최소화합니다.

  3. 모든 연결 문자열에 대해 수명과 터치 포인트를 최소화합니다.

데이터베이스 연결

SQL Server 2005 이상 데이터베이스를 사용하여 클러스터 구성 설정을 저장하는 경우 클러스터의 모든 캐시 호스트를 수용하기에 충분한 동시 연결 수를 허용하도록 서버가 구성되어 있는지 확인합니다. 클러스터의 캐시 호스트 수가 사용 가능한 동시 연결 수를 초과할 수는 없습니다.

동시 연결 수가 제한되지 않도록 서버를 구성할 수 있지만, 데이터베이스 관리자가 관리상의 이유나 기타 이유로 해당 설정을 매우 낮게 구성할 수도 있습니다. 이 경우 캐시 클러스터에 캐시 호스트를 추가하기 전에 서버에서 추가 연결을 지원할 수 있는지 확인합니다.

참고 항목

개념

공유 폴더 기반 클러스터 구성(Windows Server AppFabric 캐싱)
클러스터 구성 설정(Windows Server AppFabric 캐싱)
클라이언트 구성 옵션(Windows Server AppFabric 캐싱)
캐시 클러스터 구성(Windows Server AppFabric 캐싱)
캐시 클라이언트 개발(Windows Server AppFabric 캐싱)

  2011-12-05