AppFabric Web ファーム ガイド

Microsoft AppFabric 1.1 for Windows Server は、Windows プロセス アクティブ化サービス (WAS) を使用するインターネット インフォメーション サービス (IIS) 7.0 の拡張機能です。Microsoft AppFabric 1.1 for Windows Server の "ホスティングと管理" 機能によって、.NET Framework 4 Windows Communication Foundation (WCF) サービスおよび Windows Workflow (WF) サービスのより良いホスティングと管理が可能になります。AppFabric ホスティングと管理によって、これらのサービスに対する高度な管理と展開がサポートされ、サービスの構成の作業が単純化されます。Microsoft AppFabric 1.1 for Windows Server キャッシュ の特長である、高速のインメモリ キャッシュによって、.NET Framework および ASP.NET のアプリケーションのスケーラビリティが向上します。Microsoft AppFabric 1.1 for Windows Server のホスティング、管理、およびキャッシュ機能の詳細については、「Windows Server AppFabric」を参照してください。

AppFabric の小規模なインストールや開発環境では、AppFabric サーバーは 1 つあれば十分です。この構成では、SQL Server インスタンスも AppFabric と同じサーバー上に配置しても、ユーザーの処理ニーズを満たすことができます。ただし、より規模の大きい運用環境では、増大したユーザー負荷を処理できるように、複数の AppFabric サーバーを使用して Web ファームを作成することをお勧めします。負荷分散を行うと着信要求が分散されるので、着信メッセージの処理が複数のサーバーに分散されます。AppFabric サーバーの Web ファームを作成すると、一般的なフロントエンド ディスパッチャー上のハードウェア要素またはソフトウェア要素を使用して負荷分散ソリューションを実装することができます。たとえば、Windows Server 2008 Enterprise Edition に付属しているネットワーク負荷分散サービス (NLBS) のソフトウェア オプションを使用できます。NLBS の技術概要については、「ネットワーク負荷分散の技術概要」を参照してください。NLBS 構成の詳細な手順については、「ステップ バイ ステップ ガイド - Windows Server 2008 のターミナル サービスでネットワーク負荷分散を構成する」を参照してください。

Web ファームは各サーバーの負荷を減らしてパフォーマンスを向上させるだけでなく、可用性も高めます。Web ファームの 1 つのサーバーが無効になった場合 (メンテナンスのためにオフラインになったなど)、Web ファームの他のサーバーが引き継ぐので、オフラインになったサーバーをユーザーが認識することはありません。Web ファーム内のサーバーはリソースのプールを共有するので、リソースの競合によってパフォーマンスのボトルネックが発生する可能性が最小化されます。Windows Server 2008 の高パフォーマンス、高可用性、および負荷分散の詳細については、「高可能性」を参照してください。

このドキュメントのねらいは、既存の IIS Web ファーム上に Microsoft AppFabric 1.1 for Windows Server を正しくインストールして構成するための情報を提供することです。このドキュメントでは、既に IIS Web サーバーのファームが構成され、サーバーの負荷分散のクラスターが導入されている環境を想定しており、各サーバーに Microsoft AppFabric 1.1 for Windows Server ホスティングと管理をインストールして構成する準備が整っているものとします。最初に、AppFabric ホスティングと管理を Web ファームにインストールして構成するプロセスの概要について説明します。

Web ファームでの AppFabric のホスティングと管理のインストールと構成

Web ファームのインストールを正しく効率的に動作させるためのプロセスがあります。このドキュメントでは、次に示す手順に従って、IIS が既に展開されているサーバーの Web ファームに Microsoft AppFabric 1.1 for Windows Server ホスティングと管理のサービスを正しくインストールし、構成します。

  1. AppFabric ホスティングと管理の Web ファーム構成をサポートするように、ドメインのセキュリティを構成します。

  2. AppFabric ホスティングと管理の基本インストールを構成します。これは、2 台のコンピューターで構成されます。1 台は AppFabric ホスティングと管理に使用し、もう 1 台は SQL Server による永続化と監視のデータベースのホスティングに使用します。

  3. AppFabric ホスティングと管理を、Web ファームのすべてのサーバーにインストールします。

  4. Web ファームのすべてのサーバー上で、AppFabric ホスティングと管理の構成を行います。

  5. 既存のアプリケーションを、AppFabric ホスティングと管理の基本インストールから Web ファームのすべてのサーバーに複製します。

AppFabric ホスティングと管理を正しくインストールおよび構成した後も、変更に伴うメンテナンスが必要になることがあります。必要になることがある変更の例を、いくつか次に示します。

  • 構成の変更 (たとえば WCF のスロットル レベルの変更) を、AppFabric サーバーの 1 つに対して行う。この変更を、Web ファーム クラスター内の残りの AppFabric サーバーに複製する必要があります。

  • AppFabric サーバーの 1 つを Web ファーム クラスターから削除する。次に、Web ファームおよび代わりのサーバーが引き続き正しく機能することを確認する必要があります。

  • Microsoft AppFabric 1.1 for Windows Server キャッシュ機能を、アップグレードされた既存の ASP.NET アプリケーションに追加する。

このドキュメントでは、このような変更に関して注意が必要な点を説明します。これは、実際の AppFabric Web ファームで変更が発生したときにどのような変更が必要になるかを、概要レベルで理解できるようにするためです。

手順 1: ドメイン セキュリティの構成

Web ファームでの AppFabric の初期構成について説明する前に、その正しい構成にとって欠くことができない中心的な基本概念である、セキュリティについて説明します。複数の AppFabric サーバーを Web ファームとして使用するときのベスト プラクティスの 1 つとして、セキュリティの移行が挙げられます。つまり、1 台のコンピューターだけにインストールするときに作成される、ローカルのセキュリティ グループ AS_Administrators および AS_Observers Windows を、複数のコンピューターで使用できるように、対応するドメイン セキュリティ グループに移行します。Web ファーム サーバー上で AppFabric を適切に構成するには、事前にドメインのセキュリティ アカウントとグループを適切に構成しておく必要があります。AppFabric Windows セキュリティ グループの詳細については、「Windows セキュリティ」を参照してください。

AppFabric のセキュリティ モデル

AppFabric には、概念的に 3 つのセキュリティ ロールがあると考えると、AppFabric のセキュリティ モデルを理解しやすくなります。これらのロールは純粋に概念的なものであり、いずれの Web ファーム サーバーにも、これらの名前の付いた実体があるわけではありません。具体的には、これらの概念的なロールは、アクセスおよび機能の必要に応じて、実際の Windows セキュリティ グループおよび SQL Server データベース ロールに対応付けられて具現化されています。Web ファームのセキュリティ ソリューションを構築する際は、これらの概念的ロールのメンバーシップを決定します。

  • 管理者 – このロールでは、構成をすべて制御し、アプリケーションとサービスを使用し、監視データと永続化データにアクセスできます。イベント コレクション サービス (ECS) およびワークフロー管理サービス (WMS) の ID は、この概念的グループの一部です。通常、このカテゴリのセキュリティ ID はローカルの AS_Administrators Windows セキュリティ グループにマップします (ドメイン上にない場合)。

  • オブザーバー – このロールでは、監視データと永続化データを表示および列挙し、サービスとアプリケーションを使用できます。通常、このカテゴリのセキュリティ ID はローカルの AS_Observers セキュリティ グループにマップします (ドメイン上にない場合)。

  • ユーザー - このロールは、実行時に IIS によって使用されます。AppFabric サービスおよびアプリケーションをホスティングする IIS アプリケーション プールにセキュリティ アイデンティティを割り当てるのに使用されます。これにより、アプリケーションに含まれるサービスに対し、永続化データベース、監視データベース、およびシステム サービスへのアクセスが提供されます。一般的に、AppFabric サービスをホスティングする IIS アプリケーション プールに使用されるセキュリティ アイデンティティが、この概念的カテゴリにマッピングされます。

AppFabric のセキュリティ モデルの詳細については、「セキュリティと保護」を参照してください。

AppFabric のドメイン セキュリティ

前の項では、AppFabric のセキュリティ モデルについて説明しました。次に、AppFabric を Web ファーム上でサポートするようにセキュリティを設計する方法について説明します。サーバーが 1 台だけの場合に AppFabric のセットアップ時に作成されるローカル グループ AS_Administrators と AS_Observers は、複数の AppFabric サーバーから成る Web ファームには使用しないでください。Web ファームを保護するには、代わりにドメイン アカウントを使用します。AppFabric のインストールおよび構成のプログラムによってドメイン アカウントが自動的に作成されることはありません。したがって、Active Directory を使用して手動で作成する必要があります。このドメイン アカウントは、後で AppFabric の構成を行うときに指定します。

このドキュメント内では、一貫性を保つために、MyDomain という名前の架空の一般的なドメインを使用します。このドメイン内に、AppFabric 専用の、任意の名前のドメイン グループを作成します。ここでは、MyAppFabricDomainAdministrators、MyAppFabricDomainObservers、および MyAppFabricDomainUsers を作成します。MyAppFabricDomainAdministrator ユーザー アカウントは MyAppFabricDomainAdministrators グループの一部であり、MyAppFabricDomainUser ユーザー アカウントは MyAppFabricDomainUsers グループの一部です。

ドメイン セキュリティを正しく構成する手順を次に示します。これは、このドメイン内の複数の AppFabric サーバー コンピューター上で Microsoft AppFabric 1.1 for Windows Server ホスティングと管理の構成を行う前に実行する必要があります。

  1. AppFabric の概念的な各ロール (管理者、オブザーバー、ユーザー) を表すドメイン Windows セキュリティ グループを作成します。これらのグループに割り当てられたユーザーに、AppFabric の各概念的ロールに関連付けられた適切な特権を、ドメイン スコープ レベルで付与します。Active Directory ドメイン サービスでのグループの管理の詳細については、「グループの管理」を参照してください。

  2. これらのドメイン Windows セキュリティ グループを作成した後で、AppFabric の概念的ロールのメンバーシップに基づいて、ドメイン ユーザー アカウントを作成してセキュリティ グループに追加します。たとえば、MyDomain\MyAppFabricDomainAdministrator ユーザー アカウントを作成し、MyDomain\MyAppFabricDomainAdministrators グループに追加できます。Active Directory ドメイン サービスでのユーザーの管理の詳細については、「ユーザーの管理」を参照してください。

  3. Web ファーム内のさまざまなサーバーでイベント コレクション サービスおよびワークフロー管理サービスの実行に使用されるサービス ID は、MyDomain\MyAppFabricDomainAdministrators グループに含まれる必要があります。通常、これには MyDomain\MyAppFabricDomainAdministrator アカウントが含まれます。このグループのユーザーには "サービスとしてログオン" 権限を付与し、ドメイン内で適用する必要があります。この権限により、セキュリティ プリンシパルはサービスとしてログオンできます。別のユーザー アカウントで実行するすべてのサービスに、この権限を割り当てる必要があります。"サービスとしてログオン" 権限をアカウントに追加する方法の詳細については、「サービスとしてログオンする権利をアカウントに追加する」を参照してください。

Windows プリンシパルを AppFabric コマンドレットに渡す必要があるときは、ビルトイン アカウントまたはドメイン アカウントを渡すことをお勧めします。たとえば、Web ファームの最初の AppFabric サーバーを構成するときに、Initialize-ASMonitoringSqlDatabase コマンドレットおよび Initialize-ASPersistenceSqlDatabase コマンドレットを実行するとします。このときに、ローカル アカウントではなく、ドメイン アカウントで渡します。

手順 2: AppFabric の初期基本構成の設定

最初に、Microsoft AppFabric 1.1 for Windows Server ホスティングと管理を 1 台のサーバーだけにインストールする場合の一般的な初期構成について説明します。最初の "基本サーバー" は、AppFabric ホスティングと管理の構成モデルの役割を果たし、Web ファームの他のすべてのサーバーはこのモデルに従います。この基本サーバー上に設定された、IIS および AppFabric ホスティングと管理の基本構成が、Web ファーム内の他のすべてのサーバーに複製されます。この構成では、すべての .NET Framework 4 WCF/WF サービスが、AppFabric ホスティングと管理用の 1 台のサーバーで管理されます。永続化データベースおよび監視データベースは、SQL Server を実行している別のサーバー上に存在します。.NET Framework 4 WCF/WF サービスにアクセスするクライアントはすべて、同じ AppFabric ホスティングと管理 Web サーバー経由でアクセスします。

単一の Windows Server AppFabric インストール

基本構成での AppFabric ホスティングと管理の準備とインストール

Microsoft AppFabric 1.1 for Windows Server ホスティングと管理を、1 台の "基本サーバー" にインストールする必要があります。インストール前に、システムがすべての前提条件を満たしていることを確認してください。これには、.NET Framework version 4、重要な Windows の更新プログラム、および Windows PowerShell バージョン 2.0 のインストールが含まれます。インストールのためのコンピューターの準備の詳細については、「インストールのためのコンピューターを準備する」を参照してください。

このドキュメントでは、インストールおよび構成プロセスのすべての詳細については説明しません。Web ファーム上の AppFabric に関連する部分のみを説明します。インストールおよび構成プロセスの詳細については、「Windows Server AppFabric のインストール」および「Windows Server AppFabric をインストールおよび構成する」を参照してください。

AppFabric ホスティングと管理のインストールが完了した後で、SQL Serer を正しく構成する必要があります。SQL Serer が構成されていないと、基本サーバー上で AppFabric ホスティングと管理の構成を行うことはできません。

SQL Server の準備と初期化

AppFabric Web ファーム上で SQL Server の構成を行うには、最初にいくつかの準備作業が必要です。AppFabric に使用するための SQL Server の初期化と構成がまだ行われていない場合は、AppFabric 構成プログラムを実行する前に行う必要があります。SQL Server の準備方法は、SQL Server データベース内で付与されているデータベース アクセス権によって異なります。

ヒント

SQL Server は、専用のサーバー コンピューターにインストールしてください。これは、AppFabric や IIS との間でのシステム リソースの競合を避けるためです。SQL Server を実行しているコンピューターは、可用性を向上させるために、SQL Server のクラスタリングを使用してクラスター化することもできます。SQL Server のクラスタリングの詳細については、「SQL Server 2008 R2 フェールオーバー クラスタリングの概要」を参照してください。

現在のロールが SQL Server コンピューターの sysdamin ロールでなく、SQL Server のインストールに対する管理者レベルの完全な制御が与えられない場合は、続行する前に次の操作を行います。

  • データベース管理者 (DBA) に、空の AppFabric 監視データベースおよび永続化データベースの作成を依頼します。サーバーおよびデータベースの名前を記録します。これらの名前は、後で AppFabric の構成を実行するときに必要になります。

  • DBA には、必ず各データベースの dbcreator のロールにあなたを追加してもらいます。このロールに属していればデータベースを初期化できますが、sysadmin ロールのような完全なアクセス権が付与されるわけではありません。

基本構成での AppFabric ホスティングと管理の構成

Microsoft AppFabric 1.1 for Windows Server ホスティングと管理がインストールされ、SQL Server の準備が整ったので、次に AppFabric ホスティングと管理の構成を行います。AppFabric ホスティングと管理の構成を 1 台の基本サーバー上で行うときは、AppFabric Windows PowerShell のコマンドレットと Microsoft AppFabric 1.1 for Windows Server 構成ウィザードのどちらを使用してもかまいません。しかし、AppFabric ホスティングと管理を Web ファームの複数のサーバーにインストールするときは、個々のコンピューターで構成ウィザードを実行すると非常に時間がかかり、エラーも発生しやすくなります。AppFabric Windows PowerShell のコマンドレットを使用してスクリプト ファイルを作成する方が、AppFabric を構成する方法としては効率的です。ただしここでは、もれがないようにするために、および AppFabric ユーザー インターフェイスとコマンドレット機能の間のリンクを示すために、両方の方法について説明します。

Windows PowerShell コマンドレットを使用したデータベースの作成と初期化

最初に、データベースの初期化を AppFabric Windows PowerShell コマンドレットを使用して行う方法を説明します。使用する 2 つのコマンドレットは、Initialize-ASMonitoringSqlDatabase および Initialize-ASPersistenceSqlDatabase です。

  • Initialize-ASMonitoringSqlDatabase コマンドレット: Initialize-ASMonitoringSqlDatabase コマンドレットを実行すると、監視データベースがまだ存在しない場合はデータベースが作成されます。監視データベースが存在する場合、Admins、Readers、および Writers の各パラメーターに指定された 3 つのドメイン アカウント用のロールのメンバーシップが割り当てられます。Initialize-ASMonitoringSqlDatabase コマンドレットの実行例を次に示します。

    Initialize-ASMonitoringSqlDatabase 
    –Server “SQLServerComputer” 
    –Database “monitoringDB” 
    –Admins “MyDomain\MyAppFabricDomainAdministrators” 
    –Readers “MyDomain\MyAppFabricDomainObservers” 
    –Writers “MyDomain\MyAppFabricDomainUsers”
    

    このコマンドレットを実行すると、存在しない場合は monitoringDB 監視データベースが SQLServerComputer データベース サーバー上に作成されます。また、監視データベースのドメイン アカウント用の次のロールのメンバーシップが作成されます。

    ドメイン グループ monitoringDB ロールのメンバーシップ

    MyDomain\MyAppFabricDomainAdministrators

    ASMonitoringDBAdmin、ASMonitoringDBReader、および ASMonitoringDBWriter の各ロール

    MyDomain\MyAppFabricDomainObservers

    ASMonitoringDBReader ロール

    MyDomain\MyAppFabricDomainUsers

    ASMonitoringDBWriter ロール

  • Initialize-ASPersistenceSqlDatabase コマンドレット: Initialize-ASPersistenceSqlDatabase コマンドレットを実行すると、永続化データベースがまだ存在しない場合はデータベースが作成されます。永続化データベースが存在する場合、Admins、Readers、および Users の各パラメーターに指定された 3 つのドメイン アカウント用のロールのメンバーシップが割り当てられます。Initialize-ASPersistenceSqlDatabase コマンドレットの実行例を次に示します。

    Initialize-ASPersistenceSqlDatabase 
    -Server “SQLServerComputer”
    -Database “persistenceDB” 
    -Admins “MyDomain\MyAppFabricDomainAdministrators” 
    -Users “MyDomain\MyAppFabricDomainUsers”
    -Readers “MyDomain\MyAppFabricDomainObservers”
    

    このコマンドレットを実行すると、存在しない場合は persistenceDB 永続化データベースが SQLServerComputer データベース サーバー上に作成されます。また、永続化データベースのドメイン アカウント用の次のロールのメンバーシップが作成されます。

    ドメイン グループ persistenceDB ロールのメンバーシップ

    MyDomain\MyAppFabricDomainAdministrators

    Microsoft.ApplicationServer.DurableInstancing.WorkflowAdministrators、Microsoft.ApplicationServer.DurableInstancing.WorkflowManagementServerUsers、System.Activities.DurableInstancing.InstanceStoreObservers、System.Activities.DurableInstancing.InstanceStoreUsers、System.Activities.DurableInstancing.WorkflowActivationUsers の各ロール

    MyDomain\MyAppFabricDomainObservers

    System.Activities.DurableInstancing.InstanceStoreObservers ロール

    MyDomain\MyAppFabricDomainUsers

    System.Activities.DurableInstancing.InstanceStoreUsers ロール

これらの例で、persistenceDB および monitoringDB は SQL Server の各永続化データベースおよび監視データベースの任意に選択された名前です。これらの名前は、後で Web ファーム上の AppFabric ホスティングと管理の構成を行うときに使用する必要があります。

AppFabric のコマンドレットを使用してデータベースを作成および初期化する方法の詳細については、「Windows Server AppFabric コマンドレットを使用したデータベースの作成および初期化」を参照してください。これらのコマンドレットの構文の詳細については、「Initialize-ASMonitoringSqlDatabase」および「Initialize-ASPersistenceSqlDatabase」を参照してください。

AppFabric 構成ウィザードを使用したデータベースの作成と初期化

Windows PowerShell のコマンドレットとスクリプトを使用する代わりに、Microsoft AppFabric 1.1 for Windows Server 構成ウィザードを実行することもできます。この方法では、永続化データベースおよび監視データベースを作成し、データベース セキュリティを構成するためのユーザー インターフェイスが提供されます。監視データベースを構成するウィザードの 1 つのダイアログ ボックスを次に示します。永続化データベースの場合も、同様のダイアログ ボックスがあります。どちらのデータベースの場合でも、前に説明した各データベース初期化コマンドレットの場合と同じデータベースおよびドメイン グループのパラメーターを指定します。

インストールおよび構成プロセスの詳細については、「Windows Server AppFabric のインストール」および「Windows Server AppFabric をインストールおよび構成する」を参照してください。

[監視ストア構成] ダイアログ ボックス

手順 3: Web ファーム上での AppFabric のインストール

この手順では、負荷分散クラスター上の既存の Web ファームを使用して Microsoft AppFabric 1.1 for Windows Server ホスティングと管理をインストールします。AppFabric Web ファーム上で負荷分散を効果的に機能させるには、クライアントから見て、クラスター内のすべての AppFabric サーバー上の構成が同一であることが必要です。各クラスター サーバーには同じ .NET Framework 4 WCF/WF サービスが含まれていて、同じ構成設定を継承する必要があります。すべてのサーバーは、同じ SQL Server 監視データベースおよび永続化データベースを共有します。つまり、どのサーバーも、AppFabric ユーザー インターフェイスに表示される構成とデータは同じです。すべてのコンピューターが同じアプリケーション、構成、およびデータベースを保有しているので、どのコンピューターも、AppFabric ダッシュボードや関連する [追跡対象イベント]、[永続的な WF インスタンス]、および [追跡対象 WF インスタンス] の各ページに表示される監視メトリックは同一です。

AppFabric Web ファーム構成

大まかにいうと、この時点で、AppFabric の構成およびプログラム コードを、モデルである "基本サーバー" から、ファームの多数のサーバーに複製することが必要になります。一般的には、AppFabric インストール プログラムを、共通のネットワーク共有から実行します。ただし、これを行う場合は、構成されたコード アクセス セキュリティ (CAS) ポリシーに留意してください。

CAS ポリシーの構成

既定では CAS は無効になっているので、ご使用のネットワークでは、これは問題にはならない可能性があります。ただし、CAS 設定が有効になっていて、その中でイントラネットの共有からのコードの実行が禁止されている場合は、AppFabric のセットアップが異常終了します。この理由は、エラー メッセージを表示するコードを含め、どのようなコードも実行できないためです。そのため、プラットフォーム検証ロジックを使用して適切な CAS 設定を適用することはできません。

この問題の解決策は、次の CAS の例に示すように、CAS ポリシーを構成し、インストール プログラムがイントラネットの共有から完全信頼で実行されるようにすることです。

  • 次のコマンドは、コンピューター ポリシーの完全信頼のリストに Microsoft AppFabric 1.1 for Windows Server インストール アセンブリを追加します。

    caspol -computer -addfulltrust WindowsServerAppFabricSetup.exe

  • 次のコマンドは、共有 \\netserver\netshare にローカル イントラネットのアクセス許可を与える子コード グループを追加します。

    caspol -computer -addgroup 1. -url \\netserver\netshare\* LocalIntranet

CAS の構成に関する追加の詳細については、「.NET Framework 構成ツール (MSCORCFG.MSC)」および「コード アクセス セキュリティ ポリシー ツール (CASPOL.EXE)」を参照してください。

AppFabric のインストール

CAS ポリシーが正しく構成されたので、次に、新しい AppFabric サーバーのそれぞれに Microsoft AppFabric 1.1 for Windows Server ホスティングと管理をインストールします。AppFabric インストール プログラムを、個々のサーバー上でユーザー インターフェイス経由で実行するという方法もあります。ただし、Web ファームでは、コマンド ラインから自動インストールを実行することをお勧めします。これにより、Web ファームのすべてのサーバーが、インストール後に確実に同じ構成を持つようになります。自動インストールでは、管理者がインストール プロセス中に手動の入力を行う必要はありません。ただし、Web ファームで自動インストールを実行する場合、インストールの実行中は制御がコマンド ラインに戻ります。完了するまではインストールが制御を返さないようにするには、cmd.exe の start /w コマンドを使用して、管理コマンド プロンプトから自動インストールを起動します。AppFabric のインストールを自動化する方法の詳細については、「自動インストール」を参照してください。

手順 4: Web ファームでの AppFabric ホスティングと管理の構成

Microsoft AppFabric 1.1 for Windows Server ホスティングと管理のインストールが完了したら、次に AppFabric ホスティングと管理サーバーの構成を行います。この手順を行うには、Microsoft AppFabric 1.1 for Windows Server 構成ウィザード、Windows PowerShell スクリプト、またはリモート管理を使用します。

AppFabric 構成ウィザード

Microsoft AppFabric 1.1 for Windows Server 構成ウィザードを起動するには、[スタート] ボタンをクリックし、[Microsoft AppFabric 1.1 for Windows Server]、[AppFabric の構成] の順にクリックします。

IIS を使用して監視構成を設定するには

  1. [AppFabric イベント コレクション サービス アカウント] を MyDomain\MyDomainAdministrator に設定します。"サービスとしてログオン" 権限が与えられたことを示すメッセージが表示されます。

  2. [監視プロバイダー] の [構成] をクリックし、[AppFabric 監視ストアをルート Web.config に登録する] を選択します。監視データベースは既に初期化された状態で存在するので、[監視ストアを初期化する] を選択しないでください。これにより、[セキュリティ構成] のすべてのエントリが無効になります。これは、Administrators、Readers、および Writer の各ロールに対してドメイン アカウントが既に指定されているためです。

  3. [接続文字列] にはサーバーおよび監視データベースを指定し、[OK] をクリックします。

IIS を使用して永続化構成を設定するには

  1. [AppFabric ワークフロー管理サービス アカウント] を MyDomain\MyDomainAdministrator に設定します。"サービスとしてログオン" 権限が与えられたことを示すメッセージが表示されます。

  2. [永続化プロバイダー] の [構成] をクリックし、[AppFabric 永続化ストアをルート Web.config に登録する] を選択します。永続化データベースは既に初期化された状態で存在するので、[永続化ストアを初期化する] を選択しないでください。これにより、[セキュリティ構成] のすべてのエントリが無効になります。これは、Admins、Readers、および Writers の各ロールに対してドメイン アカウントが既に指定されているためです。

  3. [接続文字列] にはサーバーおよび永続化データベースを指定し、[OK] をクリックします。

Microsoft AppFabric 1.1 for Windows Server 構成ウィザードを使用して AppFabric を構成する方法の詳細については、「Windows Server AppFabric の構成」を参照してください。

非ドメイン アカウントを使用した場合は、AppFabric 構成ウィザードがドメイン コントローラー上で異常終了する可能性があります。イベント コレクション サービスおよびワークフロー管理サービス用のサービスごとの非ドメイン アカウントは、ドメイン コントローラーのドメイン管理者グループまたはオブザーバー グループに追加できません。Windows サービス セキュリティ ID (SID) は、Active Directory でサポートされているものよりも長くなっています。非ドメイン アカウントから SID を使用してストアを初期化しようとすると、Windows セキュリティ プリンシパルが無効であるというエラーになる可能性があります。この問題を解決するには、ドメイン アカウントを使用して AppFabric を構成し、"Active Directory サービス" ロールを "アプリケーション サーバー" ロールに関連付けます。手順は次のとおりです。

  1. イベント コレクション サービスとワークフロー管理サービスを、サービスごとのアカウントではなく、ドメイン アカウントで実行します。

  2. ECS および WMS サービスに使用されるドメイン アカウントを、作成したドメイン管理者グループ (MyDomain\MyAppFabricDomainAdministrators グループの MyDomain\MyAppFabricDomainAdministrator アカウントなど) に追加します。このアカウントは、関連する監視データベースまたは永続化データベースへの接続に使用されます。

  3. イベント コレクション サービスのアカウントを Performance Log Users グループに手動で追加します。これにより、イベント コレクション サービスで、Windows イベント トレーシング (ETW) セッションに対する読み取りまたは書き込みを行うことが可能になります。

AppFabric のリモート構成

Web ファーム上の別の IIS (AppFabric) サーバーの構成と管理を、インターネット インフォメーション サービス (IIS) マネージャーを使用してリモートで行うことができます。手順は次のとおりです。、

  1. 元のサーバーで、接続ウィンドウのスタート ページをクリックします。

  2. [サーバーに接続] をクリックし、[サーバー名] に入力して、接続の資格情報を入力します。

  3. 中央のウィンドウの [管理] セクションで、管理サービスのアイコンをクリックして、対応する名前のダイアログ ボックスを表示します。

  4. [リモート接続を有効にする] をオンにします。

  5. 両方のサーバーで WMSVC (IIS Web 管理サービス) が開始されていることを確認します。

リモート接続中は、[WCF サービスと WF サービスの管理] 内の [構成] をクリックすると、リモート管理者としてサーバーを構成できます。ただし、展開パッケージをインポートまたはエクスポートするための [展開] オプションにアクセスすることはできません。Microsoft AppFabric 1.1 for Windows Server のリモート管理の詳細については、「管理と保護」の「リモート管理」および「IIS マネージャーのリモート管理」を参照してください。

AppFabric 構成のスクリプト化

IIS を通じて実行される構成オプションは時間がかかり、人為的なエラーが発生しやすくなります。そのため、Microsoft AppFabric 1.1 for Windows Server の Web ファーム構成を管理するにはスクリプトを使用するのが一般的です。スクリプトを使用すると、作業の時間が短縮されるだけでなく、AppFabric の Web ファーム サーバーの大規模なグループでの変更作業の結果を統一することができます。スクリプトを使用すると、診断の問題が発生した場合に時間を節約することもできます。

Windows PowerShell 構成スクリプトを適切に作成すると、スクリプトの処理が終了したときに、追加された Web ファーム サーバー上で AppFabric ホスティングおよび管理が正しく構成された状態になります。このスクリプトの中では、Windows PowerShell のコア コマンドに加えて、AppFabric 固有のコマンドレットを呼び出すこともできます。AppFabric のコマンドレットを使用すると、IIS AppFabric UI で実行できるタスクのほとんどを、代わりに Windows PowerShell コマンドレットを使用して完了することができます。コマンドレットと、Windows PowerShell のコア コマンドや他のユーティリティ (IIS の APPCMD.EXE ユーティリティなど) とをうまく組み合わせると、Web ファームでの AppFabric ホスティングおよび管理の構成をスクリプトで実行することができます。作成する構成スクリプトでは、実際の Web ファームのインストールに固有のコマンドとパラメーターを指定します。ただし、プロセスのこの時点での構成スクリプトには、最低でも次の機能が含まれるのが一般的です。

  • セキュリティの管理と、ローカルの Administrators グループへのグループ メンバーシップ割り当てを、ADSI (Active Directory サービス インターフェイス) を使用して行います (「Active Directory サービス インターフェイス」を参照)。

  • 指定された .NET Framework 構成ファイルで IIS の appcmd ユーティリティを使用して、監視および永続化のための接続文字列の設定を追加または更新します。

  • SetServiceCredential を使用して ECS および WMS のサービス ID を構成します。

  • Set-ASAppMonitoring および Set-ASAppSqlServicePersistence を使用して、既定のビヘイビアーを作成し、永続化および監視の設定を構成します。

これらの操作を 1 台のサーバーで実行するように AppFabric ホスティングと管理を構成するためのスクリプトの例については、「AppFabric のスクリプト化された構成」を参照してください。これを活用して、Web ファームとドメインに固有のカスタマイズされたインストール スクリプトを記述することができます。このスクリプトを実際の環境に合わせて修正したものを繰り返し呼び出して、Web ファームの AppFabric ホスティングと管理サーバーを 1 台ずつ構成します。IIS 構成とクエリ ユーティリティの詳細については、「Appcmd.exe」を参照してください。

AppFabric Web ファームのすべてのサーバーで適切に動作するように構成スクリプトを作成するには、次のようにすることをお勧めします。

  • Windows リモート管理 (WinRM) 2.0 を使用して、リモート コンピューターでコマンドレットをリモートに実行するように Windows PowerShell を構成します。このためには、Windows リモート管理サービス (WinRM サービス) が、リモートの場所にある Windows PowerShell コンソールからの HTTPS 経由の WSMAN 要求をリッスンする必要があります。Windows リモート処理の詳細については、「Windows リモート管理について」を参照してください。

  • リモートの Windows PowerShell のケースでは、Windows PowerShell V2 RTM がクライアント コンピューターとリモート サーバー コンピューターの両方にインストールおよび実行されている必要があります。詳細については、「Windows PowerShell リモート処理の設定」を参照してください。

  • 同期中に変更されるすべてのコンピューターでは、ファイアウォール経由で World Wide Web サービス (HTTP) を許可する必要があります。データベースでリモート アクセスの準備ができていることを確認します。SQL Server を使用している場合は、「SQL Server のアクセスを許可するための Windows ファイアウォールの構成」を参照してください。

  • Web ファーム内のすべてのコンピューターはドメインの一部で、ファームの同期に使用するアカウントには、すべてのコンピューターでの管理者特権が必要です。

  • Web 配置ツールをリモートに使用している場合、その Remote Agent Service がすべてのコンピューターにインストールおよび実行されている必要があります。AppFabric の既定の設定では、Web 配置ツールはインストールされますが、Remote Agent Service は既定のインストールには含まれていません。コントロール パネルの [プログラムと機能] を使用して Remote Agent Service をインストールします。Web 配置ツールのインストールおよび構成の詳細については、「Web 配置ツールのインストール」を参照してください。

Windows PowerShell スクリプトの追加情報を参照できるリンクを次に示します。

手順 5: AppFabric アプリケーションの Web ファームへの転送

Microsoft AppFabric 1.1 for Windows Server ホスティングおよび管理のシステム ファイルをインストールして構成しただけでは、AppFabric Web ファームの設定プロセスは完了していません。負荷分散を適切に利用するには、IIS 内で構成されている Web アプリケーションとサービスをそのまま、最初の AppFabric ホスティングと管理サーバー上に複製する必要があります。これらのアプリケーションとサービスは、Web ファーム クラスターの一部としてレプリケートされる、他のすべての AppFabric サーバーに転送する必要があります。この作業には手間がかかるように思われますが、実際には AppFabric を通して非常に簡単に実行できます。

IIS の MSDEPLOY を使用したアプリケーション転送

Microsoft AppFabric 1.1 for Windows Server では、IIS の既存の機能を活用してアプリケーションのインポートやエクスポートを行うようになっており、このときに Web 配置ツール (Web Deploy) が使用されます。このテクノロジにより、IIS を通じて Web サーバーから展開エンティティが出し入れされます。このツールのコマンドライン バージョンが msdeploy.exe であり、Windows PowerShell スクリプトを使用して IIS マネージャーからアプリケーションをシームレスに展開することもできます。msdeploy.exe ツールでは、展開操作で必要なものをきめ細かく制御でき、展開が意図したとおりに行われないときはトラブルシューティング操作を実行できます。Web 配置ツールの使用方法の詳細については、「Web 配置ツール」および「Web Deploy」を参照してください。

AppFabric での展開エンティティのインポートおよびエクスポートには、Web Deploy に組み込まれている IIS マネージャーのアクションを使用します。エンティティをインポートまたはエクスポートできる対象は、個別のアプリケーション、Web サイト下のすべてのアプリケーション、または 1 つのサーバー下のすべての Web サイトです。アプリケーションのインポートとエクスポートの詳細については、「Windows Server AppFabric でのアプリケーションのインポートおよびエクスポート」を参照してください。Web 配置ツールを使用して、同期元のコンピューターと同期先のコンピューターの間で IIS 7.0 Web サイトを同期する方法の詳細については、「IIS 7 の同期」を参照してください。

IIS を使用したアプリケーションのエクスポート

ここでは、AppFabric Web ファームを作成しようとしているので、どのアプリケーション パッケージを他のサーバーにエクスポートするかを選択する必要があります。アプリケーションのパッケージをいったんエクスポートすれば、他の任意の Web ファーム サーバーは、そのパッケージをインポートすることで、同一構成の同じサービスをホストできるようになります。

基本サーバーの IIS マネージャー内の接続ウィンドウで、エクスポートのスコープを示すスコープ レベルを選択します。適切な [サーバー パッケージのエクスポート/アプリケーションのエクスポート] コマンドを選択します。ウィザードの操作では、最終出力パッケージ内でエクスポートするものを選択します。これにより、レジストリ設定、Web コンテンツ、SQL Server のデータベース情報とスクリプトなどの構成データを含むアプリケーション パッケージ (.zip ファイル) が作成されます。これらの情報はすべて、このパッケージを別の AppFabric サーバーに正常にインポートし、正しく動作するために必要な構成を再作成するために必要なものです。

IIS を使用したアプリケーションのインポート

エクスポート手順を実行する必要があるのは 1 回だけですが、インポート手順は Web ファームの AppFabric サーバーごとに実行します。サーバー間の整合性を維持するために、新しいサーバーでインポート手順を開始するときは、基本サーバーでパッケージのエクスポート元となったものと同じスコープを、IIS マネージャーの接続ウィンドウで選択します。インポート手順を開始するには、[サーバーまたはサイト パッケージのインポート] をクリックします。この手順が完了すると、新しいサーバーの IIS/AppFabric アプリケーションと設定は、基本サーバーと同じように構成された状態になります。

インポートが完了したら、新しいサーバーでの AppFabric 管理対象アプリケーションの実行に使用される、アプリケーション プールのアカウント アイデンティティを変更します。アカウント MyDomain\MyAppFabricDomainUser を使用するようにこの値を構成します。このアカウントは、永続化 SQL Server データベースおよび監視 SQL Server データベースにアクセスできる MyDomain\MyAppFabricDomainUsers グループのメンバーです。このアクセス権は、親ドメイン グループ MyDomain\MyAppFabricDomainUsers による特定のロールのメンバーシップから与えられます。

MSDEPLOY のスクリプトを使用したアプリケーション転送

msdeploy.exe をスクリプト化して、基本サーバーから Web ファームの他のサーバーにアプリケーションを転送できます。Web 配置ツール (msdeploy.exe) の構文の詳細については、「Web 配置ツール」を参照してください。

この構文を少し変更すると、Web 配置コマンドは Windows PowerShell プロンプトから実行できます。そのためには、Web 配置コマンドの動詞、source 引数、および dest 引数の後のコロン (:) を等号 (=) に変更します。次の例では、Web 配置コマンドを、その Windows PowerShell バージョンと比較します。Web 配置コマンドを次に示します。

MSDEPLOY -verb:sync -source:metakey=/lm/w3svc/1 -dest:metakey=/lm/w3svc/2 -verbose

Windows PowerShell 操作での同じ Web 配置コマンドを次に示します。

.\MSDEPLOY.exe -verb=sync -source=metakey=/lm/w3svc/1 -dest=metakey=/lm/w3svc/2 –verbose

手順のこの時点では Windows PowerShell を使用できますが、必須ではありません。AppFabric Windows PowerShell コマンドの強力な機能については、Web ファームの構成に関する次のセクションで説明します。

Web ファームでの AppFabric 構成の変更

Microsoft AppFabric 1.1 for Windows Server ホスティングと管理の初期 Web ファームを構成した後で、しばらくすると、AppFabric ホスティングと管理のすべてのサーバーで構成に変更を加えることが必要になります。発生する変更には、次のような例があります。

  • 管理者は、サービス レベルで WCF スロットル設定を変更する必要がある。サービス レベルで変更が行われると、個別のアプリケーションの Web.config ファイルが変更されます。

  • サーバー レベルで、そのサーバーのすべてのアプリケーションで使用される接続文字列を、別の監視データベース サーバーを参照するように更新する必要がある。コンピューター レベルで変更が行われると、ルート Web.config ファイルが変更されます。

構成変更の管理の詳細については、「AppFabric での構成プロセス」を参照してください。

構成変更のメカニズム

複数の変更を Web ファームに適用するには、すべての変更をすべてのコンピューターにまったく同じ方法で適用する必要があります。必要な変更がすべてスクリプト化されていれば簡単な作業です。スクリプト化されていない場合は、Web ファーム内のすべてのコンピューター上のすべての変更をどのように記録し再現するかという問題が生じます。すべての変更を 1 台のコンピューターに適用してから、Web ファーム全体に構成をレプリケートするという解決策もあります。1 つのサーバーからの構成変更が Web ファームの他のサーバーにミラー化されるようにするいくつかの選択を、次に示します。

  • クラスター内のすべてのコンピューターの名前を含む Windows PowerShell スクリプトを開発する。このコード内で、Web ファームの各コンピューターで適切な Windows PowerShell コマンドレットをループおよび起動し、スクリプト コードを通じてこの設定を変更できます。

  • XCOPY ユーティリティを使用して、1 つの基本サーバーから Web ファームの各サーバーに、変更された Web.config ファイルをコピーする。

  • msdeploy.exe を使用して、基本サーバーの適切なスコープ レベルから変更をエクスポートする。このコンテンツは、インストール パッケージ (.zip ファイル) 内のエクスポート処理中に作成されます。これは、初めて別の AppFabric ホスティングと管理クラスター コンピューターを Web ファームに追加するときの作業に似ています。次に、クラスターの各サーバーからインストール パッケージをインポートし、更新された構成設定を取得できます。Web 配置ツールを使用して、同期元のコンピューターと同期先のコンピューターの間で IIS 7.0 Web サイトを同期する方法の詳細については、「IIS 7 の同期」を参照してください。msdeploy.exe を使用して Web ファームのすべてのコンピューターをモデル コンピューターと同期する方法の例については、「Web ファームのすべてのコンピューターをモデル コンピューターと同期する」を参照してください。

ヒント

このドキュメントでは、構成変更の管理のための IIS 共有構成の使用については説明しません。この仕組みでは、すべてのコンピューターの構成情報が一元的に保持されている共有の共通ファイル ストアで、単一の構成ファイルが使用されます。複数のサイトやアプリケーションに影響するグローバルな変更が行われた場合、それらの変更により、すべてのアプリケーション ドメインが一度にリサイクルされます。多くの場合、これにより、Web ファーム クラスター全体が一時的に着信要求の処理から切り離されるという望ましくない副作用が生じます。

構成変更の推奨事項

Web ファーム内の AppFabric ホスティングと管理サーバーの構成を更新するときは、すべてのコンピューターを一度に更新するのではなく、何度かに分けて更新することをお勧めします。負荷分散する AppFabric ホスティングと管理クラスターのサーバーのうち、一部のみを一時的にクラスターから除外し、更新してからクラスターに戻し、次に他のサーバーを更新します。

変更を一貫した方法で行うには、複数のサーバーに対して同じスクリプトを実行します。たとえば、展開の場合、msdeploy.exe のすべてのコマンドを 1 つのスクリプト ファイル (scriptmsdeploy.cmd など) に配置し、別のスクリプト ファイル (scriptDriver.cmd) からそのスクリプト ファイルを呼び出すことが必要になります。2 番目のファイルでは、ループを数回反復処理して、Web ファームのサーバーごとに scriptsmsdeploy.cmd を起動します。ループ値を決定するには、次に示すように各サーバーの名前を 3 番目のファイル (appFabricServers.txt) にハードコードし、scriptDriver.cmd 内でその静的ファイルから各サーバー名を読み取ります。

for /f %%i in ('type appFabricServers.txt’) do
(start scriptDriver.cmd %%i %1)

一貫性のある変更を行うための少し複雑な方法は、SQL Server に対する問い合わせを実行して Web ファームの AppFabric サーバーの一覧を動的に取得することです。多くの AppFabric サーバーから成る大規模なファームを管理するときは、テキスト ファイルにサーバーの名前をハード コーディングすることが最善の解決策とは限りません。Web ファームの AppFabric サーバーの一覧を直接アプリケーション監視データから抽出し、その情報を使用して、Windows PowerShell コマンドをサーバーに対して実行するという方法があります。Web ファーム コンピューターを抽出し、Web ファームのアクティブなすべてのコンピューターで Windows PowerShell コマンドレットを実行する方法の例については、「複数のコンピューターでスロットルを構成する Windows PowerShell スクリプト」を参照してください。

Web ファームからの AppFabric サーバーの削除

AppFabric サーバーを Web ファームから物理的に削除することができます。Web サーバーを Web ファーム クラスターから削除した後で、AppFabric ホスティングと管理をアンインストールすることもできます。AppFabric ホスティングと管理の機能を使用していた Web アプリケーションが、それ以降も正しく動作するようにする必要があります。AppFabric のホスティングと管理機能をクライアントから削除するには 2 つの方法があるので、それぞれの方法について説明します。

Web ファームからの削除

クライアント可視性の観点からは、AppFabric サーバーを Web ファームから物理的に削除すると、そのサーバーを Web ファーム クラスターから論理的に削除したことになります。この時点で、サーバーはクラスターの負荷分散スキームの一部ではなくなります。ただし、その実際の IP アドレスを認識しているクライアントにとっては、まだ直接アクセス可能です。このシナリオが必要な場合、クライアントには Web ファーム クラスターの仮想 IP アドレスではなく、Web サーバーの実際の IP アドレスを使用することを認識させるだけで済みます。

AppFabric ホスティングと管理のサポートを Web アプリケーションから削除する

AppFabric ホスティングと管理サーバーを物理的に Web ファームから削除した後も、そのサーバーをドメイン上の Web サーバーとして機能させたい場合は、AppFabric のすべての痕跡をサーバーそのものから削除することが必要になります。AppFabric をアンインストールするには、AppFabric セットアップ ウィザード、またはコントロール パネルの [Application Server Extensions for .NET 4] を使用します。

AppFabric 固有の機能を使用するように初期構成された Web サーバー、サイト、アプリケーションは、Microsoft AppFabric 1.1 for Windows Server ホスティングと管理のアンインストール後は機能しなくなる可能性があることに注意してください。AppFabric ホスティングと管理をアンインストールした後に、アプリケーション構成のクリーンアップが必要になることがあります。このクリーンアップでは、スコープごとに applicationHost.config ファイルと Web.config ファイルを検索してクリーンアップします。AppFabric ダウンロード センターで入手できる AppFabric Uninstall Cleanup Utility を使用すると、作業を自動化できます。AppFabric をサーバーから適切にアンインストールする方法の詳細については、「機能の削除とアンインストール」、「Windows Server AppFabric アンインストール後のアプリケーションおよびクラスタリング構成のクリーンアップ」、および「Windows Server AppFabric の [機能の追加または削除] ウィザード UI」を参照してください。

Microsoft AppFabric 1.1 for Windows Server キャッシュ

Windows Server キャッシュ機能を AppFabric アーキテクチャ内で Web ファームに対して使用する場合は、その環境でキャッシュが正しく機能するようにするために、いくつかの手順を実行する必要があります。

AppFabric キャッシュ機能によって、.NET Framework 4 WCF/WF サービスのための高パフォーマンス分散キャッシュが作成されます。セッション内で情報を保存する ASP .NET アプリケーションに対して AppFabric キャッシュを使用するには、AppFabric キャッシュ サービスをインストールし、該当する構成ファイルに変更を加えます (後で説明します)。または、任意の .NET Framework 4 WCF/WF サービスで、AppFabric キャッシュ API を使用して、キャッシュからアイテムを格納および取得できます。これには、AppFabric ホスティングと管理を使用するように構成されている .NET Framework 4 WCF/WF サービスも含まれます。

AppFabric キャッシュ機能を使用するように構成された 1 台以上のサーバーによって、キャッシュ クラスターが構成されます。最も単純なクラスターは、AppFabric キャッシュ Windows サービスを実行する 1 台のサーバー (キャッシュ ホストと呼びます) だけで構成されます。ただし、通常は 1 つのキャッシュ クラスターを形成する多くのキャッシュ ホストで構成されます。物理的な名前付きキャッシュをサーバー間に分散させることができますが、クライアント アプリケーションには統合されたキャッシュ システムが提供されます。キャッシュ上のすべての操作は、キャッシュ クラスターを通じて単一の参照ポイントに仮想化されます。キャッシュのコンテンツは揮発性でキャッシュ ホスト サーバー上のメモリに格納されますが、キャッシュの作成後は、構成されたその定義は、SQL Server データベース、XML ファイル、またはカスタム構成ストアに保持され、サーバーが再起動しても継続します。次の図では、"Inventory" という名前付きキャッシュがキャッシュ クラスターの 3 台のコンピューターのメモリにまたがっていますが、キャッシュのコンシューマーに対しては単一の参照ポイントとして抽象化されます。

"Velocity" 論理モデル

AppFabric ホスティングと管理サーバーの Web ファームにおいて、AppFabric キャッシュ サービスを実行するサーバーはすべて、AppFabric ホスティングと管理サーバーの負荷分散クラスターの外に配置することをお勧めします。名前付きキャッシュが存在し、Web およびクライアント アプリケーションにキャッシュ クラスターへのアクセス権が付与されている場合、アプリケーションは名前付きキャッシュを使用できます。AppFabric Web ファームから名前付きキャッシュを使用する利点は、名前付きキャッシュ エンティティにアクセスするすべての .NET Framework 4 WCF/WF サービスがグローバル値にアクセスし、その単一の値には、名前付きキャッシュのすべてのクライアントがアクセスできることです。

次の図は、AppFabric キャッシュ サーバーを使用して ASP.NET セッション状態を格納する、負荷分散された AppFabric Web ファーム クラスターを示しています。このキャッシュ クラスターは、AppFabric ホスティングと管理 Web ファーム クラスターとは別の論理クラスターです。この図では、AppFabric キャッシュ サーバー クラスターのすべてのコンピューターが、SQL Server 構成ストアと Windows Server XML キャッシュ構成ストアのどちらかにアクセスしますが、両方のストアにはアクセスしません (ここには示されていませんが、カスタム プロバイダーを使用して、独自の場所で構成ストアを維持することもできます)。これらの恒久的な格納メカニズムは構成管理のみに使用されます。実際のキャッシュおよび関連データは、キャッシュ クラスター内の各 AppFabric キャッシュ サーバーのメモリに格納されます。

Windows AppFabric キャッシュ構成

キャッシュ クライアント アプリケーションは、Microsoft AppFabric 1.1 for Windows Server ホスティングと管理を使用するように構成されていなくても、AppFabric キャッシュを利用できます。たとえば、ASP.NET Web アプリケーションで AppFabric キャッシュ セッション状態プロバイダーを使用してセッション状態を保存するには、Web.config を使用して設定します。ただし、キャッシュ クライアントで AppFabric ホスティングと管理を使用することが理にかなっていれば、使用することができます。たとえば、キャッシュ クライアントが .NET Framework 4 WCF/WF サービスであり、Web ファーム上の AppFabric によってホスティングおよび管理される場合に、キャッシュ クライアント API を使用してキャッシュ クラスター上のキャッシュにアクセスすることができます。Web ファーム管理者は、キャッシュを正しく機能させるために、これらのそれぞれの状況における自分の役割について理解する必要があります。

Microsoft AppFabric 1.1 for Windows Server キャッシュ の詳細については、「Windows Server AppFabric のキャッシュ機能」を参照してください。

AppFabric Web ファームでのキャッシュの使用

最初の選択肢は、Microsoft AppFabric 1.1 for Windows Server キャッシュ機能を使用してアプリケーションを開発し、キャッシュ API をクライアント コードの中で使用するというものです。たとえば、WCF バンキング サービスが Web ファーム上の AppFabric ホスティングと管理を使用するように構成されているとします。このサービスのパフォーマンスは、操作データの一部を AppFabric キャッシュ クラスター上でキャッシュに格納するという方法で向上させることができます。キャッシュ設定はプログラムによって設定するか、構成ファイルで設定できます。どちらの場合も、キャッシュ クライアントがキャッシュにアクセスできるようになる前に、管理者はキャッシュの名前を識別して次の手順を実行する必要があります。

  1. Windows PowerShell で、Use-CacheCluster コマンドレットを使用してコンテキストをターゲット キャッシュ クラスターに設定します。この操作では、キャッシュ構成のセントラル ストア (XML ファイル、SQL データベースなど) に書き込みを行うので、実行時にキャッシュ サーバーを検索するには、クラスター内の 1 つのキャッシュ サーバーで変更を行うだけで済みます。

  2. New-Cache コマンドを使用して必要な名前付きキャッシュを作成します。この場合は、管理者は AppFabric キャッシュ API を使用するクライアントの開発者に、コードで使用されているキャッシュの名前を教えてもらう必要があります。

  3. Grant-CacheAllowedClientAccount コマンドを使用して、キャッシュ クライアントの Windows アカウントにアクセス権を付与します。

  4. Start-CacheCluster コマンドを使用してキャッシュ クラスターを起動します。

詳細については、「キャッシュ クライアント開発環境の準備 (Windows Server AppFabric キャッシュ)」を参照してください。

もう 1 つの選択肢は、Web ファーム内でホスティングされる ASP.NET Web アプリケーションで AppFabric キャッシュ セッション状態プロバイダーを使用して、アプリケーションのページのセッション状態を保存するというものです。この方法では、いずれのキャッシュ API も直接使用されず、キャッシュへのすべてのアクセスは Web.config ファイルのエントリを通じて管理されます。AppFabric キャッシュ機能をアプリケーションに追加するために管理者が実行するタスクを次に示します。

  1. New-Cache コマンドを使用して、アプリケーションによって使用される名前付きキャッシュを作成します。前に説明したように、この操作ではキャッシュ構成のセントラル ストア (XML ファイル、SQL データベースなど) に書き込みを行うので、実行時にキャッシュ サーバーを検索するには、クラスター内の 1 つのキャッシュ サーバーで変更を行うだけで済みます。管理者は、ASP.NET ページ (構成ファイル、またはアプリケーションの開発者の可能性もあります) からキャッシュ名を取得する必要があります。

  2. ASP.NET アプリケーションの Web.config ファイルの中で名前付きキャッシュが指定されていることと、AppFabric キャッシュ セッション状態プロバイダーが使用されていることを確認します。ASP.NET アプリケーションの開発者が既にこの作業を行っている可能性があります。

  3. ASP.NET アプリケーションをホストしているアプリケーション プールの ID が、キャッシュされたクラスターにアクセスできることを確認してください。これを完了するには、Grant-CacheAllowedClientAccount コマンドレットを実行します。

構成ファイル エントリのキャッシュの詳細については、後述の「ASP.NET セッション状態プロバイダー」セクションおよび「ASP.NET セッション状態プロバイダーの構成 (Windows Server AppFabric キャッシュ)」の「Web アプリケーションの AppFabric セッション状態プロバイダーを構成するには」を参照してください。

Web ファームのキャッシュ構成

前の項では、キャッシュの構成方法の概要を説明しました。次に、AppFabric ホスティングと管理 Web ファームへの具体的な適用方法を説明します。

アプリケーション プール ID

Web ファームの AppFabric サーバーからのキャッシュを使用する場合は、適切なアクセス権が付与されていることが重要です。.NET Framework 4 WCF/WF サービスを実行する IIS アプリケーションが、AppFabric ホスティングと管理を使用するように構成されていて、かつキャッシュ クラスターを使用する場合は、そのアプリケーション プールのアイデンティティにキャッシュ クラスターへのアクセス権が付与されている必要があります。アプリケーション プールが ASP.NET アプリケーションをホスティングしていて AppFabric ホスティングと管理を使用していないかどうかや、AppFabric ホスティングと管理を使用するように構成された .NET Framework 4 WCF/WF サービスをホスティングしているかどうかは問題になりません。これらの両方は IIS アプリケーション プールで実行されるので、キャッシュ クラスターにアクセスするための、そのプールの ID 用のアクセス許可が付与される必要があります。

インストールされている AppFabric アプリケーションが実行時に DefaultAppPool を使用する場合は、既定の設定ではアプリケーションは NETWORKSERVICE アカウントを使用して実行するように構成されます。このビルトイン アカウントにはローカル コンピューターでの最小限の特権があり、Domain\computer$ アカウントを使用してネットワーク上のコンピューターとして機能します。

Web ファームのすべての IIS/AppFabric ホスティングと管理サーバーから、キャッシュ サーバーにアクセスできるようにするための手順を次に示します。

  1. キャッシュ クラスター コンピューターの 1 台で、[スタート] ボタンをクリックし、[Microsoft AppFabric 1.1 for Windows Server]、[キャッシュ管理 Windows PowerShell] の順にクリックします。(管理ツール経由ではなく) この方法で Windows PowerShell にアクセスすると、自動的に Use-CacheCluster コマンドレットが実行されるので、その後のすべてのコマンドはそのクラスターに適用されます。コマンドレットを通じて AppFabric キャッシュ サービスを停止または開始する場合を除いて、このコマンドを管理者として実行する必要はありません。

  2. Get-CacheAllowedClientAccounts コマンドレットを実行して、クライアントとしてキャッシュ クラスターに接続できるアカウントを表示します。コンピューター アカウントの形式は DOMAIN\COMPUTERNAME$ です。付加されている "$" は、コンピューターのアカウント ID を意味し、コンピューター名と同じではありません。

  3. キャッシュ クラスターにアクセスするアプリケーション プールの ID には、Grant-CacheAllowedClientAccount を使用してアクセス権を付与する必要があります。NETWORKSERVICE アカウントを使用している場合は、IIS Web ファーム サーバーのコンピューター アカウントを、キャッシュ クラスターへのアクセスを許可されたクライアントの一覧に追加する必要があります。実行される ASP.NET アプリケーションまたは .NET Framework 4 WCF/WF サービスが、DefaultAppPool 以外のアプリケーション プールで AppFabric によって管理される場合は、そのアイデンティティにはクライアントとしてキャッシュにアクセスする権限が付与される必要があります。

ASP.NET セッション状態プロバイダー

このセクションは、ASP.NET ページから AppFabric キャッシュ セッション状態プロバイダーを使用する場合に適用されます。Web ファーム管理者は、AppFabric キャッシュ機能を使用するアプリケーション用の各 Web サーバーの構成ファイルで、すべてのキャッシュ クラスター サーバーが正しく参照されていることを確認する必要があります。具体的には、Web.config ファイルの <dataCacheClient><hosts> セクションで、各キャッシュ ホスト サーバーの <host> エントリがあることを確認します。構成ファイルの変更のキャッシュでは、いずれの .NET Framework コードも再コンパイルする必要はありません。

次の構成では、管理者は AppFabric キャッシュ クラスターの 3 つのサーバー用にエントリを追加しました。これによっても、キャッシュ サーバーの可用性が高まります。

<dataCacheClient>
  <hosts> 
       <host name="CacheServer1"  cachePort="22233"/>
       <host name="CacheServer2"  cachePort="22233"/>
       <host name="CacheServer3"  cachePort="22233"/>
  </hosts>
</dataCacheClient>

名前付きキャッシュ (ここでは "NamedCache1") が、AppFabric キャッシュ セッション状態プロバイダーの Web.config ファイルで指定される必要があります。

<sessionState mode="Custom" customProvider="AppFabricCacheSessionStoreProvider">
  <providers>
    <!-- specify the named cache for session data -->
    <add 
      name="AppFabricCacheSessionStoreProvider" 
      type="Microsoft.ApplicationServer.Caching.DataCacheSessionStoreProvider" 
      cacheName="NamedCache1"
     />
  </providers>
</sessionState>

ヒント

Microsoft AppFabric 1.1 for Windows Server では、セッション状態プロバイダーは Microsoft.Web.DistributedCache.DistributedCacheSessionStateStoreProvider 型として実装されていることに注意してください。詳細については、「AppFabric 1.1 用の ASP.NET 4 キャッシュ プロバイダーの使用」を参照してください。Windows Server AppFabric v1.0 については、「ASP.NET セッション状態プロバイダーの構成 (Windows Server AppFabric キャッシュ)」を参照してください。

AppFabric スクリプト サンプル

Microsoft AppFabric 1.1 for Windows Server のドキュメントには、AppFabric サーバーの Web ファームの管理に特に関係の深いサンプルが含まれています。ここでは、各サンプルの目的を要約し、実際のドキュメントへのリンクを示します。示されたリンクを使用してサンプルをダウンロードし、スクリプト ファイルを操作して概念を完全に理解することを強くお勧めします。AppFabric のサンプル パッケージは「Windows Server AppFabric サンプル」からダウンロードできます。これらのサンプルは任意のアプリケーションと組み合わせることができますが、AppFabric サンプルと共に使用するために作成された共通の Microsoft AppFabric 1.1 for Windows Server サンプル アプリケーションを使用することをお勧めします。

サンプル: 複数のコンピューターにスロットルを構成する Windows PowerShell スクリプト

このサンプルは、ファームに含まれる複数のコンピューターに対して、Windows PowerShell スクリプトを使用してサービス スロットルの既定値を構成するために必要な手順を示しています。このサンプルを編集して、AppFabric でアクセスできる他の設定を簡単に変更できます。また、ファームのコンピューターに関する情報を抽出する方法と、ファーム内のアクティブなすべてのコンピューター上で Windows PowerShell コマンドレットを実行する方法を示します。このサンプルの完全なドキュメントについては、「複数のコンピューターでスロットル設定を構成する Windows PowerShell スクリプト」を参照してください。

サンプル: スクリプト化された AppFabric の構成

このサンプルでは、リモート データベースへの接続に統合セキュリティ認証と共にドメイン アカウントを使用するように Microsoft AppFabric 1.1 for Windows Server を構成するために必要な一連の操作が示されています。このサンプルの完全なドキュメントについては、「AppFabric のスクリプト化された構成」を参照してください。

サンプル: Web ファームのすべてのコンピューターをモデル コンピューターと同期する

この例は、インターネット インフォメーション サービス (IIS) を実行する Web ファーム内のすべてのコンピューターのアプリケーション コンテンツと構成の両方を 1 つのモデル コンピューターで同期する方法を示しています。簡単な変更を行って、IIS のコンテンツと構成の一部のみ、たとえば 1 つのアプリケーションを同期できます。また、Web 配置ツール (Web Deploy) を使用して、1 台のサーバーのコンテンツおよび構成を Web ファーム内のすべてのコンピューターにレプリケートする方法を示しています。このサンプルの完全なドキュメントについては、「Web ファームのすべてのコンピューターをモデル コンピューターに同期する」を参照してください。

サンプル: Microsoft AppFabric 1.1 for Windows Server でのアプリケーションのインポートおよびエクスポート

このサンプルでは、AppFabric アプリケーションのインポートとエクスポートを示します。AppFabric は既存の IIS 機能を利用してアプリケーションのインポートまたはエクスポートを行い、msdeploy.exe (Web 配置ツールまたは Web 配置とも呼ばれます) テクノロジを使用して Web サーバーとの間でのエンティティの移動を行います。msdeploy.exe ツールを使用すると、IIS Manager や Visual Studio 2010 から、および Windows PowerShell スクリプトを使用して、アプリケーションをシームレスに展開できます。このサンプルの完全なドキュメントについては、「Windows Server AppFabric でのアプリケーションのインポートおよびエクスポート」を参照してください。

まとめ

Microsoft AppFabric 1.1 for Windows Server は IIS に基づいているので、Web ファームの概念によく一致します。概念的には、AppFabric のセキュリティは、Web ファームの AppFabric を構成する前にドメイン レベルで正しく構成される必要があります。Web ファームは、ソフトウェアまたはハードウェアのどちらかを使用して構成し、クラスター内の別のサーバーを使用して負荷を分散させることができます。SQL Server の永続化データベースおよび監視データベースへのアクセス権限には、SQL Server ロールのメンバーシップにマップする Windows ドメイン アカウントおよびグループが関連します。

Web ファームのすべてのサーバーで AppFabric のインストールを複製するプロセスには、msdeploy.exe を使用したアプリケーション パッケージのエクスポートとインポートが含まれます。AppFabric サーバーに対して変更が行われた場合、Web ファーム クラスターの他のすべてのサーバーに対してその変更が複製される必要があります。この操作は、Windows PowerShell スクリプト、XCOPY、または msdeploy.exe を使用したエクスポートとインポートを使用して行うことができます。構成が統一されていると、負荷分散クラスターのどのコンピューターが操作の実際の要求を受信するかとは無関係に、クライアント要求が常に同じ方法で処理されます。Microsoft AppFabric 1.1 for Windows Server サーバーをクライアントから認識できないようにするために削除するときは、それまで Microsoft AppFabric 1.1 for Windows Server ホスティングと管理を使用するように構成されていた既存の Web アプリケーションが、引き続き正しく機能するようにする必要があります。

Microsoft AppFabric 1.1 for Windows Server ホスティングと管理に加えて、AppFabric キャッシュ機能には、高パフォーマンスのキャッシュ機能による解決策が存在します。これは ASP.NET アプリケーションが使用し、セッション状態をより効果的に保存することができます。その API は .NET Framework 4 WCF/WF サービス コードから直接使用することもできます。Web ファームでは、キャッシュ機能による解決策を正しく機能させるために管理者が完了する必要がある、特定の構成およびセキュリティ タスクがあります。

管理者は管理スクリプト ファイルを開発および維持して、その義務を効率的に一貫して履行する必要があります。AppFabric Windows PowerShell コマンドレットにより、AppFabric ユーザー インターフェイスで実行できるほとんどすべてのことは、AppFabric ホスティングと管理およびキャッシュ機能のコマンドレットを使用して実行できます。SQL Server の監視データベース、永続化データベースの初期化など、AppFabric のコマンドレットを使用しないと実行できないタスクもいくつかあります。ここでは、一般的ないくつかのガイドラインと、AppFabric サーバー構成を Web ファームの他のサーバーとすばやく同期するために変更できる 4 つの具体的なサンプルを示しました。

  2012-03-05