SharePoint 2010 トポロジ サービスの負荷分散についての追加情報

SharePoint 2010 トポロジ サービスの負荷分散についての追加情報

この投稿は、基本的に、Beside the Point ブログでの JoshGav による優れた投稿 (英語) ( http://blogs.msdn.com/b/besidethepoint/archive/2010/12/08/load-balancing-the-sharepoint-2010-topology-service.aspx) への補足です。 Josh が鋭く指摘しているように、トポロジ サービスの役割は別のサービス アプリケーション エンドポイントに対する要求の負荷分散です。しかし、サービス アプリケーションを他のファームに対して公開するときは、トポロジ サービス自体の負荷を分散するものが必要になります。 たとえば、別のサービス アプリケーションに接続するには、通常、 https://serverNetBiosName:32844/Topology/topology.svc のような URL を使用します。 この場合の問題は、当然のことですが、"serverNetBiosName" がダウンしてしまうと、プロキシが接続して必要なサービス エンドポイントの URL を取得できなくなることです。

ですから、何よりもまず、このトピックについての Josh のブログを読んでください。 私がここで追加する内容は、セットアップを行っているときに気付いたことについての補足事項です。 それを念頭に置いて、ここでは Josh が説明している 1 番目の方法を使用しました。これは、複数のサブジェクト代替名 (SAN) を持つ新しい SSL 証明書を作成し、それをファーム内の各サーバーに割り当てるというものです。 次に私が気付いた注意点を示します。

1. SAN をサポートする新しい SSL 証明書を作成する: サーバーごとに、SSL 用の新しい証明書を作成します。 これは 3 つの名前をサポートする必要があります。 つまり、localhost、サーバーの NetBIOS 名、そして負荷分散の対象として使用する名前です。 SharePoint の既定の動作として localhost と NetBIOS 名は含められるので、ここでも同じ方法に従って、追加の負荷分散名だけを追加します。

a. これをラボ環境でテストし、Active Directory 証明書サービスを使用して証明書を発行する場合は、SAN の名前付けをサポートするように構成できます。 証明書サービスを実行しているサーバーのコマンド プロンプトで、次のコマンドを実行します。

certutil –setreg policy\EditFlags +EDITF_ATTRIBUTESUBJECTALTNAME2

net stop certsvc

net start certsvc

 

1 行目を実行すると、その結果を示すフィードバックが返ります。

b. MMC を起動し、証明書テンプレート スナップインを追加します (これは Active Directory 証明書サービスを実行しているサーバーで行う必要があります)。 証明書テンプレート ノードをクリックして展開し、すべてのテンプレートを表示します。 下までスクロールして、Web サーバー テンプレートをダブルクリックします。 [セキュリティ] (Security) タブをクリックします。 [Authenticated Users] で、[許可] (Allow ) 列の [登録] (Enroll) の隣のチェック ボックスをオンにして、変更を保存します。 このようにしないと、以下の手順を実行できません。

c. AD 証明書サービスに SAN サポートを含む証明書を要求する詳細な手順については、 http://technet.microsoft.com/ja-jp/library/ff625722(WS.10).aspx (英語) の記事を参照してください。 ファームの Web アプリケーション サービスを実行しているすべてのサーバーでこれを行う必要があることを忘れないでください。

2. SharePoint Services Web App 用に SSL 証明書を変更する: PowerShell の簡単な PowerShell スクリプトを使用しましたが、基本的には Josh の投稿で示されているものです。 それをこの投稿に添付されている zip ファイルに入れてあります。 証明書の拇印を変更し、Web アプリケーション サービスを実行しているファーム内のすべてのサーバーでこれを実行する必要があります。 証明書の拇印を簡単に取得できるよう、GetThumbprints という名前の小さいツールを作成し、それもこの投稿に添付されている zip ファイルに入れてあります。 このツールは、マイ ストアおよび SharePoint ストアのローカル マシン証明書ストアを調べるだけです。 このツールを使用する場合は、前の手順 1. で作成した証明書をこれらのストアのいずれかに置いてください。

3. すべてのサーバーで負荷分散する名前の VIP を設定する: 他のサービスを負荷分散する場合と同様に、プール内のすべてのコンピューターで共有する仮想 IP が必要です。 負荷分散のソリューションにより、既存の VIP を使用できる場合と、新しい VIP を作成する必要がある場合があります。 使用する負荷分散ソリューションにはどちらが適しているかを判断し、必要に応じて新しい VIP を展開します。 この例では、既に Windows Server に付属するネットワーク負荷分散を使用してファームのコンテンツに対する要求を分散していたので、トポロジ サービスの分散にもその同じ VIP を使用しました。 つまり、この例では、Web フロント エンドだけが、公開されているサービス アプリケーションに対する要求を受け取ります。

4. 負荷分散する名前に対してロード バランサーと DNS を設定する: マルチサーバー ファームを使用している場合は、既に何らかの種類の負荷分散ソリューションがあるはずです。 ロード バランサーで、トポロジ サービス用の負荷分散する名前を設定します。 私の場合は既に使用していたので、やらなければならないことは、負荷分散するトポロジ サービス名に対する新しいエイリアス (A) レコードを DNS に作成することだけでした。これは、ファームへの Web 要求を負荷分散するために使用していたものと同じ VIP を設定したアドレスに対するものです。

5. SharePoint トポロジ サービスに負荷分散する URL を構成する: これは 2 つの手順で行うのが最善です。

a. 最初に、PowerShell で Get-SPTopologyServiceApplication を実行して、トポロジ サービスの情報を取得します。 これを実行すると、サービスの ID と、現在負荷分散されている URL が表示されます。

b. コマンド Set-SPTopologyServiceApplication -LoadBalancerUrl <負荷分散する名前> を実行します。これについては Josh の記事のヒントを参考にしてください。 コマンドを実行すると、トポロジ サービスの ID の指定を求められます。 前の手順で Get-SPTopologyServiceApplication を実行したときに表示された ID をここにコピーします。

6. サービス アプリケーションを公開する: ここでは特に追加する重要なことはありません。 何よりもまず注意しておくことは、「ファーム間でサービス アプリケーションを共有する」( http://technet.microsoft.com/ja-jp/library/ff621100.aspx) の記事で示されているすべての手順を実行することです。 既にファーム間でサービス アプリケーションを公開して使用している場合であっても、公開されているサービス アプリケーションの権限で少なくともリモート ファームにフル コントロールを許可してください。そうしないと、アクセス拒否エラーのメッセージが表示されます。

7. 公開されているサービス アプリケーションを使用する: 前の注意と同じこと以外に付け加えることはありません。つまり、記事に示されている手順に従ってください。

以上で問題なく動くようになるはずです。 最初に、検索サービス アプリケーションの公開と使用のような簡単に検証できるシナリオから始めることをお勧めします。 その後は簡単に、特定のドキュメントを返すことがわかっているクエリを実行し、それをサブスクライバー ファームに広げてみることができます。

最後にあらためて、Josh が公開してくれた記事に感謝します。すべては彼の記事に書かれていることであり、この記事では若干の詳細を肉付けしただけです。

これはローカライズされたブログ投稿です。原文の記事は、「Additional Info on Load Balancing the SharePoint 2010 Topology Service」をご覧ください。