SQL Server ベースのクラスター構成

Microsoft AppFabric 1.1 for Windows Server には、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 データベースの可用性を高めるための手順を実行することをお勧めします。1 つの方法としては、Microsoft Windows Server 2008 フェールオーバー クラスタリング (https://go.microsoft.com/fwlink/?LinkId=130692) を使用して、キャッシュ クラスター構成の保存場所として "クラスター化された" データベース リソースをホスティングします。

または、SQL Server のデータベース ミラーリングを使用します。詳細については、「SQL Server のデータベース ミラーリング (ADO.NET)」 (https://go.microsoft.com/fwlink/?LinkId=190691) を参照してください。データベース ミラーリングを使用するには、3 つの要件があることに注意してください。

  • Failover Partner プロパティを接続文字列に追加します。

  • 各キャッシュ ホストのコンピューター アカウントを SQL Server ログインとしてパートナー サーバーに追加します。たとえば、コンピューター名が Domain1 ドメインの CacheServer1 である場合、コンピューター アカウントは Domain1\CacheServer1$ です。プライマリ SQL Server の場合、これは自動的に行われますが、フェールオーバー パートナー サーバーについては手動で行う必要があります。

  • 各キャッシュ ホストのコンピューター アカウントを、パートナー サーバー上のミラー化された構成データベースにユーザーとして追加します。このユーザーは db_datareaderdb_datawriter のアクセス許可を持っている必要があります。

キャッシュ クラスターが既に構成されている場合は、Windows PowerShell コマンドを使用して接続文字列を手動で変更できます。各キャッシュ ホスト コンピューターで次の手順を実行します。

  1. Windows PowerShell コマンド ウィンドウを開き、Use-CacheCluster コマンドを実行します。

  2. Remove-CacheHost および Remove-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 のダウンロード」を参照してください。

ヒント

キャッシュ クラスター管理者は、フェールオーバー後に Windows PowerShell のキャッシュ コマンドを実行するために、キャッシュ クラスター構成ストア データベースに対する db_owner アクセス許可を持っている必要があります。

アクセス許可

すべてのキャッシュ ホストには、クラスター構成データベースをホストするデータベース サーバーへのログイン権限が必要です。また、クラスター構成データベースのセキュリティ設定が構成されていて、各キャッシュ サーバーに SQL Server ログイン、db_datareaderdb_datawriter、および EXECUTE の各アクセス許可が割り当てられている必要があります。

ヒント

これらのアクセス許可はインストール プログラムによって自動的に構成されます。インストールを実行するユーザーのセキュリティ ID には、SQL Server データベースに対する db_owner アクセス許可、および SQL Server インスタンスへの SQL Server ログイン権限が必要なことに注意してください。

キャッシュ構成データベースへのアクセスを管理するために Windows セキュリティ グループを作成する場合は、SQL Server ログオンとデータベース アクセス許可を一度設定するだけで済みます。たとえば、ClusterACacheServers という Windows セキュリティ グループを設定して、キャッシュ クラスター ClusterA の一部になることを許可されるキャッシュ サーバーを指定できます。

ClusterACacheServers セキュリティ グループを作成した後、該当するキャッシュ サーバーのドメイン コンピューター アカウントに、このグループのメンバーシップを付与します (たとえば domain\computername$)。次に、データベースに対する SQL Server ログイン、db_datawriterdb_datareaderEXECUTE の各アクセス許可を ClusterACacheServers セキュリティ グループに付与します。この設定の後、キャッシュ クラスターにサーバーを追加するときは、新しいサーバーのドメイン コンピューター アカウントをセキュリティ グループに追加するだけで済みます。

データベース構造

SQL Server ベースの構成オプションを使用して AppFabric キャッシュ機能を初めて構成するときに、構成ツールによって、指定したデータベースに多数のテーブルが作成されます。クラスターの内部操作用に追加されるいくつかのストアド プロシージャもあります。

ヒント

クラスター構成データベース内のデータは、手動による編集を想定していません。クラスターが確実に継続して動作するように、キャッシュ ホストとインストール プログラムだけがデータベースに書き込みを行うようにします。

データベース セキュリティ

接続文字列の一部としてパスワードを使用することは、セキュリティ リスクの典型であり、可能な限り避ける必要があります。接続文字列は、各キャッシュ サーバーのキャッシュ ホスト構成ファイル (DistributedCacheService.exe.config) にクリア テキストとして保存されます。このようなリスクを最小化するには、統合セキュリティを使用して SQL Server とセキュリティ接続を行います。この方法を使用すると、パスワードを接続文字列内に保存する必要がありません。統合セキュリティを使用しない場合、クリア テキストのパスワードが接続文字列内に必要になります。接続文字列をセキュリティで保護する最良の方法は次のとおりです (リスクの低いものから順に示します)。

  1. 統合セキュリティを使用します。

  2. 接続文字列をパスワードで保護し、接続文字列を知らせる範囲を最小限にします。

  3. すべての接続文字列の有効期限とタッチ ポイントを最小限にします。

データベース接続

SQL Server 2005 以降のデータベースを使用してクラスター構成設定を保存する場合は、クラスター内のすべてのキャッシュ ホストに対応した十分な同時接続を許可するようにサーバーが構成されていることを確認してください。クラスター内のキャッシュ ホストの数が、使用できる同時接続数を超えないようにする必要があります。

サーバーが同時接続数に制限を設けないように構成されている場合もありますが、管理または他の目的でデータベース管理者がその設定値を非常に小さく構成している場合もあります。その場合は、キャッシュ クラスターにキャッシュ ホストを追加する前に、サーバーが追加の接続数をサポートできることを確認してください。

関連項目

概念

共有フォルダー ベースのクラスター構成
クラスター構成の設定
キャッシュ クライアントの構成
キャッシュ クラスターの構成
キャッシュ クライアントを開発する

  2012-03-05