Skip to main content

This is documentation for Caché & Ensemble. See the InterSystems IRIS version of this content.Opens in a new tab

For information on migrating to InterSystems IRISOpens in a new tab, see Why Migrate to InterSystems IRIS?

分散システムの構成

ECP アプリケーションは、1 つ以上の ECP アプリケーション・サーバ・システム (データ・コンシューマ) に配信する 1 つ以上の ECP データ・サーバ・システム (データ・プロバイダ) で構成されています。ECP アプリケーションを構成するには、主に管理ポータルの システム, 構成, ECP設定 ページを使用します。このページに移動するには、[システム管理] 列の下の [構成] をクリックし、[接続] 列の下の [ECP の設定] をクリックします。

データ配信方法を決定すると、ECP アプリケーションの構成は非常に簡単になります。

  1. ECP データ・サーバとしてデータを提供する各システムを有効にします。手順は、"ECP データ・サーバの構成" のセクションを参照してください。

  2. セキュリティ機能を使用している場合、ECP 構成でリソース、ロール、および特権を管理する方法についての説明は、"ECP 特権の管理" のセクションを参照してください。

  3. 通信する各データ・サーバの ECP アプリケーション・サーバとしてデータを要求する各システムを指定します。手順は、"ECP アプリケーション・サーバの構成" のセクションを参照してください。

  4. また、各 ECP アプリケーション・サーバ・システムを、定義済み ECP データ・サーバ内のリモート・データを読み取れるように構成します。手順は、"ECP リモート・データ・アクセスの構成" のセクションを参照してください。

  5. 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設定 のページで [アプリケーションサーバ] ボタンをクリックします。

Note:

インターシステムズのサービスの詳細は、"セキュリティ管理ガイド" の “サービス” の章を参照してください。

[アプリケーション・サーバ最大数] 設定を更新し、このデータ・サーバに同時アクセスできる最大アプリケーション・サーバ数を指定します。Caché によって、設定された数のアプリケーション・サーバ・ノードが割り当てられます。既定の 1 の値を最大の 254 までの値に更新します。これにより、接続数が割り当てノード数を上回ったときに、再設定で必要となるシステムの再起動を避けることができます。

Note:

アプリケーション・サーバの最大数を増やした場合は、Caché を再起動する必要があります。

これで、ECP データ・サーバは、有効な ECP アプリケーション・サーバから接続できるようになります。

データ・サーバへのアクセスを制限したい場合があります。この方法については、以下のセクションを参照してください。

ECP アプリケーション・サーバへのアクセスの制限

ECP データ・サーバ・システムの ECP アプリケーション・サーバとして動作できるシステムを制限するには、以下の手順を実行します。

  1. システム, セキュリティ管理, サービス ページで、[%Service_ECP] をクリックします。

  2. [許可された接続] ボックスで [追加] をクリックし、アドレスを 1 つ (192.9.202.55mycomputer.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 アドレスに関連付けるロールを指定するには、以下の手順に従います。

  1. [使用可能] の下に一覧表示されるロールから必要なロールを選択し、右矢印をクリックして、選択したロールを [選択済み] リストに追加します。

  2. [選択済み] リストからロールを削除するには、削除するロールをクリックし、左矢印をクリックします。

  3. [選択済み] リストにすべてのロールを追加するには、二重右矢印をクリックします。また、[選択済み] リストからロールをすべて削除するには、二重左矢印をクリックします。

  4. [保存] をクリックして、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 エラー報告

ECP で発生するセキュリティ関連のエラー報告の動作は、アプリケーション・サーバとデータ・サーバのどちらでチェックが失敗したか、またどのような操作が行われたかによって次のように異なります。

  • アプリケーション・サーバでチェックに失敗した場合は、直ちに <PROTECT> エラーとなります。

  • データ・サーバでの同期操作の場合は、直ちに <PROTECT> エラーとなります。

  • データ・サーバでの非同期操作の場合は、<NETWORK DATA UPDATE FAILED> エラーが遅延時間の後で表示されることがあります。このような操作には、例えば Set 操作があります。

ECP アプリケーション・サーバの構成

システムを ECP アプリケーション・サーバとして構成するには、データの取得元となる ECP データ・サーバを定義します。次の手順を実行して、このリモート ECP データ・サーバを追加します。

  1. または、システム, 構成, ECP 設定 ページで、[このシステムを ECP データサーバとする] ボックスの [ECP サービスは無効になっています] の横にある [有効] をクリックして、ECP サービスを有効にします。"ECP データ・サーバの構成" を参照してください。続いて、[データサーバ] をクリックして、現在構成されている ECP データ・サーバのリストを表示します。

  2. データ・サーバを追加するには、[サーバ追加] をクリックします。

  3. データ・サーバの以下の情報を入力します。

    • [サーバ名] — アプリケーション・システム管理者にとって都合のよい論理名を入力します。

    • [ホストDNS名またはIPアドレス] — ホスト名を、IP アドレス (ドットで区切った十進数形式。IPv6 を有効にしている場合は、コロン区切りの形式) またはリモート・ホストの DNS (Domain Name System) 名のいずれかで指定します。DNS 名で指定した場合、アプリケーション・サーバがその ECP データ・サーバ・ホストに接続するたびに、実際の IP アドレスに解決されます。詳細は、"システム管理ガイド" の “Caché の構成” の章にある "IPv6 のサポート" のセクションを参照してください。

      Important:

      ミラー・プライマリを ECP データ・サーバとして追加する場合、ミラーの仮想 IP アドレス (VIP) を入力するのではなく、現在のプライマリ・フェイルオーバー・メンバの DNS 名 または IP アドレスを入力します。

    • [IP ポート] — このポート番号の既定は 1972 です。必要に応じてデータ・サーバの Caché インスタンスのスーパーサーバ・ポートに変更します。

    • 自動フェイルオーバーによるデータ・サーバとしてミラー・プライマリを構成する場合、[ミラー接続] チェック・ボックスにチェックを付けます。データ・サーバとしてのミラー・プライマリの構成に関する重要な情報は、"高可用性ガイド" の “ミラーリング” の章にある "ミラーへの ECP 接続の構成" を参照してください。

  4. [保存] をクリックします。

リモート ECP データ・サーバを追加すると、同じポータル・ページ下部にある、このアプリケーション・サーバが接続できる定義済みのデータ・サーバのリストに、その ECP データ・サーバが表示されます。別の ECP データ・サーバをリストに追加するには、[新規リモートデータサーバの追加] リンクを使用します。[削除] と [編集] のリンクを使用すると、サーバの定義を削除または編集できます。接続の [状態の変更] をクリックすることもできます。詳細は、“分散アプリケーションの監視” を参照してください。

追加できるデータ・サーバの最大数は、[データ・サーバの最大数] で設定されている値です。この値を更新して、アプリケーション・サーバで今後必要となる最大サーバ接続数を指定します。これにより、Caché がシステム・リソースを十分に確保でき、データ・サーバを追加するたびに再起動する必要がなくなります。既定の 2 の値を最大の 254 までの値に更新します。

Note:

データ・サーバの最大数を増やした場合は、Caché を再起動する必要があります。

システムは ECP アプリケーション・サーバとして動作可能になります。以降ユーザによる処理は必要ありません。ECP アプリケーション・サーバが ECP データ・サーバにアクセスする必要がある場合、自動的にサーバへの接続が構築されます。

ECP リモート・データ・アクセスの構成

ECP アプリケーション・サーバに対して 1 つ以上の ECP データ・サーバを定義した後、ECP アプリケーション・サーバ・システムを構成し、ECP データ・サーバ・システムに格納されているデータにアクセスできるようにします。そのためには、ECP アプリケーション・サーバ・システムにリモート・データベースを定義します。

リモート・データベースは、ECP データ・サーバ・システム上に物理的に配置されているデータベースであり、ローカル・アプリケーション・サーバ・システムに物理的に配置されているローカル・データベースとは異なります。

ECP アプリケーション・サーバにリモート・データベースを定義するには、次の手順を実行します。

  1. 管理ポータルの システム, 構成, リモートデータベース ページに移動します。

  2. [新規リモート・データベースの作成] をクリックし、[データベース] ウィザードを起動します。これにより、アプリケーション・サーバのリモート・データ・サーバの論理名 (それを ECP データ・サーバのリストに追加したときに使用した名前) のリストが表示されます。

  3. 適切な ECP データ・サーバの名前をクリックし、[次へ] をクリックします。

  4. ポータルに、リモート ECP データ・サーバのデータベース・ディレクトリのリストが表示されます。これらから、リモート・データベースとして使用するディレクトリを 1 つ選択します。

  5. データベース名 (ECP アプリケーション・サーバ上の名前。ECP データ・サーバ上の名前と一致している必要はありません) を入力し、[完了] ボタンをクリックします。これで、リモート・データベースを定義できました。

次に、新規のネームスペースを定義し (あるいは既存のネームスペースを変更し)、リモート・データベースのデータをローカル・データベースのデータと同様に表示できるようにします。

Note:

管理ポータルの [ネームスペース ウィザード] を使用すると、ネームスペースとリモート・データベースを同時に定義できます。これにより、リモート・データベースを追加する際に必要なこの 2 つの手順を同時に実行できます。

新規ネームスペースを定義し、リモート・データベースのデータを表示するには、次の手順を実行します。

  1. 管理ポータルの システム, 構成, ネームスペース ページに移動します。

  2. [新規ネームスペースの作成] をクリックします。

  3. フォームの以下のフィールドに入力します。

    • 新規ネームスペースの名前を入力します。

    • [リモート・データベース] をクリックします。

    • 前述の手順に従ってリモート・データベースを作成してある場合は、それを選択します。作成していない場合は、[新規データベースの作成] をクリックし、前述の [データベース] ウィザードの手順に従います。

    • CSP を使用する場合は、[このネームスペースの既定の CSP アプリケーションを作成する] にチェックを付けます。

  4. 新規ネームスペース用のデータベースを選択します。リストからリモート・データベースを選択し (リモートとローカルのデータベースの両方がリストされています)、[次へ] をクリックします。

  5. [保存] をクリックします。これで、リモート・データベースにマップされた新規ネームスペースを作成できました。

このネームスペースで取得または格納するあらゆるデータは、ECP データ・サーバの物理データベースからロードされ、この物理データベースに格納されます。また、キャッシュされている場合はローカル・アプリケーション・サーバ・システムのキャッシュで更新されます。

ECP のセキュリティに関するメモ

まず、ECP 構成のすべてのインスタンスが、Caché の安全な境界の内部 (外部に対する安全が確保されている環境の内部) に存在する必要があります。その理由は、ECP が基本的なセキュリティ・サービスであり、リソース・ベースのサービスではないので、アクセスするユーザを制限する方法がないためです。基本サービスおよびリソース・ベースのサービスの詳細は、"セキュリティ管理ガイド" の “サービス” の章にある “使用可能なサービス” のセクションを参照してください。

また、ECP データ・サーバ上で暗号化したデータベースを使用する場合は、接続されているすべてのアプリケーション・サーバ上の CACHETEMP データベースを暗号化することをお勧めします。キーは、すべてのサーバで同じものにすることもできれば、別々のものにすることもできます。データベース暗号化の詳細は、"セキュリティ管理ガイド" の “マネージド・キー暗号化” の章を参照してください。

FeedbackOpens in a new tab