Windows Server AppFabric Web ファーム ガイド

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

AppFabric の小規模なインストールまたは開発環境内では、単一の AppFabric サーバーがあれば十分です。 この構成では、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 ファーム上に Windows Server AppFabric を正しくインストールおよび構成できるように支援することです。 IIS Web サーバーのファームの構成および負荷分散サーバーのクラスターの導入が済んでおり、各サーバーに Windows Server AppFabric のホスティングと管理をインストールおよび構成する準備が整っていることを想定しています。 最初に、Web ファームに AppFabric のホスティングと管理をインストールおよび構成するプロセスの概要について説明します。

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

Web ファームのインストールを正しく効率的に動作させるためのプロセスがあります。 このドキュメントでは、以下の手順を通じて、IIS が展開されているサーバーの Web ファームに、Windows Server AppFabric のホスティングと管理サービスを正しくインストールおよび構成できるようにします。

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

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

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

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

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

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

  • いずれかの AppFabric サーバーに対して構成の変更 (WCF のスロットル レベルの変更など) を行う。 次に、Web ファーム クラスターの他の AppFabric サーバーに対して、その変更を複製する必要があります。

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

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

このような種類の変更に関連する重要点について説明し、AppFabric の Web ファーム インストールで変更が発生したときに行う必要があることについて、おおまかに理解できるようにします。

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

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

AppFabric のセキュリティ モデル

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

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

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

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

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

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

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

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

このドメイン内の複数の AppFabric サーバー コンピューターで Windows Server AppFabric のホスティングと管理を構成する前に、ドメイン セキュリティを正しく構成する手順を次に示します。

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

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

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

Web ファーム セキュリティのベスト プラクティスは、ビルトイン アカウントまたはドメイン アカウントのどちらかを必要に応じて渡し、Windows プリンシパルを AppFabric コマンドレットに渡すことです。 たとえば、Web ファームでの初期 AppFabric サーバーの構成中に、Initialize-ASMonitoringSqlDatabase コマンドレットおよび Initialize-ASPersistenceSqlDatabase コマンドレットを実行できます。 このときに、ローカル アカウントではなく、ドメイン アカウントで渡します。

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

最初に、小規模な単一サーバーの Windows Server AppFabric のホスティングと管理のインストールで一般的に見られる、初期の典型的な構成から説明します。 初期の "基本サーバー" は、Web ファームの他のすべてのサーバーに対して、AppFabric のホスティングと管理の構成モデルとして機能します。 基本サーバーからは、Web ファームの他のすべてのサーバーに対して複製される IIS および AppFabric のホスティングと管理の基本構成が提供されます。 この構成では、すべての .NET Framework 4 WCF/WF サービスが AppFabric のホスティングと管理の 1 つのサーバーで管理されます。 永続化データベースおよび監視データベースは、SQL Server を実行している別のサーバー上に存在します。 複数のクライアントが AppFabric のホスティングと管理の 1 つの Web サーバーを通じて .NET Framework 4 WCF/WF サービスにアクセスします。

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

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

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

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

AppFabric のホスティングと管理のインストールが完了した後は、基本サーバーで AppFabric のホスティングと管理を構成できるようにする前に、SQL Serer を正しく構成する必要があります。

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 のホスティングと管理の構成

これで Windows Server AppFabric のホスティングと管理がインストールされ、SQL Server の準備が整ったので、AppFabric のホスティングと管理を構成できます。 単一の基本サーバーで AppFabric のホスティングと管理を構成するときは、AppFabric Windows PowerShell のコマンドレットまたは Windows Server AppFabric 構成ウィザードのどちらかを使用できます。 ただし、AppFabric のホスティングと管理を Web ファームの複数のサーバーにインストールするときは、個別のコンピューターで構成ウィザードを実行する必要があります。これには非常に時間がかかり、エラーが発生しやすくなります。 AppFabric Windows PowerShell のコマンドレットを使用してスクリプト ファイルを作成する方が、AppFabric を構成するためのより効率的な方法となります。 ただし、完全な情報を提供すると共に、AppFabric ユーザー インターフェイスとコマンドレット機能の間のリンクを示すために、両方の方法について説明します。

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

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

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

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

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

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

この手順では、負荷分散されたクラスターの既存の Web ファームを使用し、Windows Server AppFabric のホスティングと管理をインストールします。 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 ポリシーを構成し、インストール プログラムがイントラネットの共有から完全信頼で実行されるようにすることです。

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

    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 サーバーに個別に Windows Server AppFabric のホスティングと管理をインストールできます。 各サーバーのユーザー インターフェイスを通じて AppFabric インストール プログラムを実行する正当な理由がある場合もあります。 ただし、Web ファームでは、コマンド ラインから自動インストールを実行することをお勧めします。 これにより、Web ファームのすべてのサーバーが、インストール後に確実に同じ構成を持つようになります。 自動インストールでは、管理者がインストール プロセス中に手動の入力を行う必要はありません。 ただし、Web ファームで自動インストールを実行する場合、インストールの実行中は制御がコマンド ラインに戻ります。 完了するまではインストールが制御を返さないようにするには、cmd.exe の start /w コマンドを使用して、管理コマンド プロンプトから自動インストールを起動します。 AppFabric の自動インストールの詳細については、「自動インストール」を参照してください。

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

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

AppFabric 構成ウィザード

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

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

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

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

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

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

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

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

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

Windows Server AppFabric 構成ウィザードを使用した 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 のリモート構成

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

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

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

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

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

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

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

AppFabric 構成のスクリプト化

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

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

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

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

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

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

これらの操作を行う単一のサーバーで AppFabric のホスティングと管理を構成するスクリプトの例については、「AppFabric のスクリプト化された構成」を参照してください。 これを活用して、Web ファームとドメインに固有のカスタマイズされたインストール スクリプトを記述することができます。 このスクリプトの変更されたバージョンを複数回呼び出して、Web ファームの AppFabric のホスティングと管理サーバーを個別に構成できます。 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 ファームへの転送

Windows Server AppFabric のホスティングおよび管理システム ファイルのインストールと構成は、AppFabric Web ファームの設定プロセスの一部にしかすぎません。 負荷分散を正しく利用するには、AppFabric のホスティングと管理の初期サーバーで、IIS で構成された Web アプリケーションとサーバーを同じように複製します。 Web ファーム クラスターの一部としてレプリケートしているその他すべての AppFabric サーバー全体に、これらを転送する必要があります。 この作業は困難に思えますが、AppFabric を使用することで、実際には非常に単純に行うことができます。

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

Windows Server AppFabric は、Web 配置ツール (Web Deploy) を使用して、アプリケーションをインポートまたはエクスポートする IIS の既存の機能を利用します。 このテクノロジにより、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 管理対象アプリケーションの実行に使用されるアプリケーション プールのアカウント ID を変更します。 アカウント 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 構成の変更

Windows Server AppFabric のホスティングと管理の初期 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 アドレスを使用することを認識させるだけで済みます。

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

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

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

Windows Server AppFabric のキャッシュ機能

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

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 キャッシュ構成

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

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

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

最初に、Windows Server AppFabric のキャッシュ機能を使用して、クライアント モードでキャッシュ 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 キャッシュ)」を参照してください。

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

  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 のホスティングと管理を使用するように構成されていて、キャッシュ クラスターを使用している場合、そのアプリケーション プールの ID は、キャッシュ クラスターにアクセスできる必要があります。 アプリケーション プールが ASP.NET アプリケーションをホストしていて、AppFabric のホスティングと管理を使用していないかどうかや、AppFabric のホスティングと管理を使用するように構成された .NET Framework 4 WCF/WF サービスをホストしているかどうかは問題になりません。 これらの両方は IIS アプリケーション プールで実行されるので、キャッシュ クラスターにアクセスするための、そのプールの ID 用のアクセス許可が付与される必要があります。

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

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

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

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

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

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>

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

AppFabric スクリプト サンプル

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

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

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

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

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

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

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

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

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

まとめ

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

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

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

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

  2011-12-05