サンドボックス ソリューションを計画する (SharePoint Foundation 2010)
適用先: SharePoint Foundation 2010
Microsoft SharePoint Foundation 2010 のサンドボックス ソリューションでは、セキュリティと安定性を向上させるために、ネットワーク リソースとローカル リソースへのアクセスが制限されます。負荷分散ソリューション、テストが完全でないソリューション、およびホスト環境へのユーザー ソリューションの展開に、サンドボックス ソリューションを使用できます。サンドボックス ソリューションは個別のワーカー プロセスで実行されるので、他のソリューションに属するリソースにアクセスできず、ローカル リソースおよびネットワーク リソースへのアクセスが制限されます。
サンドボックス ソリューションを計画するときは、最初にそもそもサンドボックス ソリューションを使用するかどうかを決定します。最優先の考慮事項がパフォーマンスかセキュリティかを判断する必要があります。サンドボックス ソリューションを使用するファームでは、使用しないファームより、多くのワーカー プロセスとプロキシ プロセスが生成されます。サンドボックス ソリューションを使用するとプロセスの分離が促進され、ファームのセキュリティが向上します。
サンドボックス ソリューションの詳細については、「サンドボックス ソリューションの概要 (SharePoint Foundation 2010)」および「Sandboxed Solutions (英語)」(https://go.microsoft.com/fwlink/?linkid=220257&clcid=0x411) (英語) を参照してください。
この記事の内容
サンドボックス ソリューションを使用する状況を決定する
サンドボックス ソリューション コードの負荷分散を計画する
サンドボックス ソリューションを展開する場所を決定する
サンドボックス ソリューションを展開できるユーザーを決定する
サンドボックス ソリューションを実行するサイト コレクションを決定する
サンドボックス ソリューションのリソース配分状況クォータを計画する
サンドボックス ソリューション サービスの層を計画する
サンドボックス ソリューションのガバナンスを計画する
サンドボックス ソリューションを使用する状況を決定する
サンドボックス ソリューションが適しているのは、ソリューションを複数のサーバーに負荷分散するシナリオや、完全にテストされていないコードまたは組織がサポートしていないコードを実行できるようにするシナリオです。サンドボックス ソリューションは、組織内の開発者に対するテスト環境から運用環境内のサンドボックス ソリューションまでの拡張された展開パスにおいて、重要な役割を果たす場合があります。ソリューションを完全に展開しても安全であることが確認されたら、ファーム管理者は後でサンドボックス ソリューションを完全に信頼される状態に変更できます。
次の状況では、サンドボックス ソリューションの使用が特に適切です。
複数の SharePoint Foundation サーバー間にソリューションを負荷分散する場合。
組織が SharePoint Foundation 運用サイトで従業員向けにコードを実行する予定で、そのコードが厳密なコード レビューとテストを受けていない場合。
インターネット ホスティング プロバイダーがホスティングされた SharePoint Foundation サイトの所有者にカスタム コードのアップロードと実行を許可する場合。
サンドボックス ソリューションを使用するときは、サンドボックス ソリューションを実行する各サーバーでサンドボックス ソリューション サービスを開始する必要があります。
サンドボックス ソリューション コードの負荷分散を計画する
サンドボックス ソリューションに対しては 2 種類の負荷分散方式のどちらかを選択できます。使用する負荷分散方式に基づいて、Microsoft SharePoint Foundation 2010 はソリューションを実行するサーバーを決定します。ローカルな負荷分散の場合、ソリューションは要求を受け取るのと同じサーバーで実行されます。リモート負荷分散を選択した場合は、ソリューションを実行するサーバーはソリューションのアフィニティに基づいて選択され、サンドボックス ソリューションは既に読み込まれて実行されたことのあるサーバーで実行されます。これにより、ソリューションに対する要求に対応する時間が節約されます。どちらの場合も、サンドボックス ソリューションをホストする各サーバーではサンドボックス ソリューション サービスが実行されている必要があります。
負荷分散方式の選択により、SharePoint Foundation ファーム全体で使用されるモデルが決まります。ローカルとリモートの負荷分散を混合して使用することはできず、どちらか一方の実装を選択する必要があります。実装するモードを決定するときは、次の点を考慮する必要があります。
ローカル モードでは、必要な管理は減りますが、拡張性はローカル サーバーのリソースによって制限されます。
リモート モードは、ローカル モードより拡張性に優れています。ただし、より多くのサーバーで管理作業を実行する必要があります。
サンドボックス ソリューションを実行するサーバーが複数ある SharePoint Foundation ファームでは、リモート負荷分散モデルを使用するとパフォーマンスが向上します。サンドボックス ソリューションを開発プロセスの一部として使用し、それが呼び出されるサーバーに制限する場合は、ローカル モードの負荷分散を使用します。
詳細については、「サンドボックス ソリューションの概要 (SharePoint Foundation 2010)」を参照してください。
サンドボックス ソリューションを展開する場所を決定する
サンドボックス ソリューションは、サイト コレクションのルートに展開されます。サイト コレクション管理者であればだれでも、サンドボックス ソリューションを展開できます。サイト コレクションに展開したサンドボックス ソリューションは、そのサイト コレクション内のどこからでも使用できます。
サンドボックス ソリューションは、SharePoint Foundation ファーム内の特定のサーバーだけで実行することも、すべてのサーバーで実行することもできます。サーバーでサンドボックス ソリューションを有効にするには、サンドボックス ソリューション サービスを有効にする必要があります。このサービスは、サンドボックス ソリューションを実行するサーバーごとに有効にする必要があります。
サンドボックス ソリューションを展開できるユーザーを決定する
サンドボックス ソリューションの展開に関係するユーザー ロールを計画するときは、ソリューションを展開できるユーザーおよびソリューションを管理できるユーザーを決定する必要があります。Site Collection Administrators グループのメンバーは、サンドボックス ソリューションを展開できます。
サンドボックス ソリューション サービスの有効化または無効化、ソリューションのブロックまたはブロック解除、クォータとクォータ テンプレートの調節またはリセットなどの管理作業を実行するには、Farm Administrators グループのメンバーである必要があります。
注意
サンドボックス ソリューションを展開および有効化するには、サイト コレクションの所有者では不十分であり、サンドボックス ソリューションを展開するサイト コレクションの Site Collection Administrator である必要があります。
Farm Administrators はファームのどこにでも展開できる完全に信頼されたソリューションにサンドボックス ソリューションを変更できるので、Farm Administrators グループのメンバーシップが適切なユーザーに限定されるように注意する必要があります。展開するサンドボックス ソリューションのセキュリティが重要な場合は、Site Collection Administrators グループへのユーザーの追加に関しても、同じ考慮事項が当てはまります。
クォータを使用してサンドボックス ソリューションを実行するサイト コレクションを決定する
クォータを調節することにより、特定のサイト コレクションでサンドボックス ソリューションを有効または無効にできます。特定のサイト コレクションでサンドボックス ソリューション用のクォータを 0 に設定すると、そのサイト コレクションではサンドボックス コレクションが実行しなくなります。このようにして、ファームでのサンドボックス ソリューションの使用を微調整できます。
サンドボックス ソリューションの展開場所を計画するには、次の点を考慮する必要があります。
どのサーバーがサンドボックス ソリューション サービスを実行するか。
どのサイト コレクションがサンドボックス ソリューションを実行できるか。
一部のサイト コレクションでサンドボックス ソリューションを有効にする場合は、他のサイト コレクションでは、クォータを 0 に設定することでサンドボックス ソリューションを無効にする必要があります。
サンドボックス ソリューションのリソース配分状況クォータを計画する
サンドボックス ソリューションは、既定のクォータに基づいてリソースの使用状況を監視されます。監視は、サイト コレクションごとに行われます。サンドボックス ソリューションがリソース ポイントの累積合計を超えた場合、そのサイト コレクション内のすべてのサンドボックス ソリューションは、その日の終わりまで無効になります。これによって、特定のサンドボックス ソリューションが共有リソースを過剰に要求していることや、場合によっては、多くのリソースを使用するサンドボックス ソリューションが含まれるサイト コレクションに対してクォータを増やす必要があることを把握できます。
リソース ポイントは、サンドボックス ソリューションの実行時にサイト コレクション全体に対して生成されます。クォータ内のリソース メジャーを閲覧すると、ポイントごとのリソース数が表示されます。これらは、リソース ポイントが 1 つ生成されるまでに特定のリソースを使用できる回数です。リソースの使用回数が ResourcePerPoint プロパティで指定された上限に達すると、サイト コレクションによってリソース ポイントが生成されます。リソース ポイントの累積値がサイト コレクションのクォータを超えると、そのサイト コレクション内のすべてのサンドボックス ソリューションはその日の終わりまで無効になります。
既定のリソース ポイントの上限はほとんどのシナリオに対して十分な値になっています。ただし、リソース ポイントの個別の上限は調整でき、状況に応じて増やせます。リソース ポイントの個別の上限を調整する方法の詳細については、「サンドボックス ソリューションのリソース ポイントを構成する (SharePoint Foundation 2010)」を参照してください。
サンドボックス ソリューションのクォータを計画する場合は、次の質問を検討する必要があります。
特定のリソース メジャー カテゴリに対してポイントごとのリソースを調整するのか。
リソース制限は、すべてのサンドボックス ソリューションに対して定義できます。一部のシナリオでは、リソースの不適切な使用または過剰消費により敏感な特定のリソース (既にプロセッサの負担が大きくなっているサーバーの CPU サイクルなど) を制限することが有効な場合があります。リソース制限を調整すると、リソースを過剰に使用する可能性があるサンドボックス ソリューションに制約を与えることができます。サンドボックス ソリューションのクォータによって監視されているリソースのリストを調査し、調整が必要かどうかを判断する必要があります。
リソース カテゴリの絶対制限を調整するか
絶対制限とは、要求ごとのリソース消費量の上限または下限を指定するものであり、この制限値に達すると要求は停止されます。特定のリソース カテゴリが過度に消費されて絶対制限に達すると、サンドボックス ソリューションは停止されます。それぞれのリソース カテゴリを評価して絶対制限の増減が必要ないか確認してください。
個別のリソース メジャーの一覧、および各リソースの最小しきい値、絶対制限、ポイントごとのリソース数については、「SharePoint 2010 のサンドボックス ソリューションのリソース使用率制限」(https://go.microsoft.com/fwlink/?linkid=217149&clcid=0x411) を参照してください。特定のリソース メジャーの絶対制限およびポイントごとのリソース数を構成する方法については、「サンドボックス ソリューションのリソース ポイントを構成する (SharePoint Foundation 2010)」を参照してください。
サンドボックス ソリューション サービスの層を計画する
サンドボックス ソリューションは、平均消費リソース数に基づいて、サンドボックス ソリューション サービス内の "層" にグループ化できます。サンドボックス ソリューション サービス内の 1 つの層には、サンドボックス ソリューションを実行する 1 つ以上のワーカー プロセスが含まれす。各サンドボックス ソリューションはそれぞれのアプリケーション ドメインで実行され、そのソリューションが呼び出されるときに同じドメインが再利用されます。既定では、サンドボックス ソリューション サービス内のすべてのソリューションが 1 つの層で実行されます。パフォーマンス、セキュリティ、および信頼性の向上を目的として、ソリューションを分離する追加の層およびワーカー プロセスをサンドボックス ソリューション サービス内に構成することもできます。サンドボックス ソリューションは、リソース消費量に基づいて追加の層に自動的に分離されます。層の詳細については、「サンドボックス ソリューションの概要 (SharePoint Foundation 2010)」および「Sandbox Tiers (英語)」(https://go.microsoft.com/fwlink/?linkid=217145&clcid=0x411) (英語) を参照してください。
必要に応じて、無制限の数の層、ワーカー プロセス、接続、およびアプリケーション ドメインを構成できます。ただし、層の数が過度に多いと SharePoint Foundation サーバーのパフォーマンスに悪影響を及ぼします。サンドボックス ソリューション サービスを計画するときは、次の点を検討してください。
作成する層の数
複数の層を構成すると、"動作良好" なサンドボックス ソリューションと、頻繁にクラッシュしたり、大量にリソースを消費したりする "動作不良" のサンドボックス ソリューションを分離できます。サンドボックス ソリューションを別の層で実行することによって、動作良好なサンドボックス ソリューションが動作不良のサンドボックス ソリューションから受ける影響を軽減できます。その結果、システムの安定性と応答性が向上します。一般に、サンドボックス ソリューションを分離する層は、2 ~ 3 個以内で十分です。
各層に設定するワーカー プロセスの数
特定の層で同時に実行されるサンドボックス ソリューションの最大数は、次の数式で計算できます。
層内のワーカー プロセスの数 × プロセスごとの最大接続数 = 1 つの層で同時に実行されるサンドボックス ソリューションの最大数
層で実行されるワーカー プロセスの数を増やすように構成して、ファーム内で同時に実行されるサンドボックス ソリューションの数を増やすことができます。ワーカー プロセスの数を増やすとサーバーのスループットは増加しますが、限度があります。ワーカー プロセスが多くなると、そのオーバーヘッドでサーバー全体のスループットが低下することもあるので、1 つのサーバーのすべての層のワーカー プロセスの合計が 20 個未満になるように構成してください。
プロセスごとの接続数
プロセスごとの最大接続数は、常にプロセスごとのアプリケーション ドメイン数以下である必要があります。同じプロセスで 2 つのサンドボックス ソリューションが同時に実行される場合、一方がクラッシュすると他方もクラッシュします。プロセスごとの最大接続数が多いほど、同じプロセスで同時に実行できるサンドボックス ソリューションの数も増え、1 つのサンドボックス ソリューションのクラッシュが他の実行中の要求に影響する可能性も高くなります。ResourceMaxValue プロパティの値が大きい層では、通常、サンドボックス ソリューションの信頼性が低く、一般にプロセスごとの接続数を小さくすることをお勧めします。ResourceMaxValue プロパティの値が小さい層では、信頼性の高いサンドボックス ソリューションが実行されます。一般に、プロセスごとの接続数を増やすとスループットが向上し、クラッシュしたサンドボックス ソリューションが同じプロセス内の他のソリューションに及ぼす影響が軽減されます。
プロセスごとのアプリケーション ドメイン数
各アプリケーション ドメインで同時に実行できるサンドボックス ソリューションは 1 つだけです。したがって、アプリケーション ドメインの数は、同時に読み込めるサンドボックス ソリューションの数を表します。プロセスごとの接続数と同じかそれ以上の数のアプリケーション ドメインの構成を計画する必要があります。
層を構成する方法については、「サンドボックス ソリューション サービス層を構成する (SharePoint Foundation 2010)」を参照してください。
サンドボックス ソリューションのガバナンスを計画する
サンドボックス ソリューションを計画している場合は、ガバナンスの問題に対するプロセスを検討する必要があります。これには次のものが含まれます。
ファーム管理者は、どの時点でサンドボックス ソリューションをブロックまたはブロック解除するのか。サンドボックス ソリューションのブロックまたはブロック解除に対する管理ポリシーを明らかにすることで、混乱を避けることができます。
どの時点で、サンドボックス ソリューションを完全に信頼できるソリューションとしてグローバル カタログに転送するのか。この決定は、組織内の開発者によって開発されたソリューション コードに適用されます。サンドボックス ソリューションが組織の運用環境で使用できると見なされるために必要なテストのレベルを決定するポリシーを設ける必要があります。
サンドボックス ソリューションを展開できるユーザーを計画するときは、Site Collection Administrators グループにユーザーを追加するのか、それとも限られた数のサイト コレクション管理者がユーザーに代わってサンドボックス ソリューションを展開する手順を設定するのか。組織のセキュリティ上の理由に応じて、サンドボックス ソリューションを展開する権限を求めることをユーザーに要求するのではなく、Site Collection Administrators グループにユーザーを直接追加してもかまいません。
See Also
Concepts
サンドボックス ソリューションの概要 (SharePoint Foundation 2010)
Other Resources
サンドボックス ソリューションの管理 (SharePoint Foundation 2010)
Sandboxed Solutions Resource Center (英語)
サンドボックス ソリューションのアーキテクチャ (https://go.microsoft.com/fwlink/?linkid=177368&clcid=0x411)
サンドボックス ソリューション
サンドボックス ソリューションをインストール、アンインストール、およびアップグレードする