分散システムの構成
ECP アプリケーションは、1 つ以上の ECP アプリケーション・サーバ・システム (データ・コンシューマ) に配信する 1 つ以上の ECP データ・サーバ・システム (データ・プロバイダ) で構成されています。ECP アプリケーションを構成するには、主に管理ポータルの システム, 構成, ECP設定 ページを使用します。このページに移動するには、[システム管理] 列の下の [構成] をクリックし、[接続] 列の下の [ECP の設定] をクリックします。
データ配信方法を決定すると、ECP アプリケーションの構成は非常に簡単になります。
-
ECP データ・サーバとしてデータを提供する各システムを有効にします。手順は、"ECP データ・サーバの構成" のセクションを参照してください。
-
セキュリティ機能を使用している場合、ECP 構成でリソース、ロール、および特権を管理する方法についての説明は、"ECP 特権の管理" のセクションを参照してください。
-
通信する各データ・サーバの ECP アプリケーション・サーバとしてデータを要求する各システムを指定します。手順は、"ECP アプリケーション・サーバの構成" のセクションを参照してください。
-
また、各 ECP アプリケーション・サーバ・システムを、定義済み ECP データ・サーバ内のリモート・データを読み取れるように構成します。手順は、"ECP リモート・データ・アクセスの構成" のセクションを参照してください。
-
ECP は、バッファ・プールを Caché のローカル・インスタンスと共有するので、ECP のためにバッファ・サイズの割り当てを増やしておくことをお勧めします。詳細は、このドキュメントの “分散アプリケーションの開発” の章の "大規模な ECP システムにおけるメモリの使用量" のセクションを参照してください。
ECP データ・サーバとして稼動するシステムは、同時に ECP アプリケーション・サーバとしても稼動することができます。またその逆も可能です。ECP アプリケーション・サーバとデータ・サーバを構成する順序は任意です。アプリケーション・サーバを定義する前に ECP データ・サーバを有効にする必要はありません。
ECP のクライアント/サーバの互換性
ECP サーバ (データ・サーバ) およびクライアント (アプリケーション・サーバ) のシステムは、複数の異なるオペレーティング・システムまたはエンディアン、あるいはその両方に存在させることができますが、クライアントおよびサーバ上の Caché インスタンスは、同じロケールを使用する必要があります ("システム管理ガイド" の “Caché の構成” の章の "管理ポータルの NLS 設定ページの使用法" を参照してください)。
ECP データ・サーバの構成
システムを ECP データ・サーバとして構成するには、まず、管理ポータルの システム, セキュリティ管理, サービス ページで ECP サービスを有効にする必要があります。[%Service_ECP] をクリックし、[サービス編集] ダイアログの [サービス有効] チェック・ボックスにチェックを付けて、[保存] をクリックします。この設定のみで、このシステムを ECP データ・サーバとして使用できます。
または、システム, 構成, ECP 設定 ページで、[このシステムを ECP データサーバとする] ボックスの [ECP サービスは無効になっています] の横にある [有効] をクリックして、同じ [サービス編集] ダイアログを開きます。[保存] をクリックすると、[ECP の設定] ページに戻ります。
このデータ・サーバに接続するために構成された ECP アプリケーション・サーバの一覧を表示するには、システム, 構成, ECP設定 のページで [アプリケーションサーバ] ボタンをクリックします。
インターシステムズのサービスの詳細は、"セキュリティ管理ガイド" の “サービス” の章を参照してください。
[アプリケーション・サーバ最大数] 設定を更新し、このデータ・サーバに同時アクセスできる最大アプリケーション・サーバ数を指定します。Caché によって、設定された数のアプリケーション・サーバ・ノードが割り当てられます。既定の 1 の値を最大の 254 までの値に更新します。これにより、接続数が割り当てノード数を上回ったときに、再設定で必要となるシステムの再起動を避けることができます。
アプリケーション・サーバの最大数を増やした場合は、Caché を再起動する必要があります。
これで、ECP データ・サーバは、有効な ECP アプリケーション・サーバから接続できるようになります。
データ・サーバへのアクセスを制限したい場合があります。この方法については、以下のセクションを参照してください。
ECP アプリケーション・サーバへのアクセスの制限
ECP データ・サーバ・システムの ECP アプリケーション・サーバとして動作できるシステムを制限するには、以下の手順を実行します。
-
システム, セキュリティ管理, サービス ページで、[%Service_ECP] をクリックします。
-
[許可された接続] ボックスで [追加] をクリックし、アドレスを 1 つ (192.9.202.55 や mycomputer.myorg.com など) またはアドレス範囲 (18.61.202-210.* や 18.68.*.* など) を入力します。
[許可された接続] リストに IP アドレスを入力しておくと、ECP データ・サーバでは、このリストにある IP アドレスを持つアプリケーション・サーバからの ECP 接続のみが受け入れられます。リストが空の場合は、ECP サービスが有効になっているすべてのアプリケーション・サーバがこのシステムに接続できます。
IP アドレスを追加すると、このアドレスは [許可された接続] のリストに表示されます。このリストには、リストからアドレスを [削除] するオプションや、接続の [ロール] を [編集] するオプションがあります。
ECP データやアプリケーション・サーバに対するロールの管理プロセスは、InterSystems のセキュリティの一部です。Caché のロールおよび特権の一般的な機能に関する詳細は、"セキュリティ管理ガイド" の “ロール” の章を参照してください。以下のセクションで、これらの機能の ECP での動作について詳細に説明します。
ECP 特権およびロールの指定
指定された各 IP アドレスまたはアドレス範囲について、[編集] をクリックすると、[ロールの選択] 領域が表示されます。この領域では、IP アドレスからの接続に関連付けるロールを指定できます。既定では、接続のロールは %All に設定されています。その他のロールを 1 つまたは複数指定すると、この接続は指定したそれらのロールのみを持つことになります。したがって、%Operator ロールを持つ IP アドレスからの接続が持つ特権は、そのロールに関連付けられているもののみです。一方、ロールが関連付けられていない (つまり、%All ロール) 別の IP アドレスからの接続はすべての特権を持つことになります。
IP アドレスに関連付けるロールを指定するには、以下の手順に従います。
-
[使用可能] の下に一覧表示されるロールから必要なロールを選択し、右矢印をクリックして、選択したロールを [選択済み] リストに追加します。
-
[選択済み] リストからロールを削除するには、削除するロールをクリックし、左矢印をクリックします。
-
[選択済み] リストにすべてのロールを追加するには、二重右矢印をクリックします。また、[選択済み] リストからロールをすべて削除するには、二重左矢印をクリックします。
-
[保存] をクリックして、IP アドレスとロールを関連付けます。
"ECP 特権の管理" のセクションで、Caché が、ECP 構成内で特権を管理するしくみについて説明します。
ECP 特権の管理
ここでは、リソースとロールは、各マシンにある同じアセットを参照するものとします。ECP データ・サーバにあるリソースへのアクセス許可を取得するには、アプリケーション・サーバ上のプロセスが持つロールと、データ・サーバ上の ECP 接続に対して設定されたロールの両方に、同じリソースに対する許可が指定されている必要があります。
ECP アプリケーション・サーバの代わりにデータ・サーバを実行する場合、既定では、Caché は、ECP データ・サーバに %All 特権を与えます。これにより、ECP データ・サーバは、アプリケーション・サーバから要求された、どのようなデータベースにあるどのようなデータでも返すことができます。Caché は、このデータへのアクセスを、アプリケーション・サーバでデータを要求しているユーザの特権に基づいて、アプリケーション・サーバ上で制限します。
例えば、アプリケーション・サーバのユーザが、%DB_USER リソースに対する特権のみを持っている場合、データ・サーバの USER データベース (既定では、%DB_USER リソースが割り当てられています) にあるデータは使用できますが、データ・サーバの SAMPLES データベースにアクセスしようとすると、<PROTECT> エラーとなります。アプリケーション・サーバの別のユーザが、%DB_SAMPLES リソースに対する特権を持っている場合、そのユーザはデータ・サーバの SAMPLES データベースを利用できます。
また、アプリケーション・サーバの IP アドレスに基づいて、データサーバのロールの組み合わせを制限することもできます。例えば、データ・サーバで、NODE_A というアプリケーション・サーバと対話するときに使用できるロールを %DB_USER のみとすることを指定できます。この場合、アプリケーション・サーバで %DB_USER ロールが与えられているユーザは、データ・サーバの USER データベースにアクセスできます。ただし、アプリケーション・サーバで %DB_SAMPLES ロールを持つユーザがデータ・サーバの SAMPLES データベースにアクセスしようとすると、<PROTECT> エラーとなります。これは、このデータ・サーバには、%DB_USER によるアクセスのみが設定されているからです。
以下は、この動作に対する例外です。
-
Caché は必ず ECP データ・サーバに %DB_CACHESYS ロールを与えます。これは、このデータ・サーバが稼動するには、CACHESYS データベースへの Read アクセスが必要なためです。つまり、ECP アプリケーション・サーバ上で %DB_CACHESYS ロールを持つユーザは、ECP データ・サーバの CACHESYS データベースにアクセスできます。
このアプリケーション・サーバのユーザが、データ・サーバの CACHESYS データベースにアクセスできないようにする方法には次の 2 とおりがあります。
-
%DB_CACHESYS リソースに対する特権をユーザに与えない。
-
データ・サーバで、CACHESYS データベースのリソース名を、%DB_CACHESYS 以外の名前に変更する。このとき、アプリケーション・サーバのユーザが変更後の名前を持つリソースに対する特権を持っていないことを確認してください。
-
-
ECP データ・ソースにパブリック・リソースが存在する場合、アプリケーション・サーバのロールや、ECP 接続用に構成されたロールに関係なく、ECP アプリケーション・サーバ上のすべてのユーザはこのパブリック・リソースを使用できます。
ECP 接続の構成、およびリソース上のパブリック許可の両方に対する変更を有効にするには、Caché の再起動が必要です。
ECP で発生するセキュリティ関連のエラー報告の動作は、アプリケーション・サーバとデータ・サーバのどちらでチェックが失敗したか、またどのような操作が行われたかによって次のように異なります。
-
アプリケーション・サーバでチェックに失敗した場合は、直ちに <PROTECT> エラーとなります。
-
データ・サーバでの同期操作の場合は、直ちに <PROTECT> エラーとなります。
-
データ・サーバでの非同期操作の場合は、<NETWORK DATA UPDATE FAILED> エラーが遅延時間の後で表示されることがあります。このような操作には、例えば Set 操作があります。
ECP アプリケーション・サーバの構成
システムを ECP アプリケーション・サーバとして構成するには、データの取得元となる ECP データ・サーバを定義します。次の手順を実行して、このリモート ECP データ・サーバを追加します。
-
または、システム, 構成, ECP 設定 ページで、[このシステムを ECP データサーバとする] ボックスの [ECP サービスは無効になっています] の横にある [有効] をクリックして、ECP サービスを有効にします。"ECP データ・サーバの構成" を参照してください。続いて、[データサーバ] をクリックして、現在構成されている ECP データ・サーバのリストを表示します。
-
データ・サーバを追加するには、[サーバ追加] をクリックします。
-
データ・サーバの以下の情報を入力します。
-
[サーバ名] — アプリケーション・システム管理者にとって都合のよい論理名を入力します。
-
[ホストDNS名またはIPアドレス] — ホスト名を、IP アドレス (ドットで区切った十進数形式。IPv6 を有効にしている場合は、コロン区切りの形式) またはリモート・ホストの DNS (Domain Name System) 名のいずれかで指定します。DNS 名で指定した場合、アプリケーション・サーバがその ECP データ・サーバ・ホストに接続するたびに、実際の IP アドレスに解決されます。詳細は、"システム管理ガイド" の “Caché の構成” の章にある "IPv6 のサポート" のセクションを参照してください。
Important:ミラー・プライマリを ECP データ・サーバとして追加する場合、ミラーの仮想 IP アドレス (VIP) を入力するのではなく、現在のプライマリ・フェイルオーバー・メンバの DNS 名 または IP アドレスを入力します。
-
[IP ポート] — このポート番号の既定は 1972 です。必要に応じてデータ・サーバの Caché インスタンスのスーパーサーバ・ポートに変更します。
-
自動フェイルオーバーによるデータ・サーバとしてミラー・プライマリを構成する場合、[ミラー接続] チェック・ボックスにチェックを付けます。データ・サーバとしてのミラー・プライマリの構成に関する重要な情報は、"高可用性ガイド" の “ミラーリング” の章にある "ミラーへの ECP 接続の構成" を参照してください。
-
-
[保存] をクリックします。
リモート ECP データ・サーバを追加すると、同じポータル・ページ下部にある、このアプリケーション・サーバが接続できる定義済みのデータ・サーバのリストに、その ECP データ・サーバが表示されます。別の ECP データ・サーバをリストに追加するには、[新規リモートデータサーバの追加] リンクを使用します。[削除] と [編集] のリンクを使用すると、サーバの定義を削除または編集できます。接続の [状態の変更] をクリックすることもできます。詳細は、“分散アプリケーションの監視” を参照してください。
追加できるデータ・サーバの最大数は、[データ・サーバの最大数] で設定されている値です。この値を更新して、アプリケーション・サーバで今後必要となる最大サーバ接続数を指定します。これにより、Caché がシステム・リソースを十分に確保でき、データ・サーバを追加するたびに再起動する必要がなくなります。既定の 2 の値を最大の 254 までの値に更新します。
データ・サーバの最大数を増やした場合は、Caché を再起動する必要があります。
システムは ECP アプリケーション・サーバとして動作可能になります。以降ユーザによる処理は必要ありません。ECP アプリケーション・サーバが ECP データ・サーバにアクセスする必要がある場合、自動的にサーバへの接続が構築されます。
ECP リモート・データ・アクセスの構成
ECP アプリケーション・サーバに対して 1 つ以上の ECP データ・サーバを定義した後、ECP アプリケーション・サーバ・システムを構成し、ECP データ・サーバ・システムに格納されているデータにアクセスできるようにします。そのためには、ECP アプリケーション・サーバ・システムにリモート・データベースを定義します。
リモート・データベースは、ECP データ・サーバ・システム上に物理的に配置されているデータベースであり、ローカル・アプリケーション・サーバ・システムに物理的に配置されているローカル・データベースとは異なります。
ECP アプリケーション・サーバにリモート・データベースを定義するには、次の手順を実行します。
-
管理ポータルの システム, 構成, リモートデータベース ページに移動します。
-
[新規リモート・データベースの作成] をクリックし、[データベース] ウィザードを起動します。これにより、アプリケーション・サーバのリモート・データ・サーバの論理名 (それを ECP データ・サーバのリストに追加したときに使用した名前) のリストが表示されます。
-
適切な ECP データ・サーバの名前をクリックし、[次へ] をクリックします。
-
ポータルに、リモート ECP データ・サーバのデータベース・ディレクトリのリストが表示されます。これらから、リモート・データベースとして使用するディレクトリを 1 つ選択します。
-
データベース名 (ECP アプリケーション・サーバ上の名前。ECP データ・サーバ上の名前と一致している必要はありません) を入力し、[完了] ボタンをクリックします。これで、リモート・データベースを定義できました。
次に、新規のネームスペースを定義し (あるいは既存のネームスペースを変更し)、リモート・データベースのデータをローカル・データベースのデータと同様に表示できるようにします。
管理ポータルの [ネームスペース ウィザード] を使用すると、ネームスペースとリモート・データベースを同時に定義できます。これにより、リモート・データベースを追加する際に必要なこの 2 つの手順を同時に実行できます。
新規ネームスペースを定義し、リモート・データベースのデータを表示するには、次の手順を実行します。
-
管理ポータルの システム, 構成, ネームスペース ページに移動します。
-
[新規ネームスペースの作成] をクリックします。
-
フォームの以下のフィールドに入力します。
-
新規ネームスペースの名前を入力します。
-
[リモート・データベース] をクリックします。
-
前述の手順に従ってリモート・データベースを作成してある場合は、それを選択します。作成していない場合は、[新規データベースの作成] をクリックし、前述の [データベース] ウィザードの手順に従います。
-
CSP を使用する場合は、[このネームスペースの既定の CSP アプリケーションを作成する] にチェックを付けます。
-
-
新規ネームスペース用のデータベースを選択します。リストからリモート・データベースを選択し (リモートとローカルのデータベースの両方がリストされています)、[次へ] をクリックします。
-
[保存] をクリックします。これで、リモート・データベースにマップされた新規ネームスペースを作成できました。
このネームスペースで取得または格納するあらゆるデータは、ECP データ・サーバの物理データベースからロードされ、この物理データベースに格納されます。また、キャッシュされている場合はローカル・アプリケーション・サーバ・システムのキャッシュで更新されます。
ECP のセキュリティに関するメモ
まず、ECP 構成のすべてのインスタンスが、Caché の安全な境界の内部 (外部に対する安全が確保されている環境の内部) に存在する必要があります。その理由は、ECP が基本的なセキュリティ・サービスであり、リソース・ベースのサービスではないので、アクセスするユーザを制限する方法がないためです。基本サービスおよびリソース・ベースのサービスの詳細は、"セキュリティ管理ガイド" の “サービス” の章にある “使用可能なサービス” のセクションを参照してください。
また、ECP データ・サーバ上で暗号化したデータベースを使用する場合は、接続されているすべてのアプリケーション・サーバ上の CACHETEMP データベースを暗号化することをお勧めします。キーは、すべてのサーバで同じものにすることもできれば、別々のものにすることもできます。データベース暗号化の詳細は、"セキュリティ管理ガイド" の “マネージド・キー暗号化” の章を参照してください。