Skip to main content

This documentation is for an older version of this product. See the latest version of this content.Opens in a new tab

ICM リファレンス

この章では、ICM のさまざまな要素とその使用法について詳しく説明します。

ICM コマンドとオプション

以下の最初の表は、ICM コマンド行で実行可能なコマンドの一覧です。それぞれのコマンドについては、“ICM の使用” の章で詳細に説明しています。

2 番目の表は、コマンドで使用可能なオプションの一覧です。コマンド行オプションには、以下の 2 つの目的があります。

  • 必須またはオプションの引数をコマンドに指定する。例えば、導入環境にある InterSystems IRIS コンテナのみの実行状態をリストするには、次のコマンドを使用できます。

    icm ps -container iris
    

    ノード ANDY-DM-TEST 上に導入したコンテナ内部でシェルを開くコマンドを実行するには、次のコマンドを使用できます。

    icm exec -command bash -machine ANDY-DM-TEST -interactive
    
  • フィールドの既定値または構成ファイルの値を上書きするには、以下の 2 つの方法のいずれかを使用します。

    • icm provision などのあらゆるコマンドで、-image–namespace、および -iscpassword の各オプションを使用して、それぞれ DockerImageNamespace、および ISCPassword の各フィールドの値を上書きできます。

    • プロビジョニング・フェーズの後、-overrides オプションを使用して、現在のコマンドでのみ 1 つ以上の値を上書きできます。例えば、既定値ファイルに以下のフィールドがあるとします。

      "DockerUsername": "prodriguez",
      "DockerPassword": "xxxxxxx",
      "DockerRegistry": "containers.intersystems.com",
      "DockerImage": "containers.intersystems.com/intersystems/iris:2022.1.0.223.0",
      

      -image オプションを指定して icm provision コマンドを実行すると DockerImage フィールドを上書きできますが、別のレジストリにあるイメージは使用できません。レジストリの場所と資格情報は上書きできないからです。ただし、icm upgrade コマンドでは、-overrides オプションを使用すると別のレジストリにあるイメージを指定して、以下のように 3 つのフィールドすべてを上書きできます。

      icm upgrade -overrides '{"DockerUsername":"mwyszynska","DockerPassword":"xxxxxx",
        "DockerRegistry":"docker.io"}' -image docker.io/acme/iris:2022.2.0.221.0
      
      Note:

      -overridesicm runicm install、または icm upgrade の各コマンドで使用して、永続化を意図したフィールドを指定する場合、そのフィールドを instances.json ファイルの中で更新して、以降の再プロビジョニング・オペレーションで元に戻ることがないようにする必要があります。前述の icm upgrade コマンドに続いて、DockerImageDockerRegistryDockerUsernameDockerPassword などのフィールドをインスタンス・ファイルの中で更新する必要があります (-image–namespace、および -iscpassword の各オプションでは、この処理が自動的に実行されます)。

両方の表に、関連したテキストへのリンクが示してあります。

Note:

コマンドの表は各コマンドで使用できるすべてのオプションを網羅しておらず、オプションの表は各オプションを指定できるすべてのコマンドを網羅していません。

ICM コマンド
コマンド 説明 重要なオプション

provision

ホスト・ノードをプロビジョニングします

N/A

inventory

プロビジョニングされたホスト・ノードをリストします

-machine、-role、-json、-options

unprovision

ホスト・ノードを破棄します

-stateDir、-cleanup、-force
merge 別個のリージョンまたはプロバイダ・プラットフォームにプロビジョニングされたインフラストラクチャをマルチリージョンまたはマルチプロバイダ導入環境用の新しい定義ファイルにマージします -options、-localPath

ssh

1 つ以上のホスト・ノード上でオペレーティング・システム・コマンドを実行します

-command、-machine、-role

scp

1 つ以上のホスト・ノードにローカル・ファイルをコピーします

-localPath、-remotePath、-machine、-role

run

ホスト・ノードにコンテナを導入します

-image、-container、-namespace、-options、-iscPassword、-command、-machine、-role、-override

ps

ホスト・ノードに導入されたコンテナの実行状態を表示します

-container、-json

stop

1 つ以上のホスト・ノード上でコンテナを停止します

-container、-machine、-role

start

1 つ以上のホスト・ノード上でコンテナを起動します

-container、-machine、-role

pull

1 つ以上のホスト・ノードにイメージをダウンロードします

-image、-container、-machine、-role

rm

1 つ以上のホスト・ノードからコンテナを削除します

-container、-machine、-role

upgrade

1 つ以上のホスト・ノード上でコンテナを置き換えます

-image、-container、-machine、-role、–override

exec

1 つ以上のコンテナ内でオペレーティング・システム・コマンドを実行します

-container、-command、-interactive、-options、-machine、-role

session

コンテナ内の InterSystems IRIS インスタンスのインタラクティブ・セッションを開くか、1 つ以上のインスタンスで InterSystems IRIS ObjectScriptScript スニペットを実行します

-namespace、-command、-interactive、-options、-machine、-role

cp

1 つ以上のコンテナにローカル・ファイルをコピーします

-localPath、-remotePath、-machine、-role

sql

InterSystems IRIS インスタンス上で SQL 文を実行します

-namespace、-command、-machine、-role
install コンテナレス・モードでキットから InterSystems IRIS インスタンスをインストールします -machine、-role、–override
uninstall コンテナレス・モードでキットからインストールされた InterSystems IRIS インスタンスをアンインストールします -machine、-role

docker

1 つ以上のホスト・ノード上で Docker コマンドを実行します

-container、-machine、-role
ICM コマンド行オプション
オプション 説明 既定 説明
-help コマンドの使用法と ICM バージョンを表示します   ---
-version ICM バージョンを表示します   ---
-verbose 実行の詳細を表示します false (すべてのコマンドに使用できます)
-force プロビジョニング解除の前に確認を行いません false インフラストラクチャのプロビジョニング解除
-cleanUp プロビジョニング解除の後に state ディレクトリを削除します false インフラストラクチャのプロビジョニング解除
-machine regexp コマンドを実行するノードを指定するために使用するマシン名のパターン・マッチ (すべて) icm inventoryicm sshicm runicm execicm session
-role role コマンドを実行する InterSystems IRIS インスタンスのロール (DATA や AM など) (すべて) icm inventoryicm sshicm runicm execicm session
-namespace namespace 導入された InterSystems IRIS インスタンス上で作成し、session コマンドと sql コマンドの既定の実行ネームスペースとして設定するネームスペース IRISCLUSTER 定義ファイルicm runicm sessionicm sql
-image image 導入する Docker イメージ。リポジトリ名を記述している必要があります。 DockerImage 定義ファイルの値 icm runicm upgrade
-override '{"field":"value",...} このコマンドで上書きするフィールド値。 なし ICM コマンドとオプション
-options options コマンドで指定する Docker オプション。 なし icm inventoryicm runicm execicm session複数のリージョンまたはプロバイダにわたる導入カスタム・コンテナおよびサードパーティ・コンテナでの ICM の使用
-container name コンテナの名前 icm ps コマンド : (すべて)

その他のコマンド : iris

icm runicm ps
-command cmd 実行するコマンドまたはクエリ なし icm sshicm runicm execicm sessionicm sql
-interactive exec コマンドと ssh コマンドの入力/出力をコンソールにリダイレクトします false icm sshicm execicm sql

-localPath path ノードのローカル・ファイル・システム上 (icm cp) または ICM コンテナ内部 (icm scp) のファイル・パスまたはディレクトリ・パス なし icm cpicm scpコンテナレスの導入リモート・スクリプト呼び出し
-remotePath path コンテナ内部 (icm cp) またはノードのローカル・ファイル・システム上 (icm scp) のファイル・パスまたはディレクトリ・パス /home/SSHUser (SSHUser フィールドの値) icm cpicm scpコンテナレスの導入リモート・スクリプト呼び出し
-iscPassword password 導入される InterSystems IRIS インスタンスのパスワード iscPassword 構成ファイルの値 icm run
-json JSON 応答モードを有効にします false JSON モードの使用
Important:

デバッグのみを目的としている -verbose オプションを使用すると、iscPassword の値やその他の機密情報 (DockerPassword など) が開示される場合があります。このオプションを使用する場合は、-force オプションも使用するか、続行する前に詳細モードを使用することを確認する必要があります。

ICM の構成パラメータ

以下の各テーブルでは、プロビジョニングと導入のタスク、および管理コマンドの実行に必要な情報を ICM に提供するために構成ファイルに組み込むことができるフィールドについて説明します (“基本的な ICM の要素” の章にある "構成ファイル、状態ファイル、およびログ・ファイル" および “ICM の使用” の章にある "導入の定義" を参照)。パラメータを名前で探すには、アルファベット順のリストを使用します。このリストには、パラメータの定義が記載されているテーブルへのリンクが用意されています。

一般パラメータ

以下のテーブルのフィールドはすべて、あらゆるクラウド・プロバイダで使用されます。一部のフィールドは、vSphere と PreExisting でも使用されます。

右端の 2 つの列は、各パラメータがすべての導入環境で必須であるか、オプションであるか、および defaults.jsondefinitions.json のどちらで指定する必要があるか (使用する場合)、どちらで推奨されるか、どちらでも使用できるかを示します。以下はその例です。

  • 単一の導入環境は常に、(後で別のものとマージしてマルチプロバイダ導入環境を作成する場合でも) 選択した単一のプロビジョニング・プラットフォームを対象とするため、Provider パラメータは必須であり、既定値ファイルで指定する必要があります。

  • それぞれのノード・タイプを指定する必要がありますが、1 つの導入環境に複数のノード・タイプを含めることができるため、Role パラメータは、定義ファイル内のそれぞれの定義で必須です。

  • InterSystems IRIS を実行する各ノードにはライセンスが必要ですが、他のノードはライセンスを必要としないので、LicenseKey 設定は必須であり、通常は定義ファイル内の該当する定義で指定します。

  • 少なくとも 1 つのコンテナを導入環境内の各ノードに導入する必要がありますが、単一のコンテナをすべてのノードに導入することもあれば (DATA ノードのみで構成されるシャード・クラスタ全体に iris/iris-arm64 を導入する場合など)、それぞれのノード・タイプに異なるコンテナを導入することもあります (分散キャッシュ・クラスタ内の DM と AM には iris/iris-arm64 を、WS には webgateway を、AR には arbiter を導入する場合など)。そのため、DockerImage パラメータは必須であり、既定値ファイル、定義ファイル、またはその両方で指定できます (両方で指定する場合は、既定のイメージを指定しますが、1 つ以上のノード・タイプについてそのイメージをオーバーライドします)。

  • 導入するイメージと同様に、OS ボリュームのサイズも、既定値ファイルですべてのノードについて指定することも、定義ファイルで 1 つ以上のノード・タイプについて指定することも、両方で指定することもできます。ただし、既定値があるので、このパラメータはオプションです。

Note:

パラメータの既定値が記載されていない場合、既定値はありません。

パラメータ 定義 使用 構成ファイル
Provider インフラストラクチャをプロビジョニングするプラットフォーム。"プロビジョニング・プラットフォーム" を参照してください。 必須 既定値ファイル

Label

Tag

プロビジョニングされるクラウド・ノードの名前付け方式のフィールド : Label-Role-Tag-NNNN (例 : ANDY-DATA-TEST-0001)。他のノードとの競合を避けるために、所有権と目的を示す必要があります。複数の導入環境で同じ Label および Tag を共有しないでください。ダッシュを使用することはできません。 必須 既定値ファイル
LicenseDir ICM コンテナ内でステージングされ、LicenseKey フィールド (次の項目を参照) によって個々に指定される InterSystems IRIS ライセンス・キーの場所。"ICM の InterSystems IRIS ライセンス" を参照してください。 必須 既定値ファイル
LicenseKey プロビジョニングされる 1 つ以上の DATA、COMPUTE、DM、AM、DS、または QS ノード上の InterSystems IRIS インスタンスのライセンス・キー。LicenseDir フィールド (前の項目を参照) で指定される場所の ICM コンテナ内でステージングされます。DM ノードと AM ノードのみを含む構成では、標準ライセンスを使用できます。他のすべての構成 (すなわち、シャード・クラスタ) では、シャーディング対応ライセンスが必要です。 必須 定義ファイル (推奨)
Region

(Azure の同等のパラメータ : Location)

インフラストラクチャがプロビジョニングされる、プロバイダの計算リソースの地理的地域。単一の構成を複数のリージョンに導入する方法については、"複数のリージョンまたはプロバイダにわたる導入" を参照してください。プロバイダのドキュメントを含む、プロバイダ固有の情報は以下のとおりです。 必須 既定値ファイル
Zone プロビジョニングされるノードを配置する、指定したリージョン (前の項目を参照) 内のアベイラビリティ・ゾーン。単一の構成を複数のゾーンに導入する方法については、"複数ゾーンにわたる導入" を参照してください。プロバイダ固有の情報は以下のとおりです。 必須 既定値ファイル

ZoneMap

複数のゾーンにわたって導入する場合 ("複数ゾーンにわたる導入" を参照)、どのノードをどのゾーンに導入するかを指定します。既定値 : 0、1、2、...255。

オプション 定義ファイル
Mirror true の場合、DATA ノード、DM ノード、および DS ノード上の InterSystems IRIS インスタンスはミラーとして導入されます。"ミラーリングされた構成の要件" を参照してください。既定値 : false。 オプション 既定値ファイル
MirrorMap ミラーリングされる DATA、DS、および DM ノードのミラー・メンバ・タイプを指定します。DR 非同期ミラー・メンバを導入することもできます。"ミラーリングの規則" を参照してください。既定値 : primary,backup。async という用語は 1 回以上追加できます。例 : primary,backup,async,async。 オプション 定義ファイル
ISCPassword プロビジョニングされる 1 つ以上のノード上の InterSystems IRIS インスタンスで事前定義のユーザ・アカウントに対して設定されるパスワード。対応するコマンド行オプション : -iscPassword。パラメータとオプションの両方を省略した場合、ICM によってパスワードの入力が求められます。詳細は、"icm run コマンド" を参照してください。 オプション 既定値ファイル
Namespace 導入される InterSystems IRIS インスタンス上に作成されるネームスペース。このネームスペースは、icm session コマンドと icm sql コマンドの既定のネームスペースですが、コマンド行オプション -namespace で指定またはオーバーライドすることもできます。既定値 : IRISCLUSTER。 オプション 既定値ファイル
DockerImage icm run コマンドによる導入で使用される Docker イメージ。リポジトリ名を含める必要があります (Docker ドキュメントの "RepositoriesOpens in a new tab" を参照)。defaults.json ですべてのノードについて指定し、オプションで definitions.json で特定のノード定義についてオーバーライドすることができます。コマンド行オプション -image を使用して指定またはオーバーライドすることもできます。 必須  
DockerRegistry DockerImage によって指定されるイメージを保管する Docker リポジトリのホスト・サーバの DNS 名 (Docker ドキュメントの "About RegistryOpens in a new tab" を参照)。このパラメータが含まれていない場合、ICM は docker.comOpens in a new tab にある Docker のパブリック・レジストリを使用します。InterSystems Container Registry (ICR) の詳細は、“ICM の使用” の章の "ICM イメージのダウンロード" を参照してください。 必須 既定値ファイル
DockerUsername DockerRegistry (前の項目を参照) によって指定されたレジストリ上にある、DockerImage (前の項目を参照) で指定された Docker リポジトリにログインするために DockerPassword (次の項目を参照) と共に使用するユーザ名。パブリック・リポジトリの場合は必要ありません。このパラメータが含まれておらず、DockerImage によって指定されるリポジトリがプライベートの場合、ログインは失敗します。 必須 既定値ファイル
DockerPassword Docker レジストリにログインするために DockerUsername (前の項目を参照) と共に使用するパスワード。パブリック・リポジトリの場合は必要ありません。このフィールドが含まれておらず、DockerImage によって指定されるリポジトリがプライベートの場合、パスワードを入力するように求められます (入力内容はマスクされます)。($|() などの特殊文字がこのフィールドの値に含まれる場合は、2 つの \ 文字でエスケープする必要があります。例えば、パスワード abc$def は、abc\\$def として指定する必要があります。) 必須 既定値ファイル
DockerVersion プロビジョニングされるノードにインストールされる Docker のバージョン。一般的に、各 /Samples/.../defaults.json のバージョンはプラットフォームに適合しています。ただし、組織で別のバージョンの Docker を使用している場合は、そのバージョンをノードにインストールする必要があります。
Important:

インターシステムズのコンテナ・イメージは Open Container Initiative (OCIOpens in a new tab) の仕様に準拠しており、Docker Enterprise Edition エンジンを使用して構築されます。このエンジンは、OCI 標準を全面的にサポートしており、これによってイメージは認定Opens in a new tabされ、Docker Hub レジストリで公開することができます。

インターシステムズのイメージは、広く知られたコンテナ向け Ubuntu オペレーティング・システムを使用して構築およびテストされているため、オンプレミスとパブリック・クラウドの両方において、Linux ベースのオペレーティング・システム上の OCI に準拠するすべてのランタイム・エンジンでサポートされます。

オプション 既定値ファイル

DockerURL

サブスクリプションまたは試用に関連付けられている Docker Enterprise Edition リポジトリの URL。これを指定すると、プロビジョニングされたノードに Docker Community Edition ではなく Docker Enterprise Edition のインストールがトリガされます。Docker EE の詳細は、Docker ドキュメントの "Docker EnterpriseOpens in a new tab" を参照してください。

オプション 既定値ファイル
DockerInit false に設定した場合、Docker --init オプションは、既定と異なり、InterSystems IRIS コンテナ以外のすべてのコンテナに渡されません。既定値 : true (--init オプションは InterSystems IRIS コンテナに渡されません)。 オプション 既定値ファイル
Overlay Docker オーバーレイ・ネットワーク・タイプを決定します。通常は "weave" ですが、開発、パフォーマンス、またはデバッグを目的とする場合、または既存のクラスタへの導入時には "host" に設定できます。既定値 : weave (既存のクラスタへの導入時には host)。詳細は、Docker ドキュメントの "Use overlay networksOpens in a new tab" および Weave ドキュメントの "How the Weave Net Docker Network Plugins WorkOpens in a new tab" を参照してください。 オプション 既定値ファイル
DockerStorageDriver Docker によって使用されるストレージ・ドライバを指定します (Docker ドキュメントの "Docker storage driversOpens in a new tab" を参照)。指定できる値は、overlay2 (既定値) と btrfs です。overlay2 に設定した場合、FileSystem (次の項目を参照) は xfs に設定し、btrfs に設定した場合、FileSystem は btrfs に設定する必要があります。 オプション 既定値ファイル

FileSystem

プロビジョニングされるノードの永続ボリュームに使用するファイル・システムのタイプ。有効な値は xfs と btrfs です。既定値 : xfs。DockerStorageDriver (前の項目を参照) を overlay2 に設定した場合、FileSystem は xfs に設定する必要があります。DockerStorageDriver が btrfs の場合、FileSystem は btrfs である必要があります。

オプション 既定値ファイル (推奨)

OSVolumeSize

導入環境内のノードの OS ボリュームのサイズ (GB 単位)。既定値 : 32。マシン・イメージやテンプレート、インスタンス・タイプ、または OS ボリューム・タイプ・パラメータを指定する、該当パラメータに固有の設定によって制限されたり、それらの設定を優先して無視されることがあります ("プロバイダ固有のパラメータ" を参照)。

オプション  

DataVolumeSize

WIJVolumeSize

Journal1VolumeSize

Journal2VolumeSize

iris コンテナ用に作成する、対応する永続ストレージ・ボリュームのサイズ (GB 単位)。例えば、DataVolumeSize ではデータ・ボリュームのサイズを指定します。既定値は 10 ですが、Tencent の導入については DataVolumeSize を 60 以上にする必要があります。該当するボリューム・タイプ・パラメータによって制限されることがあります ("プロバイダ固有のパラメータ" を参照)。それぞれのボリュームには、対応するデバイス名パラメータ (DataDeviceName など。"デバイス名パラメータ" を参照) とマウント・ポイント・パラメータ (DataMountPoint など。すぐ後の項目と "ICM によってマウントされるストレージ・ボリューム" を参照) もあります。 オプション  

DataMountPoint

WIJMountPoint

Journal1MountPoint

Journal2MountPoint

対応する永続ボリュームがマウントされる、iris コンテナ内の場所。例えば、DataMountPoint ではデータ・ボリュームの場所を指定します。詳細は、"ICM によってマウントされるストレージ・ボリューム" を参照してください。既定値 : /irissys/{ data | wij | journal1j | journal2j }。それぞれのボリュームには、対応するデバイス名パラメータ (DataDeviceName など。"デバイス名パラメータ" を参照) とサイズ・パラメータ (DataVolumeSize など。前の項目を参照) もあります。

オプション  
Containerless true の場合、コンテナレス・モードが有効になり、コンテナではなく、インストール・キットから InterSystems IRIS が導入されます。付録 "コンテナレスの導入" を参照してください。既定値 : false。 オプション 既定値ファイル
Role 定義ファイルで指定されたエントリによってプロビジョニングされるノードのロール (DM や DATA など)。"ICM ノード・タイプ" を参照してください。 必須 定義ファイル
Count 定義ファイルのエントリからプロビジョニングするノードの数。既定値 : 1。 必須 定義ファイル
StartCount 定義ファイル内の特定のノード定義で番号付けを開始する値。例えば、DS ノードの定義に "StartCount": "3" が含まれている場合、最初にプロビジョニングされる DS ノードの名前は Label-DS-Tag-0003 です。 オプション 定義ファイル
LoadBalancer ノード・タイプ DATA、COMPUTE、AM、または WS の定義で true の場合、事前定義されたロード・バランサがプロバイダ AWS、GCP、Azure、および Tencent に自動的にプロビジョニングされます ("事前定義されたロード・バランサ" を参照)。ノード・タイプ CN または VM の定義で true の場合、他のパラメータが定義に含まれていれば、汎用ロード・バランサが追加されます ("汎用ロード・バランサ" を参照)。既定値 : false。 オプション 定義ファイル

AlternativeServers

タイプ WS の定義のリモート・サーバ選択アルゴリズム ("ノード・タイプ : Web サーバ" を参照)。 有効な値は LoadBalancing と FailOver です。既定値 : LoadBalancing。

オプション 定義ファイル

ApplicationPath

タイプ WS の定義について作成するアプリケーション・パス。末尾にスラッシュを付けないでください。

オプション 定義ファイル

IAMImage

InterSystems API Manager (IAM) イメージ。既定値なし。

オプション 定義ファイル

PostgresImage

Postgres イメージ (オプションの IAM コンポーネント)。既定値 : postgres:11.6。

オプション 定義ファイル

PrometheusImage

Prometheus イメージ (System Alerting and Monitoring [SAM] コンポーネント)。既定値 : prom/prometheus:v2.17.1。

オプション 定義ファイル

AlertmanagerImage

Alertmanager イメージ (SAM コンポーネント)。既定値 : prom/alertmanager:v0.20.0。

オプション 定義ファイル

GrafanaImage

Grafana イメージ (SAM コンポーネント)。既定値 : grafana/grafana:6.7.1。

オプション 定義ファイル

NginxImage

Nginx イメージ (SAM コンポーネント)。既定値 : nginx:1.17.9-alpine。

オプション 定義ファイル
UserCPF 導入時に InterSystems IRIS インスタンスの CPF をカスタマイズするために使用する構成マージ・ファイル ("カスタマイズされた InterSystems IRIS 構成を使用した導入" を参照)。 オプション  
SystemMode プロビジョニングされる 1 つ以上のノード上の InterSystems IRIS インスタンスの管理ポータルOpens in a new tabのタイトルに表示される文字列。一部の値 (LIVE、TEST、FAILOVER、DEVELOPMENT) を指定すると、表示にさらに変更が生じます。既定値 : ブランク。この設定は、[Startup]/SystemMode を構成マージ・ファイルに追加することによって指定することもできます (前の項目を参照)。 オプション  

セキュリティ関連のパラメータ

以下のテーブルのパラメータは、プロビジョニングされたノードおよび導入されたコンテナと ICM が安全に通信できるように、アクセスを提供し、必要なファイルと情報を指定するために使用されます。これらはすべて必須で、既定値ファイルのみで指定します。

パラメータ 定義
   
プロバイダ固有の資格情報およびアカウント・パラメータ (ファイルおよび値を入手するための詳細な手順を確認するには、プロバイダのリンクをクリックしてください)
  • プロバイダ固有 – AWS

    Credentials : AWS アカウントの公開/秘密鍵ペアを含むファイルへのパス。

  • プロバイダ固有 – GCP

    Credentials : GCP アカウントのサービス・アカウント・キーを含む JSON ファイルへのパス。

    Project : GCP プロジェクト ID。

  • プロバイダ固有 – Azure

    SubscriptionId : Microsoft Azure サブスクリプションを識別する一意の英数字文字列。

    TenantId : アプリケーションが作成された Azure Active Directory ディレクトリを識別する一意の英数字文字列。

    UseMSI : true の場合、ClientId と ClientSecret の代わりにマネージド・サービス ID を使用して認証します。既定値は false です。

    ClientId、ClientSecret : Azure アプリケーションを識別し、アプリケーションへのアクセスを提供する資格情報 (UseMSI が false である場合)。

  • プロバイダ固有 – Tencent

    SecretID、SecretKey : Tencent Cloud アカウントを識別し、アカウントへのアクセスを提供する一意の英数字文字列。

  • プロバイダ固有 – vSphere

    VSphereUser、VSpherePassword : vSphere を操作するための資格情報。

SSHUser プロビジョニングされたノードにアクセスするために ICM によって使用される、sudo アクセス権を持つ非 root アカウント。SSHUser のホーム・ディレクトリのルートは、Home フィールドを使用して指定できます。必要な値は、以下のようにプロバイダ固有です。
SSHPassword SSHUser によって指定されたユーザの初期パスワード。マーケットプレイスから入手した Docker イメージ、およびタイプ vSphere、Azure、および PreExisting の導入には必須。このパスワードはプロビジョニング時のみに使用され、その完了時にパスワード・ログインは無効になります。
SSHOnly true の場合、ICM はプロビジョニング時に SSH パスワード・ログインを試行しません (プロバイダ vSphere および PreExisting の場合のみ)。これにより、ICM はパスワードを使用してログインできなくなるので、SSH 公開鍵 (次の SSHPublicKey フィールドによって指定される) を各ノードでステージングする必要があります。既定値 : false。
SSHPublicKey SSH 公開鍵/秘密鍵ペアの公開鍵の ICM コンテナ内のパス。すべての導入環境について必須です。プロバイダ AWS については、SSH2 形式である必要があります。以下に例を示します。---- BEGIN SSH2 PUBLIC KEY --- AAAAB3NzaC1yc2EAAAABJQAAAQEAoa0 ---- BEGIN SSH2 PUBLIC KEY ---その他のプロバイダについては、OpenSSH 形式である必要があります。以下に例を示します。ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAoa0
SSHPrivateKey SSH 公開鍵/秘密鍵ペアの秘密鍵の ICM コンテナ内のパス。すべての導入環境について必須で、RSA 形式である必要があります。以下に例を示します。-----BEGIN RSA PRIVATE KEY----- MIIEogIBAAKCAQEAoa0ex+JKzC2Nka1 -----END RSA PRIVATE KEY-----
TLSKeyDir Docker、インターシステムズの Web ゲートウェイ、JDBC、およびミラーリングされた InterSystems IRIS データベースへのセキュリティ保護された接続を確立するために使用される TLS 鍵を含む ICM コンテナ内のディレクトリ。以下に例を示します。
  • ca.pem

  • cert.pem

  • key.pem

  • keycert.pem

  • server-cert.pem

  • server-key.pem

  • keystore.p12

  • truststore.jks

  • SSLConfig.properties

SSLConfig セキュリティ保護された JDBC 接続を確立するために使用される TLS 構成ファイルへの ICM コンテナ内のパス。既定 : このパラメータが指定されない場合、ICM は /TLSKeyDir/SSLConfig.Properties 内で構成ファイルを探します (前の項目を参照)。
PrivateSubnet true の場合、ICM は既存のプライベート・サブネットで導入を行うか、要塞ホストで使用する新しいプライベート・サブネットを作成して導入を行います。"プライベート・ネットワークへの導入" を参照してください。
WeavePassword Weave Net 上のトラフィックの暗号化に使用するパスワード。暗号化を有効にするには、既定値ファイルで null 以外の値を設定します。既定値 : null。
net_vpc_cidr 導入を行う既存のプライベート・ネットワークの CIDR。"既存のプライベート・ネットワーク内での導入" を参照してください。
net_subnet_cidr 既存のプライベート・ネットワーク内の ICM ノードのサブネットの CIDR。

ポートおよびプロトコルのパラメータ

通常、これらのパラメータについては既定値で十分です。これらのパラメータのいくつかを指定する必要が生じる可能性がある 2 つの使用事例については、付録 “カスタム・コンテナおよびサードパーティ・コンテナでの ICM の使用” の "ポート" および付録 “既存のクラスタへの導入” の "ポート" を参照してください。

パラメータ 定義
ForwardPort 指定されたロード・バランサによって転送されるポート ('転送元' と '転送先' の両方)。既定値 :
  • AM、DM、DATA、COMPUTE : SuperServerPort、WebServerPort (以下を参照)

  • WS : WebGatewayPort (以下を参照)

  • VM/CN : ユーザ定義 (汎用ロード・バランサを導入するには、含まれている必要があります)

すべてのポートで同じ ForwardProtocol (以下を参照) を使用する限り、値にはポートのコンマ区切りリストを指定できます。

ForwardProtocol 指定されたロード・バランサによって転送されるプロトコル。 値 TCP はすべてのプロバイダに有効です。プロバイダごとに追加のプロトコルを使用できます。
  • DATA、COMPUTE、DM、AM : TCP

  • WS : TCP

  • VM/CN : ユーザ定義 (汎用ロード・バランサを導入するには、パラメータが含まれている必要があります)

HealthCheckPort ターゲット・プール内のインスタンスの正常性を検証するために使用されるポート。既定値 :
  • AM、DM、DATA、COMPUTE : WebServerPort (以下を参照)

  • WS : 80

  • VM/CN : ユーザ定義 (汎用ロード・バランサを導入するには、パラメータが含まれている必要があります)

HealthCheckProtocol ターゲット・プール内のインスタンスの正常性を検証するために使用されるプロトコル。既定値 :
  • AM、DM、DATA、COMPUTE : HTTP

  • WS : TCP

  • VM/CN : ユーザ定義 (汎用ロード・バランサを導入するには、パラメータが含まれている必要があります)

HealthCheckPath ターゲット・プール内のインスタンスの正常性を検証するために使用されるパス。既定値 :
  • ミラーリングされていない DM/DATA、AM、COMPUTE : /csp/user/cache_status.cxw

  • ミラーリングされている DM、DATA : /csp/user/mirror_status.cxw

  • WS : 該当なし (TCP 正常性チェックにパスは使用されません)

  • VM/CN : HTTP 正常性チェック用にユーザが定義 (汎用ロード・バランサを導入するには、パラメータが含まれている必要があります)

ISCAgentPort * InterSystems IRIS ISC エージェントによって使用されるポート。既定値 : 2188。Containerless が false であるか、指定されておらず、Overlay が weave に設定されている場合 ("一般パラメータ" を参照)、このポートはファイアウォールで閉じられます。
SuperServerPort InterSystems IRIS スーパーサーバによって使用されるポート。既定値 : 1972。
WebServerPort InterSystems IRIS Web サーバ/管理ポータルによって使用されるポート。既定値 : 52773。非 root のコンテナレス・モードで WS ノードに導入されているインターシステムズの Web ゲートウェイ・インスタンスでも使用されます。

WebGatewayPort

InterSystems IRIS Web ゲートウェイによって使用されるポート。既定値 : 80 (webgatewaywebgateway-nginx)、52773 (webgateway-lockeddown)。

LicenseServerPort *

InterSystems IRIS ライセンス・サーバによって使用されるポート。既定値 : 4002。Containerless が false であるか、指定されておらず、Overlay が weave に設定されている場合 ("一般パラメータ" を参照)、このポートはファイアウォールで閉じられます。

* ICM がコンテナ・モードであり (Containerless が false であるか、指定されていない)、Overlay が weave に設定されている場合 ("一般パラメータ" を参照)、このポートはノードのファイアウォールで閉じられています。

CPF パラメータ

"カスタマイズされた InterSystems IRIS 構成を使用した導入" の説明に従って、UserCPF プロパティによって指定された構成マージ・ファイルを使用して、導入時に 1 つ以上の InterSystems IRIS インスタンスの CPF をカスタマイズする場合、含めることができない CPF 設定があります。ICM は先にそれらの値を読み取る必要があり、そのうえで後から CPF に追加するためです。したがって、構成ファイルで以下のパラメータ ("一般パラメータ" および "ポートおよびプロトコルのパラメータ" を参照) を指定することによって、これらの設定をカスタマイズする必要があります。

パラメータ

CPF 設定

WIJMountPoint

[config]/wijdir

Journal1MountPoint

[Journal]/CurrentDirectory

Journal2MountPoint

[Journal]/AlternateDirectory

SuperServerPort

[Startup]/DefaultPort

WebServerPort

[Startup]/WebServerPort

Note:

ICM の LicenseServerPort フィールドの値は、CPF の [LicenseServers] ブロックから取得され、構成されているライセンス・サーバ ("ICM の InterSystems IRIS ライセンス" を参照) の名前にバインドされます。

プロバイダ固有のパラメータ

このセクションの表は、各種クラウド・プロバイダに固有な、ICM で使用されるパラメータの一覧です。これらのパラメータの中には、複数のプロバイダで使用されるものがあります。例えば、InstanceTypeElasticIP、および VPCId の各パラメータは AWS と Tencent の両方の導入で使用できます。プロバイダ固有のパラメータの中には、名前が違っても目的が同じものがあります。例えば、AWS の AMIInstanceType、GCP の ImageMachineType、および Tencent の ImageIdInstanceType です。一方、これらのそれぞれに対応する 4 つの Azure パラメータがあります。

"一般パラメータ" のテーブルと同様に、このセクションのテーブルには、各パラメータがすべての導入環境で必須であるか、オプションであるか、および defaults.jsondefinitions.json のどちらで指定する必要があるか (使用する場合)、どちらで推奨されるか、どちらでも使用できるかを示します。それぞれのタイプの例については、"一般パラメータ" を参照してください。

Note:

PreExisting の導入のみに使用されるパラメータについては、付録 “既存のクラスタへの導入” の "PreExisting の定義ファイル" を参照してください。

マシン・イメージの選択

クラウド・プロバイダは、世界のさまざまな地域でデータ・センタを運営しています。このため、導入環境に合わせてカスタマイズする重要な項目の 1 つは、クラスタが導入される地域です ("一般パラメータ" の "Region" パラメータを参照してください)。もう 1 つの選択は、クラスタ内でホスト・ノードにどの仮想マシン・イメージを使用するかということです (パラメータはプロバイダによって異なります)。サンプル構成ファイルにはすべてのクラウド・プロバイダに有効な地域とマシン・イメージが定義されていますが、通常は個々のユーザの場所に合うように地域を変更する必要があります。マシン・イメージは地域に固有である場合が多いため、両方を選択する必要があります。

インターシステムズのコンテナ・イメージは Open Container Initiative (OCIOpens in a new tab) の仕様に準拠しており、Docker Enterprise Edition エンジンを使用して構築されます。このエンジンは、OCI 標準を全面的にサポートしており、これによってイメージは認定Opens in a new tabされ、Docker Hub レジストリで公開することができます。インターシステムズのイメージは、広く知られたコンテナ向け Ubuntu オペレーティング・システムと ICM を使用して構築およびテストされているため、オンプレミスとパブリック・クラウドの両方において、Linux ベースのオペレーティング・システム上の OCI に準拠するすべてのランタイム・エンジンで導入がサポートされます。

プロバイダ固有のパラメータの表

パラメータ 定義 使用 構成ファイル
Credentials

AWS アカウントの公開鍵/秘密鍵ペアを含むファイルへのパス。ダウンロードするには、AWS 管理コンソールにログインした後、AWS ドキュメントの "アクセスキーの管理 (コンソール)Opens in a new tab" を開き、AWS コンソールでアクセス・キーを管理するための手順に従います。

必須 既定値ファイル
AMI

プロビジョニングされるノードのプラットフォームおよび OS のテンプレートとして使用する AMI (マシン・イメージ)。AWS ドキュメントの "Amazon マシンイメージ (AMI)Opens in a new tab" を参照してください。例 : ami-a540a5e1。使用可能なパブリック AMI をリストするには、EC2 コンソールのナビゲーション・ペインで [AMIs] を選択し、[Public AMIs] でフィルタリングします。

必須  
InstanceType AWS および Tencent 上にプロビジョニングされるノードの計算リソースのテンプレートとして使用するインスタンス・タイプ。AWS ドキュメントの "Amazon EC2 インスタンスタイプOpens in a new tab" を参照してください。例 : m4.large。(一部のインスタンス・タイプは、一部の AMI と互換性がない場合があります。) 必須  
ElasticIP AWS および Tencent で Elastic IP 機能を有効にして、ホスト・ノードの再起動後も IP アドレスとドメイン名を保持します ("ホスト・ノードの再起動とリカバリ" を参照)。既定値 : false。 オプション 既定値ファイル

VPCId

AWS および Tencent への導入に使用する既存の仮想プライベート・クラウド (VPC)。新しいものは割り当てません。指定した VPC が、プロビジョニング解除の際に割り当て解除されることはありません。指定しない場合、PrivateSubnet ("セキュリティ関連のパラメータ" を参照) が true であれば、導入環境に新しい VPC が割り当てられ、プロビジョニング解除の際に割り当て解除されます。詳細は、"既存のプライベート・ネットワーク内での導入" を参照してください。

Note:

既定のアドレス空間 10.0.%d.0/24 に VPC を作成しない場合は、内部パラメータ net_subnet_cidr を指定する必要があります。例えば、範囲が 172.17.0.0/24 の VPC の場合、net_subnet_cidr を 172.17.%d.0/24 として指定する必要があります。

オプション 既定値ファイル

SubnetIds

AWS または Tencent の既存のプライベート・サブネットで導入を行う場合、サブネット ID のコンマ区切りリスト。Zone パラメータ ("一般パラメータ" を参照) によって指定された要素ごとに 1 つずつサブネット ID を追加します。

オプション 既定値ファイル
RouteTableId 既存のプライベート・サブネット上で導入する場合、ICM ホストへのアクセスに使用するルート・テーブル。指定すると、ICM では独自のテーブルを割り当てる代わりに、これを使用します (プロビジョニング解除の際に割り当て解除されません)。既定値なし。 オプション 既定値ファイル
InternetGatewayId 既存のプライベート・サブネットで導入を行う場合、ICM ホストへのアクセスに使用するインターネット・ゲートウェイ。指定されている場合、ICM は独自のものを割り当てる代わりに、これを使用します (プロビジョニング解除の際に割り当て解除しません)。既定値なし。 オプション 既定値ファイル
OSVolumeType 導入環境内のノードの OS ボリュームのディスク・タイプを指定します。これにより、OS ボリュームのサイズを設定する OSVolumeSize パラメータ ("一般パラメータ" を参照) の最大値が決まります。AWS ドキュメントの "Amazon EBS ボリュームの種類Opens in a new tab" を参照してください。Tencent でも同じパラメータ名が使用されます。既定値 : standard。 オプション  

DataVolumeType

WIJVolumeType

Journal1VolumeType

Journal2VolumeType

iris コンテナ用の対応する永続ストレージ・ボリューム ("ICM によってマウントされるストレージ・ボリューム" を参照) のディスク・タイプを指定します。これにより、ボリュームの最大サイズが決まります。例えば、DataVolumeType によって、データ・ボリュームのサイズを指定する DataVolumeSize パラメータ ("一般パラメータ" を参照) の最大値が決まります。AWS ドキュメントの "Amazon EBS ボリュームの種類Opens in a new tab" を参照してください。 Tencent でも同じパラメータ名が使用されます。既定値 : standard。 オプション  

OSVolumeIOPS

導入環境内のノードの OS ボリュームの IOPS 数を指定します。AWS ドキュメントの "I/O の特性とモニタリングOpens in a new tab" を参照してください。既定値 : 0。 オプション  

PlacementGroups

作成するプレイスメント・グループのコンマ区切りリスト (AWS ドキュメントの "プレイスメントグループOpens in a new tab" を参照)。空白のままにするか、省略した場合、プレイスメント・グループは作成されません。既定値 : なし。

オプション  

PlacementStrategy

PlacementGroups で指定したグループへのインスタンスの配置方法。有効な値は、cluster、partition、spread です。既定値 : cluster。

オプション  

PlacementMap

PlacementGroups の値と、指定した定義内のノードとのマッピングを指定します。インスタンスは、PlacementGroups に記述された順序で割り当てられます (ラップアラウンドあり)。既定値 : 0、1、2、3、...256。

オプション  
PlacementPartitionCount プレイスメント・グループに作成するパーティションの数。 PlacementStrategy を partition に設定しないと効果が得られません。既定値 : 2。 オプション  
PlacementSpreadLevel 個別のハードウェアにインスタンスのグループを配置します。PlacementStrategy を spread に設定しないと効果が得られません。有効な値は rack と host です。既定値 : なし オプション  

DataVolumeIOPS

WIJVolumeIOPS

Journal1VolumeIOPS

Journal2VolumeIOPS

iris コンテナ用の対応する永続ストレージ・ボリューム ("ICM によってマウントされるストレージ・ボリューム" を参照) の IOPS 数を指定します。例えば、DataVolumeIOPS ではデータ・ボリュームの IOPS 数を指定します。AWS ドキュメントの "I/O の特性とモニタリングOpens in a new tab" を参照してください。対応するボリューム・タイプ (すぐ前の項目を参照) が io1 の場合は、0 以外にする必要があります。既定値 : 0。

オプション  

LoadBalancerInternal

True に設定すると "internal" タイプのロード・バランサが作成され、それ以外は "external" タイプのロード・バランサが作成されます。既定値 : False。

オプション 定義ファイル
パラメータ 定義 使用 構成ファイル
Credentials

GCP アカウントのサービス・アカウント・キーを含む JSON ファイルへのパス。ダウンロードするには、GCP コンソールにログインし、プロジェクトを選択した後、GCP ドキュメントの "サービス アカウントキーの作成と管理Opens in a new tab" を開き、GCP コンソールでサービス・アカウント・キーを作成するための手順に従います。

必須 既定値ファイル
Project GCP プロジェクト ID。GCP ドキュメントの "プロジェクトの作成と管理Opens in a new tab" を参照してください。 必須 既定値ファイル
Image プロビジョニングされるノードのプラットフォームおよび OS のテンプレートとして使用するソース・マシン・イメージ。GCP ドキュメントの "イメージOpens in a new tab" を参照してください。例 : ubuntu-os-cloud/ubuntu-1804-bionic-v20190911。 必須  
MachineType プロビジョニングされるノードの計算リソースのテンプレートとして使用するマシン・タイプ。GCP ドキュメントの "マシンタイプOpens in a new tab" を参照してください。例 : n1-standard-1。 必須  
RegionMap

複数のリージョンにわたって導入する場合 ("GCP での複数のリージョンにわたる導入" を参照)、どのノードをどのリージョンに導入するかを指定します。既定値 : 0、1、2、...255。

オプション 定義ファイル
Network

導入に使用する既存の仮想プライベート・クラウド (VPC)。新しいものは割り当てません。指定した VPC が、プロビジョニング解除の際に割り当て解除されることはありません。指定しない場合、PrivateSubnet ("セキュリティ関連のパラメータ" を参照) が true であれば、導入環境に新しい VPC が割り当てられ、プロビジョニング解除の際に割り当て解除されます。詳細は、"既存のプライベート・ネットワーク内での導入" を参照してください。

オプション 既定値ファイル
Subnet 導入環境で使用する既存のプライベート・サブネット。新しいものは割り当てません。プロビジョニング解除の際に割り当て解除されることはありません。マルチリージョン導入の場合 ("GCP での複数のリージョンにわたる導入" を参照)、値は指定されたリージョンごとに 1 つのコンマ区切りリストである必要があります。指定しない場合、PrivateSubnet ("セキュリティ関連のパラメータ" を参照) が true であれば、導入環境に新しい VPC が割り当てられ、プロビジョニング解除の際に割り当て解除されます。詳細は、"既存のプライベート・ネットワーク内での導入" を参照してください。 オプション 既定値ファイル
OSVolumeType 導入環境内のノードの OS ボリュームのディスク・タイプを指定します。GCP ドキュメントの "ストレージ オプションOpens in a new tab" を参照してください。既定値 : pd-standard。 オプション  

DockerVolumeType

導入環境内のノードの Docker シン・プールに使用するブロック・ストレージ・デバイスのディスク・タイプを指定します。GCP ドキュメントの "ストレージ オプションOpens in a new tab" を参照してください。既定値 : pd-standard。 オプション  

DataVolumeType

WIJVolumeType

Journal1VolumeType

Journal2VolumeType

iris コンテナ用の対応する永続ストレージ・ボリューム ("ICM によってマウントされるストレージ・ボリューム" を参照) のディスク・タイプを指定します。例えば、DataVolumeType ではデータ・ボリュームのディスク・タイプを指定します。GCP ドキュメントの "ストレージ オプションOpens in a new tab" を参照してください。既定値 : pd-standard。 オプション  
パラメータ 定義 使用 構成ファイル
SubscriptionId Microsoft Azure サブスクリプションを識別する一意の英数字文字列。表示するには、Azure ポータルで [サブスクリプション] を選択するか、検索ボックスに “サブスクリプション” と入力し、表示される [サブスクリプション ID] を SubscriptionId に使用します。 必須 既定値ファイル
TenantId アプリケーションが作成された Azure Active Directory ディレクトリを識別する一意の英数字文字列。表示するには、Azure ポータルのナビゲーション・ペインで [Azure Active Directory] を選択した後、そのページのナビゲーション・ペインで [プロパティ] を選択し、表示される [ディレクトリ ID] を TenantId に使用します。 必須 既定値ファイル

UseMSI

true の場合、クライアント ID とクライアントの秘密鍵の代わりにマネージド・サービス ID を使用して認証します。Azure ドキュメントの "Azure リソースのマネージド ID とはOpens in a new tab" を参照してください。Azure にあるマシンから ICM を実行する必要があります。 必須 既定値ファイル

ClientId

ClientSecret

Azure アプリケーションを識別し、そのアプリケーションへのアクセスを提供する資格情報 (UseMSI が false である場合)。作成する手順は、以下のとおりです。

必須 既定値ファイル
Location ノードをプロビジョニングするリージョン。"一般パラメータ" の "Region" パラメータを参照してください。 必須 既定値ファイル
LocationMap

複数のリージョンにわたって導入する場合 ("Azure での複数のリージョンにわたる導入" を参照)、どのノードをどのリージョンに導入するかを指定します。既定値 : 0、1、2、...255。

オプション 定義ファイル
PublisherName プロビジョニングされるノードのプラットフォームおよび OS のテンプレートとして使用する、指定された Azure マシン・イメージを提供するエンティティ。例 : OpenLogic。 必須  
Offer 指定された Azure マシン・イメージのオペレーティング・システム。例 : UbuntuServer。 必須  
Sku 指定された Azure マシン・イメージのオペレーティング・システムのメジャー・バージョン。例 : 7.2。 必須  
Version 指定された Azure マシン・イメージのビルド・バージョン。例 : 7.2.20170105。 必須  

CustomImage

PublisherNameOfferSku、および Version の各フィールドで表される Azure マシン・イメージの代わりに、OS ディスクの作成に使用されるイメージ。値は、以下の形式の Azure URI です。

/subscriptions/subscription/resourceGroups/resource_group/providers /Microsoft.Compute/images/image_name

オプション  
Size プロビジョニングされるノードの計算リソースのテンプレートとして使用するマシン・サイズ。Azure ドキュメントの "Azure の仮想マシンのサイズOpens in a new tab" を参照してください。例 : Standard_DS1。 必須  

ResourceGroupName

導入環境で使用する既存のリソース・グループ。新しいものは割り当てません。指定したグループが、プロビジョニング解除の際に割り当て解除されることはありません。指定しない場合、PrivateSubnet ("セキュリティ関連のパラメータ" を参照) が true であれば、導入環境に新しいリソース・グループが割り当てられ、プロビジョニング解除の際に割り当て解除されます。詳細は、"既存のプライベート・ネットワーク内での導入" を参照してください。

オプション 既定値ファイル

VirtualNetworkName

導入環境で使用する既存のプライベート・サブネット。新しいものは割り当てません。プロビジョニング解除の際に割り当て解除されることはありません。マルチリージョン導入環境の場合 ("Azure での複数のリージョンにわたる導入" を参照)、値は指定されたリージョンごとに 1 つのコンマ区切りリストである必要があります。指定しない場合、PrivateSubnet ("セキュリティ関連のパラメータ" を参照) が true であれば、導入環境に新しい VPC が割り当てられ、プロビジョニング解除の際に割り当て解除されます。詳細は、"既存のプライベート・ネットワーク内での導入" を参照してください。

Note:

既定のアドレス空間 10.0.%d.0/24 にネットワークを作成しない場合は、net_subnet_cidr パラメータ ("セキュリティ関連のパラメータ" を参照) を指定する必要があります。

オプション 既定値ファイル

SubnetName

導入環境で使用する既存のサブネットの名前。新しいものは割り当てません。プロビジョニング解除の際に割り当て解除されることはありません。マルチリージョン導入環境の場合 ("Azure での複数のリージョンにわたる導入" を参照)、値は指定されたリージョンごとに 1 つのコンマ区切りリストである必要があります。指定しない場合、PrivateSubnet ("セキュリティ関連のパラメータ" を参照) が true であれば、導入環境に新しいサブネットが割り当てられ、プロビジョニング解除の際に割り当て解除されます。

Note:

プライベート・ネットワークでプロビジョニングを行う場合、定義ファイル内の各エントリについて一意の SubnetName パラメータと net_subnet_cidr パラメータを指定する必要があります (ただし、ResourceGroupName と VirtualNetworkName は既定値ファイル内で指定します)。要塞ホストを導入する場合 ("要塞ホストを使用したプライベート・ネットワークへの導入" を参照)、これには要塞ホストの定義も含まれます。

オプション 定義ファイル

AccountTier

ストレージ・アカウントのパフォーマンス・レベル (Azure ドキュメントの "ストレージ アカウントの概要Opens in a new tab" を参照)。HDD (Standard) または SSD (Premium) です。

オプション  

AccountReplicationType

ストレージ・アカウントのレプリケーション・タイプ。ローカル冗長ストレージ (LRS)、geo 冗長ストレージ (GRS)、ゾーン冗長ストレージ (ZRS)、または読み取りアクセス geo 冗長ストレージ (RAGRS) です。

オプション  
パラメータ 定義 使用 構成ファイル

SecretID

SecretKey

Tencent Cloud アカウントを識別し、アカウントへのアクセスを提供する一意の英数字文字列。ダウンロードするには、Tencent Cloud ドキュメントの "SignatureOpens in a new tab" を開き、“Applying for security credential” に記載されている手順に従います。

必須 既定値ファイル

ImageId

プロビジョニングされるノードのプラットフォームおよび OS のテンプレートとして使用するマシン・イメージ。Tencent ドキュメントの "イメージの概要Opens in a new tab" を参照してください。例 : img-pi0ii46r。

必須 (次の項目を参照)  

OSName

ImageId (前の項目を参照) が指定されていない場合、ICM は、このフィールドと一致するイメージを探します。このフィールドでは正規表現がサポートされています。既定値 : ubuntu。

必須 (前の項目を参照)  

InstanceFamily

インスタンス・タイプを選択する際に使用するインスタンス・ファミリ。InstanceType (次の項目を参照) が指定されていない場合、ICM は、InstanceFamily、CPUCoreCount、および MemorySize (後述の項目を参照) と一致するインスタンス・タイプを探します。既定値 : S3。 必須 (次の項目を参照)  

InstanceType

AWS および Tencent 上にプロビジョニングされるノードの計算リソースのテンプレートとして使用するインスタンス・タイプ。Tencent ドキュメントの "インスタンス仕様Opens in a new tab" を参照してください。例 : S2.MEDIUM4。

必須 (前の項目を参照)  
ElasticIP AWS および Tencent で Elastic IP 機能を有効にして、ホスト・ノードの再起動後も IP アドレスとドメイン名を保持します ("ホスト・ノードの再起動とリカバリ" を参照)。既定値 : false。 オプション 既定値ファイル

VPCId

AWS および Tencent への導入に使用する既存の仮想プライベート・クラウド (VPC)。新しいものは割り当てません。指定した VPC が、プロビジョニング解除の際に割り当て解除されることはありません。指定しない場合、PrivateSubnet ("セキュリティ関連のパラメータ" を参照) が true であれば、導入環境に新しい VPC が割り当てられ、プロビジョニング解除の際に割り当て解除されます。詳細は、"既存のプライベート・ネットワーク内での導入" を参照してください。

Note:

既定のアドレス空間 10.0.%d.0/24 に VPC を作成しない場合は、内部パラメータ net_subnet_cidr を指定する必要があります。例えば、範囲が 172.17.0.0/24 の VPC の場合、net_subnet_cidr を 172.17.%d.0/24 として指定する必要があります。

オプション 既定値ファイル

SubnetIds

AWS または Tencent の既存のプライベート・サブネットで導入を行う場合、サブネット ID のコンマ区切りリスト。Zone パラメータ ("一般パラメータ" を参照) によって指定された要素ごとに 1 つずつサブネット ID を追加します。

オプション 既定値ファイル

CPUCoreCount

インスタンス・タイプを選択する際に照合する CPU コア。InstanceType (前述の項目を参照) が指定されていない場合、ICM は、InstanceFamily、CPUCoreCount、および MemorySize (前述の項目を参照) と一致するインスタンス・タイプを探します。既定値 : 2。 オプション  

MemorySize

インスタンス・タイプを選択する際に照合するメモリ・サイズ。InstanceType (前述の項目を参照) が指定されていない場合、ICM は、InstanceFamily、CPUCoreCount、および MemorySize (前述の項目を参照) と一致するインスタンス・タイプを探します。既定値 : 4 GB。 オプション  

OSVolumeType

導入環境内のノードの OS ボリュームのディスク・タイプを指定します。Tencent ドキュメントの "Data Types : DataDiskOpens in a new tab" を参照してください。AWS でも同じパラメータ名が使用されます。既定値 : CLOUD_BASIC。 オプション  

DockerVolumeType

導入環境内のノードの Docker シン・プールに使用するブロック・ストレージ・デバイスのディスク・タイプを指定します。Tencent ドキュメントの "Data Types : DataDiskOpens in a new tab" を参照してください。AWS でも同じパラメータ名が使用されます。既定値 : CLOUD_BASIC。 オプション  

DataVolumeType

WIJVolumeType

Journal1VolumeType

Journal2VolumeType

iris コンテナ用の対応する永続ストレージ・ボリューム ("ICM によってマウントされるストレージ・ボリューム" を参照) のディスク・タイプを指定します。例えば、DataVolumeType ではデータ・ボリュームのディスク・タイプを指定します。AWS でも同じパラメータ名が使用されます。Tencent ドキュメントの "Data Types : DataDiskOpens in a new tab" を参照してください。既定値 : CLOUD BASIC。 オプション  
パラメータ 定義 使用 構成ファイル
Server vCenter サーバの名前。例 : tbdvcenter.internal.acme.com. 必須 既定値ファイル
Datacenter データ・センタの名前。 必須 既定値ファイル
DatastoreCluster

仮想マシンのファイルを保存するデータストアのコレクション。VMware ドキュメントの "データストア クラスタの作成Opens in a new tab" を参照してください。例 : DatastoreCluster1。

必須 既定値ファイル
DataStore 設定する場合、仮想マシンのファイルを保存する、データストア・クラスタ内のデータストアを 1 つ指定します。例 : Datastore1。 オプション 既定値ファイル
ComputeCluster 計算リソース、DRS、および HA の管理に使用するホストのクラスタ。例 : ComputeCluster1。 必須 既定値ファイル

VSphereUser

VSpherePassword

vSphere を操作するための資格情報。VMware ドキュメントの "About vSphere AuthenticationOpens in a new tab" を参照してください。 必須 既定値ファイル
DNSServers 仮想ネットワークの DNS サーバのリスト。例 : 172.16.96.1,172.17.15.53。 必須 既定値ファイル
DNSSuffixes 仮想ネットワーク・アダプタの名前解決接尾語のリスト。例 : internal.acme.com 必須 既定値ファイル
Domain プロビジョニングされるノードの FQDN。例 : internal.acme.com 必須 既定値ファイル
NetworkInterface ネットワーク・インタフェースに割り当てるラベル。例 : VM Network。 オプション 既定値ファイル

ResourcePool

vSphere リソース・プールの名前。VMware ドキュメントの "リソース プールの管理Opens in a new tab" を参照してください。例 : ResourcePool1。

オプション 既定値ファイル
Template プロビジョニングされるノードのプラットフォームおよび OS のテンプレートとして使用する仮想マシンのマスタ・コピー (マシン・イメージ)。例 : ubuntu1804lts。 必須  
VCPU プロビジョニングされるノード内の CPU 数。例 : 2。 オプション  
Memory プロビジョニングされるノード内のメモリの量 (MB 単位)。例 : 4096。 オプション  

GuestID

このオペレーティング・システム・タイプ用のゲスト ID。 VMware サポートの Web サイトにある "Enum - VirtualMachineGuestOsIdentifierOpens in a new tab" を参照してください。既定値 : other3xLinux64Guest。

オプション  

WaitForGuestNetTimeout

仮想マシンで使用可能な IP アドレスを待機する時間 (分単位)。既定値 : 5。

オプション  

ShutdownWaitTimeout

仮想マシンに必要な更新を行ったときの、ゲストの適切なシャットダウンまでの待機時間 (分単位)。既定値 : 3。

オプション  

MigrateWaitTimeout

仮想マシンの移行が完了するまでの待機時間 (分単位)。既定値 : 10。

オプション  

CloneTimeout

仮想マシンのクローン化が完了するまでの待機時間 (分単位)。既定値 : 30。

オプション  

CustomizeTimeout

Terraform がカスタマイゼーションの完了を待機する時間 (分単位)。既定値 : 10。

オプション  

DiskPolicy

導入のディスクのプロビジョニング・ポリシー (VMware ドキュメントの "About Virtual Disk Provisioning PoliciesOpens in a new tab" を参照)。値は以下のとおりです。

  • thin — シン・プロビジョニング

  • lazy — シック・プロビジョニング (Lazy Zeroed)

  • eagerZeroedThick — シック・プロビジョニング (Eager Zeroed)

既定値 : lazy。

オプション  

SDRSEnabled

指定すると、仮想マシンに対してストレージ DRS (VMware ドキュメントの "ストレージ DRS の有効化と無効化Opens in a new tab" を参照) が有効になるかどうかが決まります。指定しない場合は、現在のデータストア・クラスタの設定が使用されます。既定値 : 現在のデータストア・クラスタの設定。

オプション  

SDRSAutomationLevel

これを指定すると、仮想マシンのストレージ DRS 自動化レベルが判別されます。指定しない場合は、現在のデータストア・クラスタの設定が使用されます。値は automated または manual です。既定値 : 現在のデータストア・クラスタの設定。

オプション  

SDRSIntraVMAffinity

指定すると、仮想マシンの VM 内アフィニティの設定が決まります (VMware ドキュメントの "Override VMDK Affinity RulesOpens in a new tab" を参照)。指定しない場合は、現在のデータストア・クラスタの設定が使用されます。値は以下のとおりです。

  • true — この仮想マシンのすべてのディスクが同一のデータストア上で保持されます。

  • false — クラスタの要件を満たす場合、ストレージ DRS は複数のデータストア上に個々のディスクを配置できます。

既定値 : 現在のデータストア・クラスタの設定。

オプション  

SCSIControllerCount

指定されたホスト・ノードの SCSI コントローラの数。1 ~ 4 の数値にする必要があります。OS ボリュームは常に最初の SCSI コントローラに配置されます。vSphere では、Template フィールドによって指定されたテンプレートに定義されている数より多くの SCSI コントローラを作成できない場合があります。

既定値 : 1。

オプション  

DockerVolumeSCSIController

Docker ボリュームの配置先の SCSI コントローラ。 1 ~ 4 の数値にする必要があり、SCSIControllerCount より大きい数値は指定できません。

既定値 : 1。

オプション  

DataVolumeSCSIController

WIJVolumeSCSIController

Journal1VolumeSCSIController

Journal2VolumeSCSIController

iris コンテナ内の対応するボリュームを配置する SCSI コントローラ。例えば、DataVolumeSCSIController ではデータ・ボリュームのコントローラを指定します。 1 ~ 4 の数値にする必要があり、SCSIControllerCount より大きい数値は指定できません。

既定値 : 1。

オプション  
Note:

Template プロパティによって指定される VMware vSphere テンプレートの要件は、付録 “既存のクラスタへの導入” の "ホスト・ノードの要件" で説明しているものとよく似ています (例えば、パスワードを使用しない sudo アクセス)。

VMware vSphere を利用している多数のユーザのニーズに対処するために、このリリースの ICM では、vSphere がサポートされています。特有の vSphere 構成と基盤のハードウェア・プラットフォームに応じて、ICM を使用して仮想マシンをプロビジョニングするには、このガイドに記載されていない追加の拡張や調整が必要になることがあります。大規模で複雑な導入の場合は特に、その可能性があります。また、ICM を使用した仮想マシンのプロビジョニングがプロダクションでの使用に適さないこともあります。完全なサポートは、今後のリリースで予定されています。

デバイス名パラメータ

以下に示すパラメータでは、/dev に配置されるデバイス・ファイルを指定します。これらのファイルは、ICM によって作成され、InterSystems IRIS によって使用される永続ボリュームを表します。これらの永続ボリュームと、これらのパラメータのプロバイダおよび OS 固有の既定値のテーブルについては、"ICM によってマウントされるストレージ・ボリューム" を参照してください。PreExisting の導入については、付録 “既存のクラスタへの導入” の "ストレージ・ボリューム" を参照してください。

パラメータ 永続ボリュームの用途

DataDeviceName

データベース

WIJDeviceName

WIJ ディレクトリ

Journal1DeviceName

プライマリ・ジャーナル・ディレクトリ

Journal2DeviceName

代替ジャーナル・ディレクトリ

ユーザ・パラメータのアルファベット順のリスト

以下のテーブルは、このセクションの前述のテーブルで説明したすべてのパラメータをアルファベット順にリストしたものです。それぞれの定義を含むテーブルへのリンクも用意されています。

パラメータ 定義のテーブル

AccountReplicationType

プロバイダ固有 – Azure

AccountTier

プロバイダ固有 – Azure

AlternativeServers

一般

AMI

プロバイダ固有 – AWS

ApplicationPath

一般

ClientId

プロバイダ固有 – Azureセキュリティ

ClientSecret

プロバイダ固有 – Azureセキュリティ

CloneTimeout

プロバイダ固有 – vSphere

ComputeCluster

プロバイダ固有 – vSphere

Count

一般

CPUCoreCount

プロバイダ固有 – Tencent

Credentials

プロバイダ固有 – AWSプロバイダ固有 – GCPセキュリティ

CustomizeTimeout

プロバイダ固有 – vSphere

Datacenter

プロバイダ固有 – vSphere

DataDeviceName

デバイス名

DataMountPoint

一般

Datastore

プロバイダ固有 – vSphere

DatastoreCluster

プロバイダ固有 – vSphere

DataVolumeIOPS

プロバイダ固有 – AWS

DataVolumeSCSIController

プロバイダ固有 – vSphere

DataVolumeSize

一般

DataVolumeType

プロバイダ固有 – AWSプロバイダ固有 – GCPプロバイダ固有 – Tencent

DiskPolicy

プロバイダ固有 – vSphere

DNSName

PreExisting

DNSServers

プロバイダ固有 – vSphere

DNSSuffixes

プロバイダ固有 – vSphere

DockerImage

一般

DockerInit

一般

DockerPassword

一般

DockerRegistry

一般

DockerStorageDriver

一般

DockerURL

一般

DockerUsername

一般

DockerVersion

一般

DockerVolumeIOPS

プロバイダ固有 – AWS

DockerVolumeSCSIController

プロバイダ固有 – vSphere

DockerVolumeSize

一般

DockerVolumeType

プロバイダ固有 – AWSプロバイダ固有 – GCPプロバイダ固有 – Tencent

Domain

プロバイダ固有 – vSphere

ElasticIP

プロバイダ固有 – AWSプロバイダ固有 – Tencent

FileSystem

一般

GuestID

プロバイダ固有 – vSphere

Image

プロバイダ固有 – GCP

ImageId

プロバイダ固有 – Tencent

InstanceFamily

プロバイダ固有 – Tencent

InstanceType

プロバイダ固有 – AWSプロバイダ固有 – Tencent

InternetGatewayId

プロバイダ固有 – AWS

IPAdress

PreExisting

ISCPassword

一般

Journal1DeviceName

デバイス名

Journal1MountPoint

一般CPF

Journal1VolumeIOPS

プロバイダ固有 – AWS

Journal1VolumeSCSIController

プロバイダ固有 – vSphere

Journal1VolumeSize

一般

Journal1VolumeType

プロバイダ固有 – AWSプロバイダ固有 – GCPプロバイダ固有 – Tencent

Journal2DeviceName

デバイス名

Journal2MountPoint

一般CPF

Journal2VolumeIOPS

プロバイダ固有 – AWS

Journal2VolumeSCSIController

プロバイダ固有 – vSphere

Journal2VolumeSize

一般

Journal2VolumeType

プロバイダ固有 – AWSプロバイダ固有 – GCPプロバイダ固有 – Tencent

Label

一般

LicenseDir

一般

LicenseKey

一般

LicenseServerPort

ポートCPF

LoadBalancer

一般

LoadBalancerInternal

プロバイダ固有 – AWS

Location

プロバイダ固有 – Azure

LocationMap

プロバイダ固有 – Azure

MachineType

プロバイダ固有 – GCP

Memory

プロバイダ固有 – vSphere

MemorySize

プロバイダ固有 – Tencent

MigrateWaitTimeout

プロバイダ固有 – vSphere

Mirror

一般

MirrorMap

一般

Namespace

一般

NetworkInterface

プロバイダ固有 – vSphere

OSName

プロバイダ固有 – Tencent

OSVolumeIOPS

プロバイダ固有 – AWS

OSVolumeSize

一般

OSVolumeType

プロバイダ固有 – AWSプロバイダ固有 – GCPプロバイダ固有 – Tencent

Overlay

一般

PlacementGroups

プロバイダ固有 – AWS

PlacementStrategy

プロバイダ固有 – AWS

PlacementMap

プロバイダ固有 – AWS
PlacementPartitionCount プロバイダ固有 – AWS
PlacementSpreadLevel プロバイダ固有 – AWS

Project

プロバイダ固有 – GCP

Provider

一般

ProxyImage

一般

Region

一般

RegionMap プロバイダ固有 – GCP

ResourceGroupName

プロバイダ固有 – Azure

ResourcePool

プロバイダ固有 – vSphere

Role

一般

RouteTableId

プロバイダ固有 – AWS

SCSIControllerCount

プロバイダ固有 – vSphere

SDRSAutomationLevel

プロバイダ固有 – vSphere

SDRSEnabled

プロバイダ固有 – vSphere

SDRSIntraVMAffinity

プロバイダ固有 – vSphere

SecretID

プロバイダ固有 – Tencentセキュリティ

SecretKey

プロバイダ固有 – Tencentセキュリティ

Server

プロバイダ固有 – vSphere

ShutdownWaitTimeout

プロバイダ固有 – vSphere

Size

プロバイダ固有 – Azure

SSHOnly

セキュリティ

SSHPassword

セキュリティ

SSHPrivateKey

セキュリティ

SSHPublicKey

セキュリティ

SSHUser

セキュリティ

SSLConfig

セキュリティ

StartCount

一般

SubnetName

プロバイダ固有 – Azure

SubnetIds

プロバイダ固有 – AWSプロバイダ固有 – Tencent

SubscriptionId

セキュリティ

SuperServerPort

ポートCPF

SystemMode

一般

Tag

一般

Template

プロバイダ固有 – vSphere

TenantId

セキュリティ

TLSKeyDir

セキュリティ

UseMSI

プロバイダ固有 – Azureセキュリティ

UserCPF

一般

VCPU

プロバイダ固有 – vSphere

VirtualNetworkName

プロバイダ固有 – Azure

VPCId

プロバイダ固有 – AWSプロバイダ固有 – Tencent

VspherePassword

プロバイダ固有 – vSphereセキュリティ

VsphereUser

プロバイダ固有 – vSphereセキュリティ

WaitForGuestNetTimeout

プロバイダ固有 – vSphere

WeavePassword セキュリティ

WebGatewayPort

ポート

WebServerPort

ポートCPF

WIJDeviceName

デバイス名

WIJMountPoint

一般CPF

WIJVolumeIOPS

プロバイダ固有 – AWS

WIJVolumeSCSIController

プロバイダ固有 – vSphere

WIJVolumeSize

一般

WIJVolumeType

プロバイダ固有 – AWSプロバイダ固有 – GCPプロバイダ固有 – Tencent

Zone

一般

ZoneMap

一般

ICM ノード・タイプ

このセクションでは、ICM によってプロビジョニングおよび導入できるノードのタイプと、導入される InterSystems IRIS 構成で可能なロールについて説明します。プロビジョニングされるノードのタイプは、[ロール] フィールドによって決まります。

以下のテーブルにノード・タイプの要約を示し、その後で詳しく説明します。

ICM ノード・タイプ
ノード・タイプ 構成ロール 導入するインターシステムズのイメージ
DATA シャード・クラスタ・データ・ノード iris (InterSystems IRIS インスタンス)
COMPUTE シャード・クラスタ計算ノード iris (InterSystems IRIS インスタンス)

DM

分散キャッシュ・クラスタ・データ・サーバ

スタンドアロンの InterSystems IRIS インスタンス

[ネームスペース・レベルのアーキテクチャ : シャード・マスタ・データ・サーバ]

iris (InterSystems IRIS インスタンス)

DS

[ネームスペース・レベルのアーキテクチャ : シャード・データ・サーバ]

iris (InterSystems IRIS インスタンス)

QS

[ネームスペース・レベルのアーキテクチャ : シャード・クエリ・サーバ]

iris (InterSystems IRIS インスタンス)

AM

分散キャッシュ・クラスタ・アプリケーション・サーバ

iris (InterSystems IRIS インスタンス)

AR

ミラー・アービター

arbiter (InterSystems IRIS ミラー・アービター)

WS

Web サーバ

webgateway (インターシステムズの Web ゲートウェイ)
SAM System Alerting and Monitoring (SAM) ノード sam (InterSystems System Alerting and Monitoring アプリケーション)

LB

ロード・バランサ

VM

仮想マシン

CN カスタム・コンテナ・ノードおよびサードパーティ・コンテナ・ノード
BH 要塞ホスト
Important:

上のテーブルに示されているインターシステムズのイメージは、対応するノード・タイプで必須であり、対応しないノードに導入することはできません。DockerImage フィールドまたは icm run コマンドの -image オプションでノードについて誤ったインターシステムズのイメージが指定された場合 (例えば、iris イメージが AR (アービター) ノードについて指定された場合や、インターシステムズのいずれかのイメージが CN ノードについて指定された場合)、導入は失敗し、ICM から該当するメッセージが返されます。インターシステムズのイメージの導入の詳細は、“ICM の使用” の章にある "icm run コマンド" を参照してください。

Note:

上のテーブルには、このドキュメントの以前のバージョンに記載されていたネームスペース・レベルのシャーディング・アーキテクチャOpens in a new tabのシャード・クラスタのロールが含まれています。これらのロール (DM、DS、QS) は引き続き ICM で使用できますが、同じ導入環境内で DATA ノードや COMPUTE ノードと組み合わせることはできません。

ロール DATA : シャード・クラスタ・データ・ノード

"スケーラビリティ・ガイド" の “シャーディングによるデータ量に応じた水平方向の拡張” の章の "InterSystems IRIS のシャーディングの概要Opens in a new tab" などのセクションに記載されているように、一般的なシャード・クラスタはデータ・ノードのみで構成され、それらのノード間でシャード・データが分割されるため、definitions.json ファイルに必要なのは DATA ノードの定義のみです。DATA ノードを定義する場合、導入環境はシャード・クラスタである必要があり、DATA ノードと共に定義できる他のノード・タイプは COMPUTE のみです。

ノード定義の MirrorMap の設定と一致する数でプロビジョニングする場合、DATA ノードをミラーリングすることができます ("ミラーリングの規則" を参照)。クラスタ内の DATA ノードは、すべてをミラーリングするか、すべてをミラーリングしないかのどちらかにする必要があります。

シャード・クラスタ内のデータ・ノード間の唯一の相違は、最初に構成されたノード (ノード 1 と呼ばれる) には、そのノードへのシャード・データの割り当て分に加えて、クラスタのシャード化されていないデータ、メタデータ、およびコードがすべて格納される点です。ただし、ストレージ要件の違いは一般的にごくわずかです。すべてのデータ、メタデータ、およびコードをクラスタ内のいずれのノードでも認識できるので、すべてのノード間でアプリケーション接続を負荷分散して、クエリの並列処理や分割されたキャッシュを最大限に活用することができます。ロード・バランサを DATA ノードに割り当てることができます。"ロール LB : ロード・バランサ" を参照してください。

ロール COMPUTE : シャード・クラスタ計算ノード

常に大量のデータが取り込まれるような状況でも、クエリの遅延がきわめて小さいことが求められる高度な使用事例では、計算ノードをシャード・クラスタに追加して、クエリを処理するための透過的なキャッシュ層を提供することで、クエリとデータ取り込みの作業負荷を分離し、両方のパフォーマンスを向上させることができます (詳細は、"スケーラビリティ・ガイド" の "作業負荷の分離とクエリ・スループットの向上のための計算ノードの導入Opens in a new tab" を参照してください)。

計算ノードを追加することによってパフォーマンスが大幅に向上するのは、データ・ノードごとに計算ノードが少なくとも 1 つある場合のみです。したがって、少なくとも DATA ノードと同数の COMPUTE ノードを定義する必要があります。定義ファイル内の DATA ノードの数が COMPUTE ノードの数よりも多い場合、ICM は警告を発行します。1 つのデータ・ノードに対して複数の計算ノードを構成すると、クラスタのクエリ・スループットをさらに向上させることができます。その際、ベスト・プラクティスとして、ICM が定義された COMPUTE ノードを DATA ノード全体にできるだけ均等に分散できるように、各データ・ノードの計算ノードの数が同じになるように構成することをお勧めします。

COMPUTE ノードではクエリの実行のみがサポートされ、データは格納されないので、メモリと CPU を重視し、ストレージを最小限に抑えるなど、ニーズに合わせてインスタンス・タイプやその他の設定を調整できます。COMPUTE ノードにはデータが格納されないので、ミラーリングすることはできません。

ロード・バランサを COMPUTE ノードに割り当てることができます。"ロール LB : ロード・バランサ" を参照してください。

ロール DM : 分散キャッシュ・クラスタ・データ・サーバ、スタンドアロン・インスタンス、シャード・マスタ・データ・サーバ

ロール AM の複数のノードと DM ノード (ミラーリングなし、またはあり) が指定された場合、これらは InterSystems IRIS 分散キャッシュ・クラスタとして導入され、前者はアプリケーション・サーバ、後者はデータ・サーバとして動作します。

単独で導入されるロール DM のノード (ミラーリングなし、またはあり) は、スタンドアロン InterSystems IRIS インスタンスになります。

DM ノード (ミラーリングあり、またはミラーリングなし)、DS ノード (ミラーリングあり、またはミラーリングなし)、および (オプションで) QS ノードが指定されている場合、これらはネームスペース・レベルOpens in a new tabのシャード・クラスタとして導入されます。

ロール DS : シャード・データ・サーバ

ネームスペース・レベルOpens in a new tabのアーキテクチャでは、シャード・クラスタにロードされた各シャード・テーブルの行分割がデータ・シャードに 1 つ格納されます。データ・シャードをホストするノードは、シャード・データ・サーバと呼ばれます。1 つのクラスタに複数 (最多で 200 台超) のシャード・データ・サーバを含めることができます。偶数台のシャード・データ・サーバを導入しミラーリングを指定することで、シャード・データ・サーバをミラーリングできます。

ロール QS : シャード・クエリ・サーバ

ネームスペース・レベルのアーキテクチャでは、シャード・クエリ・サーバが、割り当てられたデータ・シャードへのクエリ・アクセスを提供することにより、クエリとデータ取り込みの作業負荷間の干渉を最小限に抑え、マルチユーザによる大量のクエリ作業負荷を処理するシャード・クラスタの処理能力を高めます。シャード・クエリ・サーバが導入されている場合、導入されたシャード・データ・サーバにラウンドロビン方式で割り当てられます。ミラーリングされたシャード・データ・サーバのフェイルオーバー時に、シャード・クエリ・サーバはアプリケーションの接続を自動的にリダイレクトします。

ロール AM : 分散キャッシュ・クラスタ・アプリケーション・サーバ

ロール AM の複数のノードと DM ノードが指定された場合、これらは InterSystems IRIS 分散キャッシュ・クラスタとして導入され、前者はアプリケーション・サーバ、後者はデータ・サーバとして動作します。データ・サーバがミラーリングされている場合は、フェイルオーバー後のアプリケーション接続のリダイレクトが自動的に行われます。

ロード・バランサを AM ノードに割り当てることができます。"ロール LB : ロード・バランサ" を参照してください。

ロール AR : ミラー・アービター

DATA ノード (シャード・クラスタ DATA ノード)、DM ノード (分散キャッシュ・クラスタ・データ・サーバ、スタンドアロン InterSystems IRIS インスタンス、またはネームスペース・レベルのシャード・マスタ・データ・サーバ)、または DS ノード (ネームスペース・レベルのシャード・データ・サーバ) がミラーリングされている場合は、自動フェイルオーバーを円滑に行うためにアービター・ノードを導入することを強くお勧めします。クラスタ内のすべてのミラーに対してアービター・ノードは 1 つあれば十分で、複数のアービターはサポートされておらず、ICM によって無視されます (ミラーリングされていないクラスタ内のアービター・ノードも同様に無視されます)。

AR ノードは InterSystems IRIS インスタンスを含んでおらず、別のイメージを使用して ISCAgent コンテナを実行します。このアービター・イメージは、AR ノードの定義ファイル・エントリ内の DockerImage フィールドを使用して指定する必要があります。詳細は、"icm run コマンド" を参照してください。

アービターの詳細は、"高可用性ガイド" の “ミラーリングOpens in a new tab” の章を参照してください。

ロール WS : Web サーバ

1 つの導入環境に Web サーバをいくつでも含めることができます。各 Web サーバ・ノードには、Apache Web サーバと共にインターシステムズの Web ゲートウェイのインストールが含まれます。ICM は、インターシステムズの Web ゲートウェイのリモート・サーバ・リストを以下のように生成します。

  • DATA ノードと COMPUTE ノードを導入する場合 (ノード・レベルのシャード・クラスタ)、すべての DATA ノードと COMPUTE ノード。COMPUTE ノードを導入しない場合は、すべての DATA ノード。

  • AM ノードを導入する場合 (分散キャッシュ・クラスタ)、すべての AM ノード。

  • それ以外の場合は、DM ノード (スタンドアロン・インスタンスまたはネームスペース・レベルのシャード・クラスタ)。

    Note:

    Web サーバ層でネームスペース・レベルのシャード・クラスタを導入する場合、カスタムまたはサードパーティのロード・バランサを手動で導入して、クラスタ内の DS ノードおよび (存在する場合) QS ノードの間で接続を分散し ("スケーラビリティ・ガイド" の "ネームスペース・レベル・アーキテクチャの導入Opens in a new tab" で推奨されているとおり)、Web ゲートウェイ構成を手動で編集して、リモート・サーバのリストにロード・バランサのアドレスを入力できます (詳細は、"Web ゲートウェイ構成ガイド" の "ミラー構成、フェイルオーバー、および負荷分散Opens in a new tab" を参照)。

ミラーリングされた DATA ノードと DM ノードについては、ミラー認識接続が作成され、フェイルオーバー後のアプリケーション接続のリダイレクトが自動的に行われます。Web サーバとリモート・サーバの間の通信は TLS モードで動作するように構成されます。

ロード・バランサを WS ノードに割り当てることができます。"ロール LB : ロード・バランサ" を参照してください。

WS ノードは InterSystems IRIS インスタンスを含んでおらず、別のイメージを使用して Web ゲートウェイ・コンテナを実行します。"icm run コマンド" で説明しているように、webgateway イメージは、definitions.json ファイルの WS ノード定義に DockerImage フィールドを含めることで指定できます。以下に例を示します。

{
    "Role": "WS",
    "Count": "3",
    "DockerImage": "intersystems/webgateway:2022.2.0.221.0",
    "ApplicationPath": "/acme",
    "AlternativeServers": "LoadBalancing"
}

ApplicationPath フィールドを指定する場合、その値は、Web ゲートウェイのインスタンスごとのアプリケーション・パスの作成に使用されます。このアプリケーション・パスの既定のサーバは、ラウンドロビン方式で Web ゲートウェイ・インスタンス間で割り当てられ、それ以外のリモート・サーバは代替サーバ・プールを構成します。 例えば、前の例の WS ノード定義が 3 つの AM ノードの分散キャッシュ・クラスタの一部である場合、割り当ては以下のようになります。

インスタンス

既定のサーバ

代替サーバ

Acme-WS-TEST-0001

Acme-AM-TEST-0001

Acme-AM-TEST-0002、Acme-AM-TEST-0003

Acme-WS-TEST-0002

Acme-AM-TEST-0002

Acme-AM-TEST-0001、Acme-AM-TEST-0003

Acme-WS-TEST-0003

Acme-AM-TEST-0003

Acme-AM-TEST-0001、Acme-AM-TEST-0002

AlternativeServers フィールドには、Web ゲートウェイがターゲット・サーバ・プールに要求をどのように分散するかを指定します。有効な値は、LoadBalancing (既定) と FailOver です。 ApplicationPath フィールドを指定しない場合、このフィールドは無効です。

インターシステムズの Web ゲートウェイの使用法の詳細は、"Web ゲートウェイ構成ガイドOpens in a new tab" を参照してください。

ロール SAM : System Alerting and Monitoring ノード

SAM ノードを定義すると、System Alerting and Monitoring (SAM) クラスタ・モニタリング・ソリューションが導入環境に追加されます。SAM の追加の詳細は、"ICM でのモニタリング"、SAM の詳細は、"System Alerting and Monitoring GuideOpens in a new tab" を参照してください。

ロール LB : ロード・バランサ

プロビジョニング・プラットフォームが AWS、GCP、Azure、または Tencent であり、定義ファイル内のタイプ DATA、COMPUTE、DM、AM、または WS のノードの定義で LoadBalancer が true に設定されている場合、ICM は、事前定義されたロード・バランサ・ノードを自動的にプロビジョニングします。VM ノードまたは CN ノードの汎用ロード・バランサについては、追加のパラメータを指定する必要があります。

事前定義されたロード・バランサ

ロール LB のノードの場合、ICM は転送するポートとプロトコル、および対応する正常性チェックを構成します。導入されたロード・バランサに対するクエリは、シャード・クラスタ内のデータ・ノードまたは分散キャッシュ・クラスタ・アプリケーション・サーバに対して行う場合と同じように実行できます。

DATA、COMPUTE、DM、AM、または WS のノードの定義にロード・バランサを追加するには、LoadBalancer フィールドを追加します。以下に例を示します。

{
    "Role": "AM",
    "Count": "2",
    "LoadBalancer": "true"
}

以下の例は、この定義によって作成および導入されるノードを示しています。

$ icm inventory
Machine           IP Address    DNS Name                              Region   Zone
-------           ----------    --------                              ------   ----
ANDY-AM-TEST-0001 54.214.230.24 ec2-54-214-230-24.amazonaws.com       us-west1 c
ANDY-AM-TEST-0002 54.214.230.25 ec2-54-214-230-25.amazonaws.com       us-west1 c
ANDY-LB-TEST-0000 (virtual AM)  ANDY-AM-TEST-1546467861.amazonaws.com us-west1 c

このクラスタに対するクエリは、AM ノードに対して行う場合と同じように、ロード・バランサに対して実行できます。

ミラーリングした DATA ノードと DM ノードに事前定義したロード・バランサはミラー認識ロード・バランサとなり、必ず現在のプライマリにトラフィックを転送します。

LoadBalancer フィールドは、1 つの導入環境の複数の定義に追加できます。例えば、負荷分散されたアプリケーション接続を受け取る WS 層から負荷分散された接続を受け取る AM ノードを分散キャッシュ・クラスタに含めることができます。

現在、自動的にプロビジョニングされた単一のロード・バランサを複数のノード・タイプ (例えば、DATA ノードと COMPUTE ノードの両方) で共有することはできないため、それぞれに専用のロード・バランサが必要です。目的のロール用にユーザがカスタムまたはサードパーティのロード・バランサを手動で導入してもかまいません。別の有用なアプローチは、WS ノードのロード・バランサをプロビジョニングすることです。これにより、"ロール WS : Web サーバ" で説明しているように、アプリケーションの接続を複数のノード・タイプに分散できます。

Note:

AWS でプロビジョニングする場合、LoadBalancer を True に設定した定義で LoadBalancerInternal を True に設定することにより、"internal" タイプのロード・バランサを指定できます。

汎用ロード・バランサ

以下の追加キーを指定することにより、ロード・バランサを VM (仮想マシン) ノードおよび CN (コンテナ) に追加できます。

  • ForwardProtocol

  • ForwardPort

  • HealthCheckProtocol

  • HealthCheckPath

  • HealthCheckPort

以下に例を示します。

{
    "Role": "VM",
    "Count": "2",
    "LoadBalancer": "true",
    "ForwardProtocol": "tcp",
    "ForwardPort": "443",
    "HealthCheckProtocol": "http",
    "HealthCheckPath": "/csp/status.cxw",
    "HealthCheckPort": "8080"
}

ForwardPort には、転送するポートのコンマ区切りリストを指定できます。その場合、転送するポートすべてで同じ ForwardProtocol を共有していることが条件になります。

これらのキーの詳細は、“ICM の構成パラメータ” の "ポートおよびプロトコルのパラメータ" のテーブルを参照してください。

ロード・バランサに関する注意事項

それぞれのクラウド・プロバイダ上のロード・バランサは、異なる動作をすることがあります。必ず、プロビジョニングするプラットフォームにおけるロード・バランサの詳細を十分に理解してください。特に次のことに留意してください。

  • クラウド・プロバイダによっては、複数の IP アドレスに解決される DNS 名をロード・バランサ用に作成している場合があります。この理由から、[DNS Name] 列の値を使用する必要があります。 [DNS Name] 列に数値 IP アドレスが表示されている場合は、単にそのクラウド・プロバイダがロード・バランサに一意の IP アドレスを割り当てていて、DNS 名は指定していないことを示しています。

  • その DNS 名は特定のロード・バランサが適用されるリソースを示していない可能性があるので、[IP Address] 列がこの目的に使用されます。

  • ターゲット・プールのすべてのメンバが正常性チェックに失敗した場合の対応方法は、クラウド・プロバイダごとに異なる場合があります。インターシステムズが確認したところでは、GCP の場合は要求がランダムなターゲット (基盤となるサービスが使用できる場合と使用できない場合がある) に転送されるのに対し、AWS ではロード・バランサが要求を拒否します。

プロバイダ Vmware vSphere および PreExisting の場合は、カスタムまたはサードパーティのロード・バランサを導入することをお勧めします。

ミラーリングされた DATA ノード用のロード・バランサを Tencent にプロビジョニングしないでください。Tencent にプロビジョニングされたロード・バランサは現在、ミラーリングされた DATA ノードのどちらがプライマリであるかを判別できないため、ロード・バランサを介した読み取り/書き込み操作の実行時にエラーが発生することがあります。 

ロール VM : 仮想マシン・ノード

クラスタには仮想マシン・ノードをいくつでも含めることができます。仮想マシン・ノードは、InterSystems IRIS クラスタ内で事前定義されたロールを持たないホスト・ノードを割り振るための手段です。これらのノードに Docker はインストールされませんが、ユーザは任意のカスタムまたはサードパーティのソフトウェア (Docker を含む) を自由に導入できます。

仮想マシン・ノードでは以下のコマンドがサポートされます。

ロード・バランサを VM ノードに割り当てることができます。"ロール LB : ロード・バランサ" を参照してください。

ロール CN : コンテナ・ノード

クラスタにはコンテナ・ノードをいくつでも含めることができます。コンテナ・ノードは、Docker がインストールされている汎用ノードです。

CN ノードを定義して、IAM および IAMImage フィールドを含めることで、InterSystems API Manager (IAM) を任意の導入環境に追加できます。詳細は、“ICM リファレンス” の "InterSystems API Manager の導入" を参照してください。任意のカスタム・コンテナやサードパーティ・コンテナも CN ノードに導入できます。指定されている場合、iris (InterSystems IRIS) コンテナは導入されません。コンテナ・ノードではすべての ICM コマンドがサポートされていますが、-container オプションを使用して iris 以外のコンテナを指定する場合や、-role オプションまたは -machine オプションを使用して CN ノードに対するコマンドに限定する場合を除き、ほとんどの ICM コマンドがフィルタで除外されます ("ICM コマンドとオプション" を参照)。

ロード・バランサを CN ノードに割り当てることができます。"ロール LB : ロード・バランサ" を参照してください。CN ノードはコンテナレス・モードでは導入できません。

ロール BH : 要塞ホスト

パブリック・ネットワーク・アクセスを提供しない構成を導入することもできます。既存のプライベート・ネットワークがある場合、そのネットワーク上のノードで ICM を起動し、その中で導入を行うことができます。そのようなネットワークがない場合は、ICM によってプライベート・サブネットが構成され、そこに構成が導入されるようにすることができます。ただし、ICM はそのプライベート・サブネット内で実行されていないので、構成のプロビジョニング、導入、および管理を行うためのアクセス手段が必要です。この目的を果たすのが BH ノードです。

要塞ホストは、ICM によって構成されたプライベート・サブネットとパブリック・ネットワークの両方に属し、それらの間の通信を仲介できるホスト・ノードです。要塞ホストを使用するには、定義ファイルで 1 つの BH ノードを定義し、既定値ファイルで PrivateSubnet を true に設定します。詳細は、"プライベート・ネットワークへの導入" を参照してください。

ICM クラスタのトポロジとミラーリング

ICM は定義ファイル内のノード定義を検証して、特定の要件を満たしているかどうか確認します。ミラーリングされた構成には、追加の規則があります。この検証には、機能面で最適ではない構成 (例えば、単一の AM ノード、単一の WS ノード、5 つの DATA ノードに対してただ 1 つの COMPUTE ノード、またはその逆の構成など) を回避する処理は含まれないことに注意してください。

ミラーリングされていない構成とミラーリングされた構成の両方で、以下のように動作します。

  • シャード・クラスタでは、COMPUTE ノードはラウンドロビン方式で DATA ノードに割り当てられます (DS ノードへの QS ノードの割り当ても同様です)。

  • AM ノードと WS ノードの両方が含まれている場合、AM ノードは DM ノードにバインドされ、WS ノードは AM ノードにバインドされます。AM ノードのみまたは WS ノードのみが含まれている場合は、すべてのノードが DM ノードにバインドされます。

このセクションには、以下のサブセクションがあります。

ミラーリングの規則

シャード・クラスタ内のデータ・ノードは、すべてをミラーリングするか、すべてをミラーリングしないかのどちらかにする必要があります。この要件は、以下の ICM トポロジ検証規則に反映されています。

既定値ファイルで Mirror フィールドが false に設定されている場合 (既定値)、ミラーリングは構成されず、定義ファイルに複数の DM ノードが指定されているとプロビジョニングは失敗します。

Mirror フィールドが true に設定されている場合、可能であればミラーリングが構成され、DATA、DS、または DM ノードのミラー・ロール (プライマリ、バックアップ、または DR 非同期) がノード定義の MirrorMap フィールドの値 ("一般パラメータ" を参照) によって、次のように決定されます。

  • MirrorMap が関連するノード定義に含まれていない場合、ノードは MirrorMap の既定の値 primary,backup を使用して、ミラー・フェイルオーバー・ペアとして構成されます。

    • 偶数個の DATA ノードまたは DS ノードが定義されている場合、これらはすべてフェイルオーバー・ペアとして構成されます。例えば、6 つの DATA ノードを指定すると、フェイルオーバー・ペアを含み、DR 非同期を含まない 3 つのデータ・ノード・ミラーが導入されます。奇数個の DATA ノードまたは DS ノードが定義されている場合、プロビジョニングは失敗します。

    • 2 つの DM ノードが定義されている場合、これらはフェイルオーバー・ペアとして構成されます。それ以外の数が定義されている場合、プロビジョニングは失敗します。

  • ノード定義に MirrorMap が含まれている場合、ノードはその値に基づいて次のように構成されます。

    • DATA ノードまたは DS ノードの個数は、MirrorMap の値で指定されたロールの数以下の倍数である必要があります。例えば、次に示すように、MirrorMap の値が primary,backup,async であるとします。

      "Role": "DATA",
      "Count": "",
      "MirrorMap": "primary,backup,async"
      
      

      この場合、DATA ノードまたは DS ノードは次のように構成されます。

      Count の値 結果
      3 または 3 の倍数 フェイルオーバー・ペアと DR 非同期を含む 1 つ以上のミラー
      2 フェイルオーバー・ペアを含む 1 つのミラー
      1、4 以上 (3 の倍数以外) プロビジョニング失敗
    • DM ノードの数は、MirrorMap の値で指定されたロールの数以下である必要があります。DM ノードを 1 つだけ指定すると、プロビジョニングは失敗します。

  • 複数の AR (アービター) ノードが指定されている場合、プロビジョニングは失敗します。(ベスト・プラクティスではありますが、アービターの使用は任意であるため、ミラー構成に AR ノードを含める必要はありません。)

ICM によって導入される非同期はすべて DR 非同期です。レポート非同期はサポートされていません。1 つのミラーに最大 14 個の非同期を含めることができます。ミラー・メンバと可能な構成の詳細は、"高可用性ガイド" の "ミラー・コンポーネントOpens in a new tab" を参照してください。

DATA ノード、DS ノード、または DM ノードのプロビジョニングや構成が行われた順序とミラー内でのそれらのロールとの間に関係性はありません。プロビジョニングの後、icm inventory コマンドを使用して、各ペアのどのメンバがプライマリ・フェイルオーバー・メンバとなり、どのメンバがバックアップとなる予定かを確認できます。ミラーリングが有効な場合に、導入された構成で各ノードのミラー・メンバ・ステータスを確認するには、icm ps コマンドを使用します。

ミラーリングされていない構成の要件

ミラーリングされていないクラスタは以下で構成されます。

  • 1 つ以上の DATA (シャード・クラスタ内のデータ・ノード)。

  • DATA ノードが含まれている場合、ゼロ個以上の COMPUTE (シャード・クラスタ内の計算ノード)。ベスト・プラクティスは、少なくとも DATA ノードと同数の COMPUTE ノードを含め、各 DATA ノードの COMPUTE ノードの数を同じにすることです。

  • DATA ノードが含まれていない場合は以下のとおりです。

    • 1 つの DM (分散キャッシュ・クラスタ・データ・サーバ、スタンドアロン InterSystems IRIS インスタンス、ネームスペース・レベルOpens in a new tabのシャード・クラスタ内のシャード・マスタ・データ・サーバ)。

    • ゼロ個以上のAM (分散キャッシュ・クラスタ・アプリケーション・サーバ)。

    • ゼロ個以上の DS (ネームスペース・レベルのシャード・クラスタ内のシャード・データ・サーバ)。

    • ゼロ個以上の QS (ネームスペース・レベルのシャード・クラスタ内のシャード・クエリ・サーバ)。

  • ゼロ個以上の WS (Web サーバ)。

  • ゼロ個以上の LB (ロード・バランサ)。

  • ゼロ個以上の VM (仮想マシン・ノード)。

  • ゼロ個以上の CN (コンテナ・ノード)。

  • ゼロ個または 1 個の BH (要塞ホスト)。

  • ゼロ個の AR (アービター・ノードはミラーリングされた構成の場合のみ)。

これらの一部のノード・タイプ間の関係を以下の例に図示します。

ICM のミラーリングされていないトポロジ
null
null

ミラーリングされた構成の要件

ミラーリングされたクラスタは、以下で構成されます。

  • DATA ノード (ノード・レベルのシャード・クラスタ内のデータ・ノード) が含まれる場合は以下のとおりです。

    • 既定でまたは明示的に、MirrorMap の値と一致する個数の DATA。("ミラーリングの規則" を参照)。

    • ゼロ個以上の COMPUTE (ノード・レベルのシャード・クラスタ内の計算ノード)。ベスト・プラクティスは、DATA ノード・ミラーごとに少なくとも 1 つの COMPUTE ノードを含め、各 DATA ノード・ミラーの COMPUTE ノードの数を同じにすることです。

  • DATA ノードが含まれていない場合は以下のとおりです。

    • ネームスペース・レベルのシャード・クラスタ内のミラーリングされたシャード・マスタ・データ・サーバ、分散キャッシュ・クラスタ内のデータ・サーバ、またはスタンドアロンの InterSystems IRIS インスタンスとしての 2 つの DM。DR 非同期が "ミラーリングの規則" の説明のとおり MirrorMap フィールドで指定されている場合は、2 つを超える DM。

    • ネームスペース・レベルのシャード・クラスタの場合は以下のとおりです。

      • 既定でまたは明示的に、MirrorMap の値と一致する個数の DS (シャード・データ・サーバ)。("ミラーリングの規則" を参照。)

      • ゼロ個以上の QS (シャード・クエリ・サーバ)。(前述の COMPUTE ノードの説明を参照。)

    • 分散キャッシュ・クラスタ内のアプリケーション・サーバとしてのゼロ個以上の AM。

  • ゼロ個または 1 個の AR (アービター・ノードはオプションですが、ミラーリングされた構成の場合は推奨されます)。

  • ゼロ個以上の WS (Web サーバ)。

  • ゼロ個以上の LB (ロード・バランサ)。

  • ゼロ個以上の VM (仮想マシン・ノード)。

  • ゼロ個以上の CN (コンテナ・ノード)。

  • ゼロ個または 1 個の BH (要塞ホスト)。

ミラーリングには、以下のフィールドを指定する必要があります。

  • ミラーリングを有効にするには、defaults.json ファイルのキー Mirror を true に設定します。

    "Mirror": "true"
    
  • DATA、DS、または DM ミラーに DR 非同期を含めるには、定義ファイルに MirrorMap フィールドを含めて、最初の 2 個以外が DR 非同期メンバであることを指定する必要があります。MirrorMap の値は、常に primary,backup で始まる必要があります。以下に例を示します。

    "Role": "DM",
    "Count": "5”,
    "MirrorMap": "primary,backup,async,async,async",
    ...
    

    MirrorMap の値と定義されている DATA、DS、または DM ノードの数との関係の詳細は、"ミラーリングの規則" を参照してください。MirrorMapZone フィールドおよび ZoneMap フィールドと組み合わせて使用して、複数のゾーンにわたって非同期インスタンスを導入することができます。"複数ゾーンにわたる導入" を参照してください。

LB の自動導入 ("ロール LB : ロード・バランサ" を参照) は、AWS、GCP、Azure、および Tencent の各プロバイダについてサポートされています。独自のロード・バランサを作成する場合、組み込む IP アドレスのプールは、構成およびアプリケーションの要件に応じて、DATA ノード、COMPUTE ノード、AM ノード、または WS ノードのものです。

Note:

AM または WS ノードあるいはロード・バランサ (LB ノード) なしで導入されるミラーリングされた DM ノードには、フェイルオーバー後にアプリケーション接続をリダイレクトするための適切な仕組みが必要です。詳細は、"高可用性ガイド" の "ミラーリング" の章にある "フェイルオーバーまたは災害復旧後のアプリケーション接続のリダイレクトOpens in a new tab" を参照してください。

これらの一部のノード・タイプ間の関係を以下の例に図示します。

ICM のミラーリングされたトポロジ
null
null

ICM によってマウントされるストレージ・ボリューム

ICM は、InterSystems IRIS コンテナを導入する各ノードで、永続的な %SYS 機能 ("コンテナ内での InterSystems IRIS の実行" の "永続インスタンス・データを保存するための永続的な %SYSOpens in a new tab" を参照) を使用して、InterSystems IRIS による永続データ・ストレージ用の 4 つのボリュームのフォーマット、パーティション分割、およびマウントを行います。これらのボリュームは、フィールド DataDeviceName (データ・ボリュームの場合)、WIJDeviceName (WIJ ディレクトリOpens in a new tabを含むボリュームの場合)、および Journal1DeviceNameJournal2DeviceName (プライマリ・ジャーナル・ディレクトリと代替ジャーナル・ディレクトリOpens in a new tabの場合) によって指定されたファイル名で、ホスト・ノード上の /dev/ に別個のデバイス・ファイルとしてマウントされます。これらのボリュームのサイズを指定するには、DataVolumeSizeWIJVolumeSizeJournal1VolumeSize、および Journal2VolumeSize の各パラメータ ("一般パラメータ" を参照) を使用します。

タイプ PreExisting 以外のすべてのプロバイダについて、ICM は、以下のテーブルに示すように、デバイス名の妥当な既定値を割り当てようとします。ただし、これらの値はプラットフォームと OS に固有である場合が多く、defaults.json ファイルでオーバーライドする必要が生じることがあります (PreExisting の導入については、付録 “既存のクラスタへの導入” の "ストレージ・ボリューム" を参照してください)。

パラメータ 永続ボリュームの用途に対応するデバイス名

AWS

GCP

Azure

Tencent

vSphere

DataDeviceName

データベース

xvdd

sdc

sdd

vdc

sdc

WIJDeviceName

WIJ ディレクトリ

xvde

sdd

sde

vdd

sdd

Journal1DeviceName

プライマリ・ジャーナル・ディレクトリ

xvdf

sde

sdf

vde

sde

Journal2DeviceName

代替ジャーナル・ディレクトリ

xvdg

sdf

sdg

vdf

sdf

ICM は、以下の表に示すフィールドに従って、デバイスを InterSystems IRIS コンテナ内でマウントします。

パラメータ 既定値

DataMountPoint

/irissys/data

WIJMountPoint

/irissys/wij

Journal1MountPoint

/irissys/journal1

Journal2MountPoint

/irissys/journal2

このように配置することで、"コンテナ内でのインターシステムズ製品の実行" の "コンテナ化された InterSystems IRIS のファイル・システムの分離Opens in a new tab" で説明しているように、InterSystems IRIS で使用するストレージ用に別個のファイル・システムを使用して、パフォーマンスと復元可能性をサポートするうえで推奨されるベスト・プラクティスに、既定値をそのまま使用するだけで、容易に準拠することができます。

マシン・イメージに使用可能なマウント・ポイントが既にある場合、特別なデバイス名 existing をデバイス名パラメータの値として指定することで、ボリュームの割り当てをスキップして、対応するマウントポイント・パラメータで指定したディレクトリを使用するよう ICM に指示することができます。例えば、DataDeviceName の値が existing で、DataMountPoint の値が /mnt/data の場合、ICM は /mnt/data を InterSystems IRIS インスタンスのデータ・ボリュームとしてマウントします。マウント・ポイント・パラメータで指定したディレクトリが存在しない場合、データ・ボリュームはマウントされず、プロビジョニング時にエラーが表示されます。既存のディレクトリは、ユーザ irisowner (UID 51773) が書き込み可能である必要があります。"コンテナ内でのインターシステムズ製品の実行." の "InterSystems IRIS コンテナのセキュリティOpens in a new tab" を参照してください (これは、プロバイダ PreExisting の既定のデバイス名および動作です)。

ICM の InterSystems IRIS ライセンス

コンテナに導入された InterSystems IRIS インスタンスには、コンテナ化されていないインスタンスと同様にライセンスが必要です。一般的な InterSystems IRIS ライセンスの要素と手順は、"システム管理ガイド" の “ライセンスOpens in a new tab” の章で説明されています。

ライセンス・キーを InterSystems IRIS コンテナ・イメージに含めることはできませんが、コンテナを作成して起動した後に追加する必要があります。ICM では、これは以下のように対処されています。

  • 必要なライセンス・キーが、defaults.json fileLicenseDir フィールドで指定されている ICM コンテナ内のディレクトリまたはマウント・ボリューム (例 : /Samples/License) でステージングされます。

  • ステージング・ディレクトリ内のライセンス・キーの 1 つが、definitions.json ファイル内のノード・タイプ DATA、COMPUTE、DM、AM、DS、および QS の各定義内の LicenseKey フィールドによって指定されます。以下に例を示します。

    "Role": "DM",
    "LicenseKey": "ubuntu-sharding-iris.key”,
    "InstanceType": "m4.xlarge",
    
  • ICM は、DATA ノード 1 または DM ノードにライセンス・サーバを構成します。このノードは、導入時に、指定されたライセンスを InterSystems IRIS ノード (自身も含む) に提供します。

Important:

LicenseDir フィールドで指定されたディレクトリにステージングされ、LicenseKey フィールドで指定されたすべてのファイルは、.key 接尾語が付加された有効な InterSystems IRIS ライセンス・キー・ファイルであることが必要です。

関与する構成に関係なく、InterSystems IRIS が導入されるすべてのノードに、シャーディング対応の InterSystems IRIS ライセンスが必要です。

AR、LB、WS、VM、および CN ノードの場合、ライセンスは不要です。LicenseKey フィールドがこれらいずれかの定義に含まれている場合、このフィールドは無視されます。.

ICM セキュリティ

ICM に組み込まれているセキュリティ手段について、以下のセクションで説明します。

ここで説明するセキュリティのために必要なファイルの指定に使用される ICM フィールドの詳細は、"セキュリティ関連のパラメータ" を参照してください。

ホスト・ノードの通信

ホスト・ノードは、コンテナが導入されるホスト・マシンです。これは仮想マシンまたは物理マシンで、クラウド内またはオンプレミスで実行されます。

ICM は、SSH を使用してホスト・ノードにログインし、それらに対してリモートでコマンドを実行します。また、SCP を使用して、ICM コンテナとホスト・ノードの間でファイルをコピーします。このセキュリティ保護された通信を有効にするには、SSH 公開/秘密鍵ペアを提供し、これらの鍵を defaults.json ファイルで SSHPublicKey および SSHPrivateKey として指定する必要があります。構成フェーズ中に、ICM は各ホスト・ノードでパスワード・ログインを無効にし、秘密鍵をノードにコピーし、ポート 22 を開いて、対応する公開鍵を持つクライアントが SSH および SCP を使用してノードに接続できるようにします。

ホスト・マシン上で開かれるその他のポートについては、以降のセクションで説明します。

Docker

プロビジョニング時に、ICM は GPG 指紋を使用して Docker 公式 Web サイトから Docker の特定バージョンをダウンロードし、インストールします。ICM はその後、提供された TLS 証明書 (既定値ファイルの TLSKeyDir フィールドで指定されたディレクトリに配置されている) をホスト・マシンにコピーし、TLS を有効にして Docker デーモンを起動して、ポート 2376 を開きます。この時点で、対応する証明書を持つクライアントは、ホスト・マシンに Docker コマンドを発行できます。

Weave Net

プロビジョニング時に、Weave ネットワークに接続する各マシンからパスワード (ユーザが提供する) を要求するオプションとトラフィック暗号化オプションで、Weave Net を ICM は起動します。これらのオプションを有効にするには、defaults.json ファイルで WeavePassword を null 以外の任意の値に設定します。

InterSystems IRIS

InterSystems IRIS のセキュリティの包括的な概要については、"インターシステムズのセキュリティについてOpens in a new tab" を参照してください。

セキュリティ・レベル

InterSystems IRIS イメージが標準のセキュリティ (最小またはロック・ダウンではない) でインストールされたことを ICM は前提とします。

事前定義アカウントのパスワード

InterSystems IRIS インスタンスを保護するために、事前定義アカウントの既定のパスワードは ICM で変更する必要があります。ICM が InterSystems IRIS コンテナを初めて実行するときに、NULL でないロールを持つ有効なアカウントすべてのパスワードが、ユーザ提供のパスワードに変更されます。InterSystems IRIS パスワードが定義ファイル内で見えないように、また -iscPassword オプションを使用してコマンド行の履歴に表示されないようにする場合は、両方とも省略できます。ICM はインタラクティブにパスワードの入力を求め、入力内容はマスクされます。パスワードは保持されるので、InterSystems IRIS コンテナを再起動またはアップグレードしても変更されません。

JDBC

ICM は、既定値ファイルの TLSKeyDir フィールドで指定されたディレクトリに配置されているファイルを使用して、InterSystems IRIS への JDBC 接続を (InterSystems IRIS の要件に従って) TLS モードで開きます。

ミラーリング

ICM は、既定値ファイルの TLSKeyDir フィールドで指定されたディレクトリに配置されているファイルを使用し、TLS を有効にしてミラーを作成します ("高可用性ガイド" の "ミラーリングOpens in a new tab" の章を参照)。フェイルオーバー・メンバは、TLS が有効な場合のみミラーに参加できます。

インターシステムズの Web ゲートウェイ

ICM は、既定値ファイルの TLSKeyDir フィールドで指定されたディレクトリに配置されているファイルを使用し、TLS を使用して DM ノードおよび AM ノードと通信するように WS ノードを構成します。

InterSystems ECP

ICM は、すべての InterSystems IRIS ノードが ECP 接続に TLS を使用するように構成します。これには、分散キャッシュ・クラスタ・ノードとシャード・クラスタ・ノードの間の接続も含まれます。

セキュリティの一元化

LDAP サーバを使用してシャード・クラスタまたはその他の ICM 導入環境のノード全体で一元的なセキュリティを実装することをお勧めします。InterSystems IRIS での LDAP の使用についての詳細は、"LADP ガイドOpens in a new tab" を参照してください。

プライベート・ネットワーク

ICM は、インターネットからアクセスできない既存のプライベート・ネットワークで導入を行うことができます (必要なアクセスが構成されている場合)。また、導入を行うプライベート・ネットワークを作成し、要塞ホストを介した独自のアクセスを構成することもできます。プライベート・ネットワークの使用の詳細は、"プライベート・ネットワークへの導入" を参照してください。

カスタマイズされた InterSystems IRIS 構成を使用した導入

いずれの InterSystems IRIS インスタンスも、InterSystems IRIS コンテナ内で実行されるものを含め、インストール・ディレクトリ内の iris.cpf という名前のファイルを使用してインストールされます。このファイルには、ほとんどの構成設定が含まれています。インスタンスでは、起動時にこの構成パラメータ・ファイル、つまり CPF が読み取られ、そこに含まれる設定値が取得されます。設定が変更されると、CPF は自動的に更新されます。CPF の使用と内容については、"構成パラメータ・ファイル・リファレンスOpens in a new tab" で詳しく説明しています。

ただし、同じイメージから複数のインスタンスを異なる構成設定で導入する場合があります。これを実行するには、ISC_CPF_MERGE_FILE 環境変数を使用します。これにより、インスタンスの CPF にマージされる 1 つ以上の設定を含む個別のファイルを指定できます。構成マージ機能を使用して、複数のインスタンスを同じソースからの異なる CPF で導入できます。構成マージ機能の詳細は、"構成マージを使用した InterSystems IRIS の自動構成Opens in a new tab" を参照してください。

この機能は、iris コンテナまたはコンテナレス・インストールに適用する構成マージ・ファイルを指定する UserCPF プロパティを使用して ICM で InterSystems IRIS を導入する場合に利用できます。例えば、インターシステムズ提供の InterSystems IRIS イメージに含まれる CPF の [config] セクションには、以下のような既定の共有メモリ・ヒープ構成 ("システム管理ガイド" の “InterSystems IRIS の構成” の章にある "共有メモリ・ヒープ (gmheap) の構成Opens in a new tab" を参照) が含まれています。

[config]
LibPath=
MaxServerConn=1
MaxServers=2
...
gmheap=37568
...

導入環境内のすべての InterSystems IRIS インスタンスについて共有メモリ・ヒープのサイズを 2 倍にするには、以下の内容を含む merge.cpf というファイルを ICM コンテナ内に作成します。

[config]
gmheap=75136

その後、以下のように、UserCPF フィールドを使用して defaults.json でこのマージ・ファイルを指定します。

"UserCPF": "/Samples/mergefiles/merge.cpf"

これにより、導入された各 InterSystems IRIS インスタンスが起動される前に、各インスタンスの CPF が新しい共有メモリ・ヒープ・サイズで更新されます。

定義ファイルでこのフィールドを使用して、特定のノード・タイプのみにマージ・ファイルを適用することもできます。例えば、分散キャッシュ・クラスタ内の DM ノードのみで共有メモリ・ヒープのサイズを 2 倍にし、同時に AM ノードで ECP の [リカバリまでの待機時間] 設定を既定の 1200 秒から 1800 秒に変更するには、以下の内容を含む merge2.cpf という別のファイルを作成します。

[ECP]
ClientReconnectDuration=1800

その後、以下のような definitions.json ファイルを使用します。

[
    {
        "Role": "DM",
        "Count": "1",
        "UserCPF": "/Samples/mergefiles/merge.cpf"
    },
    {
        "Role": "AM",
        "Count": "3",
        "StartCount": "2",
        "UserCPF": "/Samples/mergefiles/merge2.cpf",
        "LoadBalancer": "true"
    }
]

この場合、DM ノードでは共有メモリ・ヒープ・サイズが 2 倍になりますが、AM ノードでは 2 倍になりません。また、AM ノードでは ECP 設定が変更されますが、DM ノードでは変更されません。

複数ゾーンにわたる導入

クラウド・プロバイダでは通常、指定されたリージョン内の複数のゾーンにまたがって仮想ネットワークを利用することができます。導入環境によっては、これを利用して、それぞれのノードを異なるゾーンに導入できます。例えば、各データ・ノードにフェイルオーバー・ペアと DR 非同期が含まれる、ミラーリングされたシャード・クラスタを導入する場合 ("ミラーリングされた構成の要件" を参照)、フェイルオーバー・ペアと DR 非同期を 2 つの異なるゾーンに導入することで、物理的な DR 非同期をリモート・データ・センタに配置するOpens in a new tab環境と同等のクラウドを実現できます。

AWS、GCP、Azure、および Tencent への導入時に複数のゾーンを指定するには、既定値ファイルの Zone フィールドにコンマ区切りのゾーン・リストを入力します。以下は AWS の場合の例です。

{
    "Provider": "AWS",
    ...
    "Region": "us-west-1",
    "Zone": "us-west-1b,us-west-1c"
}

GCP の場合 :


    "Provider": "GCP",
    ...
    "Region": "us-east1",
    "Zone": "us-east1-b,us-east1-c"
}

Azure の場合 :

    "Provider": "Azure",
    ...
    "Region": "Central US",
    "Zone": "1,2"

Tencent の場合 :

    "Provider": "Tencent",
    ...
    "Region": "na-siliconvalley",
    "Zone": "na-siliconvalley-1,na-siliconvalley-2"

指定したゾーンは、ラウンドロビン方式でノードに割り当てられます。例えば、AWS の例を使用して、4 つのミラーリングされていない DATA ノードをプロビジョニングする場合、最初と 3 つ目が us-west-1b でプロビジョニングされ、2 つ目と 4 つ目が us-west-1c でプロビジョニングされます。

ただし、ミラーリングされた構成の場合、ラウンドロビン方式の分散が、望ましくない結果につながる可能性があります。例えば、前にある Zone の指定により、ミラーリングされた DATA、DM または DS ノードのプライマリ・メンバとバックアップ・メンバが異なるゾーンに配置されたときに、これが、メンバ間の遅延を大きくするため、使用しているアプリケーションには適していない場合があります ("高可用性ガイド" の "ネットワーク遅延に関する考慮事項Opens in a new tab" を参照)。どのノードをどのゾーンに配置するかを選択するには、definitions.json ファイルのノード定義に ZoneMaps フィールドを追加して、Zone フィールドで指定される特定のゾーンに、単一ノード、または複数ノードのゾーン配置のパターンを指定できます。これは、ミラーリングされたデータ・サーバが設定されている分散キャッシュ・クラスタに関する以下の指定で示されています。

defaults.json

"Mirror": "True"
"Region": "us-west-1",
"Zone": "us-west-1a,us-west-1b,us-west-1c"

definitions.json

"Role": "DM",
"Count": "4”,
"MirrorMap": "primary,backup,async,async",
"ZoneMap": "0,0,1,2",
...
"Role": "AM",
"Count": "3”,
"MirrorMap": "primary,backup,async,async",
"ZoneMap": "0,1,2",
...
"Role": "AR",
...

この指定によって、プライマリおよびバックアップのミラー・メンバが us-west-1a に配置され、1 つのアプリケーション・サーバが各ゾーンに配置されます。一方、非同期は必要に応じて可用性を最大にするためにフェイルオーバー・ペアとは異なるゾーンに配置され、最初の非同期が us-west-1b、2 つ目の非同期が us-west-1c に配置されます。アービター・ノードでは、ZoneMap フィールドをフェイルオーバー・ペアと一緒に us-west-1a に配置する必要はありません。ラウンドロビン方式の分散がこれを行います。

このアプローチを以下のように、各データ・ノード・ミラーにフェイルオーバー・ペアと DR 非同期が含まれる、ミラーリングされたシャード・クラスタで使用することもできます。

defaults.json

"Mirror": "True"
"Region": "us-west-1",
"Zone": "us-west-1a,us-west-1b,us-west-1c"

definitions.json

"Role": "DATA",
"Count": "12”,
"MirrorMap": "primary,backup,async",
"ZoneMap": "0,0,1",
...
"Role": "COMPUTE",
"Count": "8”,
"ZoneMap": "0",
...
"Role": "AR",
"ZoneMap": "2",
...

この指定によって、4 つのデータ・ノード・ミラーそれぞれのフェイルオーバー・ペアと 8 つの計算ノードが us-west-1a に、各データ・ノード・ミラーの DR 非同期が us-west-1b に、アービターが us-west-1c に配置されます。

複数のリージョンまたはプロバイダにわたる導入

ICM は複数のクラウド・プロバイダ・リージョンにわたって導入できます。例えば、DR 非同期ミラー・メンバを、フェイルオーバー・メンバとは異なるリージョンに配置できます。マルチリージョン導入の手順はプロバイダによって異なり、これについては以下のセクションで説明します。3 つめのセクションで説明する手順は、複数のプロバイダにわたる導入にも使用できます。

Important:

ミラーのフェイルオーバー・メンバを異なるリージョンまたは異なるプラットフォームに導入することもできますが、リージョン間やプラットフォーム間では一般的にネットワーク遅延が大きいことが原因でミラー処理の問題が発生することから、このような方法はお勧めしません。ミラーにおける遅延に関する考慮事項の詳細は、"高可用性ガイド" の “ミラーリング” の章にある "ネットワーク遅延に関する考慮事項Opens in a new tab" を参照してください。

Note:

複数のリージョンにわたる導入とプライベート・ネットワークへの導入 ("プライベート・ネットワークへの導入" を参照) は、このリリースでは互換性がありません。

GCP での複数のリージョンにわたる導入

GCP で複数のリージョンにわたる導入を行うには、既定値ファイルの Region フィールドで、以下のように目的のリージョンをコンマ区切りリストとして指定します。

{
    "Provider": "GCP",
    "Label": "Sample",
    "Tag": "multi",
    "Region": "us-east1,us-west1",
    "Zone": "us-east1-b,us-west1-a",
    ...
}

既定では、各定義内のノードに、ラウンドロビン方式でリージョンが割り当てられます。例えば、上の defaults.json と下の definitions.json に示すフィールドを使用して導入するとします。

[
  {
    "Role": "DATA",
    "Count": "2"
  },
  {
    "Role": "AR",
    "Count": "1",
    "DockerImage": "intersystems/arbiter:2022.2.0.221.0"
  }
]

この場合、 icm inventory コマンドの出力は次のようになります。

$ icm inventory
Machine               IP Address    DNS Name              Region    Zone
-------               ----------    --------              ------    ----
Acme-AR-multi-0001    35.179.173.90 acmear1.google.com    us-east1     b
Acme-DATA-multi-0001- 35.237.131.39 acmedata1.google.com  us-east1     b
Acme-DATA-multi-0002+ 35.233.223.64 acmedata2.google.com  us-west1     a

ノードが導入されるリージョンを制御するために、RegionMap フィールドを使用して、定義されたノードを指定のリージョンにマップすることができます。RegionMap をノード定義に含めたら、ZoneMap (前のセクション "複数ゾーンにわたる導入" を参照) も含めて、ノード (複数可) を目的のゾーン (複数可) にマップする必要があります。例えば、フェイルオーバー・ペアと DR 非同期がアービターと共に含まれるミラーを導入するとします。フェイルオーバー・ペアは同じリージョンの異なるゾーンに、非同期とアービターは異なるリージョンの異なるゾーンに導入します。使用するファイルおよび icm inventory コマンドと icm ps コマンドの出力を、以下に示します。

defaults.json

{
    "Provider": "GCP",
    "Label": "Sample",
    "Tag": "multi",
    "Region": "us-east1,us-west1",
    "Zone": "us-east1-a,us-east1-b,us-west1-a,us-west1-b",
    ...
}

definitions.json

[
  {
    "Role": "DATA",
    "Count": "3",
    "MirrorMap": "primary,backup,async",
    "RegionMap": "1,1,2",
    "ZoneMap": "1,2,3",
  },
  {
    "Role": "AR",
    "Count": "1",
    "DockerImage": "intersystems/arbiter:2022.2.0.221.0",
    "RegionMap": "2",
    "ZoneMap": "4"
  }
]

icm inventory

Machine               IP Address    DNS Name              Region    Zone
-------               ----------    --------              ------    ----
Acme-AR-multi-0001    35.179.173.90 acmear1.google.com    us-west1     b
Acme-DATA-multi-0001+ 35.237.131.39 acmedata1.google.com  us-east1     b
Acme-DATA-multi-0002- 35.233.223.64 acmedata2.google.com  us-east1     a
Acme-DATA-multi-0003  35.166.127.82 acmedata3.google.com  us-west1     a

icm ps

Machine              IP Address    Container Status Health  Mirror    Image
-------              ----------    --------- ------ ------  ------    -----
Acme-AR-multi-0001   35.179.173.90 arbiter   Up     healthy           intersystems/arbiter:2022.2.0.221.0
Acme-DATA-multi-0001 35.237.131.39 iris      Up     healthy PRIMARY   intersystems/iris:2022.2.0.221.0
Acme-DATA-multi-0002 35.233.223.64 iris      Up     healthy BACKUP    intersystems/iris:2022.2.0.221.0
Acme-DATA-multi-0003 35.166.127.82 iris      Up     healthy CONNECTED intersystems/iris:2022.2.0.221.0

Network フィールド ("Google Cloud Platform (GCP) パラメータ" を参照) を使用して、マルチリージョン導入で使用する既存のネットワークを指定するには、GCP Subnet フィールドを使用して、Region フィールドで指定されたリージョンごとに一意のサブネットを指定することも必要です。例えば、ここで示したリージョン us-west1 および us-east1 への導入の場合は、既定値ファイルに以下を含める必要があります。

"Network": "acme-network",
"Subnet": "acme-subnet-data-east,acme-subnet-data-west"

Note:

GCP マルチリージョン導入にロード・バランサ (LB ノード) を含めることはできません。ロード・バランサは GCP 上の単一ノードに制限されているためです。

Azure での複数のリージョンにわたる導入

Azure で複数のリージョンにわたる導入を行うには、既定値ファイルの Location フィールドで、以下のように目的のリージョンをコンマ区切りリストとして指定します。

{
    "Provider": "Azure",
    "Label": "Sample",
    "Tag": "multi",
    "Location": "East US,Central US",
    ...
}

既定では、各定義内のノードに、ラウンドロビン方式で場所が割り当てられます。例えば、上の defaults.json と下の definitions.json に示すフィールドを使用して導入するとします。

[
  {
    "Role": "DATA",
    "Count": "2"
  },
  {
    "Role": "AR",
    "Count": "1",
    "DockerImage": "intersystems/arbiter:2022.2.0.221.0"
  }
]

この場合、 icm inventory コマンドの出力は次のようになります。

$ icm inventory
Machine               IP Address    DNS Name             Region    Zone
-------               ----------    --------             ------    ----
Acme-AR-multi-0001    35.179.173.90 acmear1.azure.com    East US    1
Acme-DATA-multi-0001- 35.237.131.39 acmedata1.azure.com  East US    1
Acme-DATA-multi-0001+ 35.233.223.64 acmedata2.azure.com  Central US 1

ノードが導入されるリージョンを制御するために、LocationMap フィールドを使用して、定義されたノードを指定のリージョンにマップすることができます。LocationMap をノード定義に含めたら、ZoneMap (前のセクション "複数ゾーンにわたる導入" を参照) も含めて、ノード (複数可) を目的のゾーン (複数可) にマップする必要があります。例えば、フェイルオーバー・ペアと DR 非同期がアービターと共に含まれるミラーを導入するとします。フェイルオーバー・ペアは同じリージョンの異なるゾーンに、非同期とアービターは異なるリージョンの異なるゾーンに導入します。使用するファイルおよび icm inventory コマンドと icm ps コマンドの出力を、以下に示します。(Azure のゾーンはすべてのリージョンで同じ整数によって識別されるため、ZoneMapLocationMap でどのリージョンが指定されていてもその中の目的のゾーンのみを識別します。)

defaults.json

{
    "Provider": "Azure",
    "Label": "Sample",
    "Tag": "multi",
    "Location": "East US,Central US",
    "Zone": "1,2",
    ...
}

definitions.json

[
  {
    "Role": "DATA",
    "Count": "3",
    "MirrorMap": "primary,backup,async",
    "LocationMap": "1,1,2",
    "ZoneMap": "1,2,1"
  },
  {
    "Role": "AR",
    "Count": "1",
    "DockerImage": "intersystems/arbiter:2022.2.0.221.0",
    "RegionMap": "2",
    "ZoneMap": "2"
  }
]

icm inventory

Machine               IP Address    DNS Name             Region     Zone
-------               ----------    --------             ------     ----
Acme-AR-multi-0001    35.179.173.90 acmear1.azure.com    Central US 2
Acme-DATA-multi-0001+ 35.237.131.39 acmedata1.azure.com  East US    1
Acme-DATA-multi-0002- 35.233.223.64 acmedata2.azure.com  East US    2
Acme-DATA-multi-0003  35.166.127.82 acmedata3.google.com Central US 1

icm ps

Machine              IP Address    Container Status Health  Mirror    Image
-------              ----------    --------- ------ ------  ------    -----
Acme-AR-multi-0001   35.179.173.90 arbiter   Up     healthy           intersystems/arbiter:2022.2.0.221.0
Acme-DATA-multi-0001 35.237.131.39 iris      Up     healthy PRIMARY   intersystems/iris:2022.2.0.221.0
Acme-DATA-multi-0002 35.233.223.64 iris      Up     healthy BACKUP    intersystems/iris:2022.2.0.221.0
Acme-DATA-multi-0003 35.166.127.82 iris      Up     healthy CONNECTED intersystems/iris:2022.2.0.221.0

Azure マルチリージョン導入環境で既存の仮想ネットワークを使用する場合は、既定値ファイルに ResourceGroupName および VirtualNetwork フィールドを含めて ("Microsoft Azure (Azure) パラメータ" を参照)、Location フィールドで指定されたリージョンごとにネットワークを指定する必要があります。以下に例を示します。

{
    "Provider": "Azure",
    "Label": "Sample",
    "Tag": "multi",
    "Location": "East US,Central US",
    "Zone": "1,2",
    "ResourceGroupName": "sample-resource-group",
    "VirtualNetworkName": "sample-vnet-east,sample-vnet-central"
    ...
}

指定したネットワークは、重複しないアドレス空間を持つ必要があります。付随する定義ファイルでは、各定義に、Location フィールドで指定されたリージョンごとに一意のサブネットを指定する Subnetname フィールドを含める必要があります。例えば、このセクションで説明するミラーリングされた導入で、既定値ファイルに ResourceGroupName および VirtualNetwork フィールドが含まれる場合、定義ファイルは次のようになります。AR 定義は Central US リージョンにのみ導入するため、この定義で必要なサブネットは 1 つだけです。

[
  {
    "Role": "DATA",
    "Count": "3",
    "MirrorMap": "primary,backup,async",
    "RegionMap": "1,1,2",
    "ZoneMap": "1,2,1",
    "SubnetName": "acme-subnet-data-east,acme-subnet-data-central"
  },
  {
    "Role": "AR",
    "Count": "1",
    "DockerImage": "intersystems/arbiter:2022.2.0.221.0",
    "RegionMap": "2",
    "ZoneMap": "2",
    "SubnetName": "acme-subnet-arbiter-central"
  }
]
Note:

Azure マルチリージョン導入環境にロード・バランサ (LB ノード) を含めることはできません。ロード・バランサは Azure 上の単一ノードに制限されているためです。

AWS と Tencent での複数のリージョンにわたる導入

AWS と Tencent で複数のリージョンにわたって導入するには、ICM はまず必要なインフラストラクチャを別個のリージョンにプロビジョニングし、次に、そのインフラストラクチャをマージして、あたかも既存のインフラストラクチャであるかのようにそこにサービスを導入します。

この手順は、複数のプロバイダにわたる導入にも使用できます。この説明では、"リージョンまたはプロバイダ" を示す場合に "リージョン" を使用し、マルチプロバイダと AWS/Tencent マルチリージョンとの違いは必要に応じて記載します。

マージされたマルチリージョン導入を作成する手順は、以下のステップで構成されます。

  1. 別個の ICM セッションでリージョンごとにインフラストラクチャをプロビジョニングします。

  2. icm merge コマンドを使用して、マルチリージョン・インフラストラクチャをマージします。

  3. マージされた definitions.json ファイルを確認し、必要に応じて順序変更や更新を行います。

  4. icm provision コマンドを使用して、マージされたインフラストラクチャを再プロビジョニングします。

  5. icm run コマンドを使用し、PreExisting 導入として、マージされたインフラストラクチャにサービスを導入します。

  6. インフラストラクチャをプロビジョニング解除する場合は、元のセッション・ディレクトリで別途 icm unprovision コマンドを発行します。

インフラストラクチャのプロビジョニング

リージョン (Region フィールドで指定されたもの) ごとにインフラストラクチャをプロビジョニングするための別個のセッションを、同じ ICM コンテナ内の別個の作業ディレクトリで実行する必要があります。例えば、提供されている /Samples/AWS ディレクトリ (“ICM の使用” の章にある "導入の定義" を参照) を /Samples/AWS/us-east-1 および /Samples/AWS/us-west–1 にコピーすることから始めることができます。それぞれの既定値ファイルと定義ファイルで、最終的なマルチリージョン導入環境に合わせて、目的のリージョン、ノード定義、および機能を指定します。例えば、一方のリージョンにミラー・フェイルオーバー・ペアを導入し、もう一方のリージョンにミラーの DR 非同期メンバを導入する場合、適切なリージョンとゾーン、および "Mirror": "true" を既定値ファイルに含め、一方のリージョンの定義ファイルで 2 つの DM (フェイルオーバー・ペア用) を、他方の定義ファイルで 3 つ目の DM (非同期用) を、どちらかで 1 つの AR (アービター) ノードを定義します。リソースの競合を回避するために、マルチリージョン導入環境の既定値ファイルにはそれぞれ、一意の Label または Tag、あるいはその両方が必要です。マルチプロバイダ導入環境では、その必要はありません。この例を以下に示します。

Note:

Mirror が true に設定されている場合に DM ノードが 1 つしか定義されていないなど、指定された定義が単一リージョン導入環境のトポロジ要件を満たしていない場合は、/Samples/AWS/us-west-1/defaults.json に示すように、既定値ファイルに "SkipTopologyValidation": "true" を含めることによって、トポロジ検証を無効にします。

/Samples/AWS/us-east-1

defaults.json

{
    "Provider": "AWS",
    "Label": "Sample",
    "Tag": "east1",
    "Region": "us-east-1",
    "Zone": "us-east1-a,us-east1-b",
    "Mirror": "true",
    ...
}

definitions.json

[
  {
    "Role": "DM",
    "Count": "2",
    "ZoneMap": "1,2"
  }
]

/Samples/AWS/us-west-1/

defaults.json

{
    "Provider": "AWS",
    "Label": "Sample",
    "Tag": "west1",
    "Region": "us-west-1",
    "Zone": "us-west1-a,us-west1-b",
    "Mirror": "true",
    "SkipTopologyValidation": "true"},
    ...
}

definitions.json

[
  {
    "Role": "DM",
    "Count": "1",
    "ZoneMap": "1"
  }
  {
    "Role": "AR",
    "Count": "1",
    "ZoneMap": "2"
  }
]

各作業ディレクトリで icm provision コマンドを使用して、リージョンごとにインフラストラクチャをプロビジョニングします。各ディレクトリで実行された icm inventory コマンドの出力には、作業しているインフラストラクチャが表示されます。以下に例を示します。

/Samples/AWS/us-east-1

$ icm inventory
Machine             IP Address    DNS Name                        Region    Zone
-------             ----------    --------                        ------    ----
Acme-DM-east1-0001+ 54.214.230.24 ec2-54-214-230-24.amazonaws.com us-east-1 a
Acme-DM-east1-0002- 54.129.103.67 ec2-54-129-103-67.amazonaws.com us-east-1 b

/Samples/AWS/us-west-1

$ icm inventory
Machine             IP Address    DNS Name                        Region    Zone
-------             ----------    --------                        ------    ----
Acme-AR-west1-0001  54.181.212.79 ec2-54-181-212-79.amazonaws.com us-west-1 b
Acme-DM-west1-0002  54.253.103.21 ec2-54-253-103-21.amazonaws.com us-west-1 a

プロビジョニングされたインフラストラクチャのマージ

icm merge コマンドは、現在の作業ディレクトリおよび指定された追加のディレクトリ内の構成ファイルをスキャンして、指定の新しいディレクトリ内に、PreExisting 導入に使用できるマージされた構成ファイルを作成します。例えば、/Samples/AWS/us-east–1 および /Samples/AWS/us-west–1 内の定義ファイルと既定値ファイルをマージして /Samples/AWS/merge 内に新しいセットを作成するには、以下のコマンドを発行します。

$ cd /Samples/AWS/us-east-1
$ mkdir ../merge
$ icm merge -options ../us-west1 -localPath /Samples/AWS/merge

icm merge コマンドで、-options はローカル・ディレクトリとマージされるプロビジョニング・ディレクトリのコンマ区切りリストを指定し、--localPath はマージされる定義のマージ先ディレクトリを指定します。(ICM コマンド行に Docker 引数を含めることを可能にする -options オプションの詳細は、"カスタム・コンテナおよびサードパーティ・コンテナでの ICM の使用" を参照してください。)

マージされた定義ファイルの確認

新しい構成ファイルを調べると、マージされた既定値ファイルで ProviderPreExisting に変更されていることがわかります (以前の Provider フィールドや他のフィールドは定義ファイルに移動されています。これらは icm inventory コマンドによって表示されますが、それ以外の影響はありません)。必要に応じて、Label または Tag (あるいはその両方) を変更できます。

マージされた定義ファイル内の定義は、プロバイダ PreExisting で使用するように変換されています。付録 “既存のクラスタへの導入” の "PreExisting の定義ファイル" に記載されているように、PreExisting 導入の definitions.json ファイルには、ノードごとにエントリが 1 つずつ含まれます (ロールごとに 1 つのエントリがあり、そのロールのノード数を指定する Count フィールドが含まれるわけではありません)。それぞれのノードは、IP アドレスまたは完全修飾ドメイン名によって識別されます。IPAddress フィールドまたは DNSName フィールドに加えて、SSHUser フィールドがそれぞれの定義に含まれている必要があります (“既存のクラスタへの導入” の "SSH" に記載されているように、後者では、パスワードを使用しない sudo アクセス権を持つ非 root ユーザを指定します)。マージされたファイルでは、定義がリージョン別に (マルチプロバイダ導入環境ではプロバイダ別に) グループ化されています。ミラー・メンバの目的の配置を反映するように必要に応じて順序を変更し、適切なミラー・マップを定義する必要があります ("ミラーリングされた構成の要件" および "複数ゾーンにわたる導入" を参照)。確認が完了すると、この例の定義ファイルは以下のようになります。

[
    {
        "Role":"DM",
        "IPAddress":"54.214.230.24",
        "LicenseKey": "ubuntu-sharding-iris.key",
        "SSHUser": "icmuser",
        "MirrorMap": "primary,backup,async"
    },
    {
        "Role":"DM",
        "IPAddress":"54.129.103.67",
        "LicenseKey": "ubuntu-sharding-iris.key",
        "SSHUser": "icmuser",
        "MirrorMap": "primary,backup,async"
    },
    {
        "Role":"DM",
        "IPAddress":"54.253.103.21",
        "LicenseKey": "ubuntu-sharding-iris.key",
        "SSHUser": "icmuser",
        "MirrorMap": "primary,backup,async"
    },
    {
        "Role":"AR",
        "IPAddress":"54.181.212.79",
        "SSHUser": "icmuser",
        "StartCount": "4"
    }
]

マージされたインフラストラクチャの再プロビジョニング

新しいディレクトリ (この例では /Samples/AWS/merge) で icm provision コマンドを発行して、マージされたインフラストラクチャを再プロビジョニングします。icm inventory コマンドの出力には、マージされたインフラストラクチャが 1 つのリストとして表示されます。

$ icm inventory
Machine             IP Address     DNS Name                       Region    Zone
-------             ----------     --------                       ------    ----
Acme-DM-east1-0001+ 54.214.230.24 ec2-54-214-230-24.amazonaws.com us-east-1 a
Acme-DM-east1-0002- 54.129.103.67 ec2-54-129-103-67.amazonaws.com us-east-1 b
Acme-AR-west1-0001  54.181.212.79 ec2-54-181-212-79.amazonaws.com us-west-1 b
Acme-DM-west1-0002  54.253.103.21 ec2-54-253-103-21.amazonaws.com us-west-1 a

マージされたインフラストラクチャへのサービスの導入

いずれの導入環境でも行うように、icm run コマンドを使用して、マージされたインフラストラクチャにサービスを導入します。以下に例を示します。

$ icm run
...
-> Management Portal available at: http://112.97.196.104.google.com:52773/csp/sys/UtilHome.csp
$ icm ps
Machine            IP Address    Container Status Health  Mirror    Image
-------            ----------    --------- ------ ------  ------    -----
Acme-AR-multi-0001 35.179.173.90 arbiter   Up     healthy           intersystems/arbiter:2022.2.0.221.0
Acme-DM-multi-0001 35.237.131.39 iris      Up     healthy PRIMARY   intersystems/iris:2022.2.0.221.0
Acme-DM-multi-0002 35.233.223.64 iris      Up     healthy BACKUP    intersystems/iris:2022.2.0.221.0
Acme-DM-multi-0003 35.166.127.82 iris      Up     healthy CONNECTED intersystems/iris:2022.2.0.221.0

マージされたインフラストラクチャのプロビジョニング解除

マルチリージョン導入環境をプロビジョニング解除する時期が来たら、元の作業ディレクトリに戻って icm unprovision コマンドを発行した後、マージされた作業ディレクトリを削除します。この例では、以下のようにします。

$ cd /Samples/AWS/us-east-1
$ icm unprovision -force -cleanUp
...
...completed destroy of Acme-east1
$ cd /Samples/AWS/us-west-1
$ icm unprovision -force -cleanUp
...
...completed destroy of Acme-west1
$ rm -rf /Samples/AWS/merge

プライベート・ネットワークへの導入

ICM は、対象のロールに必要なポートおよびプロトコルのみを公開するように各ホスト・ノードのファイアウォールを構成します。例えば、ISCAgent ポートが公開されるのは、ミラーリングが有効であり、ロールが AR、DATA、DM、または DS のいずれかである場合のみです。

しかし、パブリック・インターネットから構成にまったくアクセスできないようにしたい場合もあります。その場合は、ICM を使用して、直接的なパブリック・アクセスを提供しないように、構成をプライベート・ネットワークに導入することができます。ICM 自体がそのネットワークに導入されている場合は通常の方法でプロビジョニングと導入を行うことができますが、そうでない場合は、ICM にそのネットワークへのアクセスを提供するノードをパブリック・ネットワークの外部でプロビジョニングする必要があります。このノードを要塞ホストと呼びます。これらの要素を踏まえて、プライベート・ネットワークを使用するには以下の 3 つの手法があります。

  • 既存のプライベート・ネットワーク内で ICM をインストールして実行します。いくつかのフィールドを使用して (プロバイダによって異なるフィールドもあります)、これを ICM に指示します。

  • プライベート・ネットワークへのアクセスを ICM に提供する要塞ホストを ICM でプロビジョニングし、以下のいずれかに構成をプロビジョニングおよび導入します。

    • ICM によって作成されるプライベート・ネットワーク。

    • 既存のプライベート・ネットワーク (適切なフィールドを使用して記述)。

既存のプライベート・ネットワーク内での導入

以下の図のように、ICM を既存のプライベート・ネットワークに導入し、そのネットワークでプロビジョニングと導入を行う場合は、導入する構成の既定値ファイルと定義ファイルにフィールドを追加する必要があります。

プライベート・サブネット内に導入された ICM
null

既存のプライベート・ネットワークで導入を行うには、以下の手順に従います。

  1. プライベート・ネットワーク内にあるノードにアクセスできるようにします。これには、VPN または中間ホストの使用が必要な場合があります。

  2. “ICM の使用” の章にある "ICM の起動" の説明に従って、そのノードに Docker と ICM をインストールします。

  3. 以下のフィールドを defaults.json ファイルに追加します。

    "PrivateSubnet": "true",
    "net_vpc_cidr": "10.0.0.0/16",
    "net_subnet_cidr": "10.0.2.0/24"
    

    net_vpc_cidr フィールドと net_subnet_cidr フィールド (サンプル値が示されている) では、プライベート・ネットワークの CIDR とそのネットワーク内のノードのサブネットの CIDR を指定します。

  4. 適切な共通フィールドとプロバイダ固有のフィールドを以下のように defaults.json ファイルに追加します。

    プロバイダ

    キー

    説明

    すべて PrivateSubnet true に設定する必要があります。
      net_vpc_cidr プライベート・ネットワークの CIDR
      net_subnet_cidr プライベート・ネットワーク内の ICM ノードのサブネットの CIDR ("メモ" を参照)

    GCP

    Network

    Google の VPC

      Subnet Google のサブネットワーク

    Azure

    ResourceGroupName

    AzureRM のリソース・グループ

     

    VirtualNetworkName

    AzureRM の仮想ネットワーク

     

    SubnetName

    AzureRM のサブネット ("メモ" を参照)

    AWS ("メモ" を参照)

    VPCId

    AWS の VPC ID

     

    SubnetIds

    AWS のサブネット ID のコンマ区切りリスト。Zone フィールドによって指定された要素ごとに 1 つずつサブネット ID を追加します。

    Tencent

    VPCId

    Tencent の VPC ID

     

    SubnetIds

    Tencent のサブネット ID のコンマ区切りリスト。Zone フィールドによって指定された要素ごとに 1 つずつサブネット ID を追加します。

    Note:

    ICM は Azure 上で、SubnetName で指定されたサブネットにセキュリティ・グループを割り当てますが、これがサブネット上の無関係のマシンの動作に影響を与える可能性があります。このため、定義ファイル内でそれぞれのエントリについて、専用のサブネット (一意の SubnetName および対応する net_subnet_cidr で指定) を指定する必要があります (ただし、ResourceGroupNameVirtualNetworkName は既定値ファイル内で指定します)。以下のセクションの説明に従って要塞ホストを導入する場合、これには BH の定義も含まれます。

    AWS 上の既存のプライベート VPC 内に InterSystems IRIS を導入するには、ICM を導入して使用できるノードをその VPC 内に作成する必要があります。VPC の外部からこの ICM ホストにアクセスする場合は、ICM が独自のものを作成する代わりに使用するルート・テーブルとインターネット・ゲートウェイを指定できます。そのためには、RouteTableId フィールドと InternetGatewayId フィールドを defaults.json ファイルに追加します。以下に例を示します。

    "RouteTableID": "rtb-00bef388a03747469",
    "InternetGatewayId": "igw-027ad2d2b769344a3"
    

    GCP でプロビジョニングを行う場合、net_subnet_cidr フィールドは、禁令的ではなく叙述的です。これは、ノードのサブネットを含むアドレス空間である必要があると同時に、ネットワーク内の他のすべてのノードが、導入された構成にアクセスできる必要があります。

  5. icm provision および icm run を使用して、構成のプロビジョニングと導入を行います。

プライベート・ネットワークで導入を行う際には、以下の点に留意してください。

  • 管理ポータルなどの Web ページをプライベート・ネットワーク内のノードで表示するには、同様にプライベート・ネットワーク内にあるブラウザか、プロキシまたは VPN が構成されているブラウザが必要です。

  • ICM コマンドの出力に表示される DNS 名は、単にローカル IP アドレスのコピーです。

  • 現在、プライベート・ネットワークを複数のリージョンまたはプロバイダにわたって導入することはサポートされていません。

要塞ホストを使用したプライベート・ネットワークへの導入

既定値ファイルで PrivateSubnet フィールドを true に設定しているにもかかわらず、既存のネットワークを使用するために必要なフィールドを含めていない場合、ICM によってプライベート・ネットワークが作成されます。ただし、ICM は、割り振ったマシンを構成したり、それらのマシンとやり取りしたりすることができないので、この状態ではプロビジョニング・フェーズを完了することはできません。作成したプライベート・ネットワーク上のノードとやり取りできるようにするために、ICM ではオプションで要塞ホストを作成できます。これは、プライベート・サブネットとパブリック・ネットワークの両方に属し、それらの間の通信を仲介できるホスト・ノードです。

要塞ホストを使用してプライベート・ネットワークの外部に導入された ICM
null

プライベート・ネットワークと、そのネットワークへのアクセスを ICM に提供する要塞ホストを作成するには、タイプ BH の 1 つのノードの定義を definitions.json ファイルに追加します。以下に例を示します。

   {
       "Role": "DATA",
       "Count": "3"
   },
   {
       "Role": "BH",
       "Count": "1",
       "StartCount: 4"
   }

要塞ホストを導入し、既存のプライベート・ネットワークで使用するには、前述のように BH 定義を定義ファイルに追加し、ネットワークを指定するために必要なフィールドを既定値ファイルに含めます (前のセクションを参照)。BH ノードの定義が definitions.json に含まれている場合、ICM は自動的に "PrivateSubnet" オプションを "true" に設定します。

要塞ホストには SSH を使用してアクセスでき、ユーザは要塞ホストを介して SSH コマンドをプライベート・ネットワークにトンネリングすることができます。この手法を使用することで、ICM はプライベート・ネットワーク内の計算インスタンスを外部から割り振って構成し、プロビジョニングを正常に完了することができます。以下に例を示します。

$ icm inventory
Machine             IP Address     DNS Name                     Region   Zone
-------             ----------     --------                     ------   ----
Acme-BH-TEST-0004   35.237.125.218 218.125.237.35.bc.google.com us-east1 b
Acme-DATA-TEST-0001 10.0.0.2       10.0.0.2                     us-east1 b
Acme-DATA-TEST-0002 10.0.0.3       10.0.0.3                     us-east1 b
Acme-DATA-TEST-0003 10.0.0.4       10.0.0.4                     us-east1 b

構成が導入されたら、ノードに対して ssh コマンドを実行できます。以下に例を示します。

# icm ssh -role DATA -interactive
ubuntu@ip-10.0.0.2:~$

ただし、コマンドが実行されていることを確認すると、要塞ホストを介してルーティングされていることがわかります。

$ icm ssh -role DATA -interactive -verbose
ssh -A -t -i /Samples/ssh/insecure -p 3022 ubuntu@35.237.125.218
ubuntu@ip-10.0.0.2:~$

一方、他のコマンドが成功するためには、ICM は SSH 以外のポートおよびプロトコルへのアクセスを必要とします。 そのために、ICM は、Docker、JDBC、および HTTP について要塞ホストとクラスタ内のノードとの間のトンネルを構成します。 これにより、icm runicm execicm sql などのコマンドを正常に実行することができます。

要塞ホストを導入する際には、以下の点に留意してください。

  • 構成の管理ポータルのアドレスは要塞ホストのものです。

  • セキュリティ上の理由から、秘密鍵が要塞ホストに保存されることはありません。

  • ICM コマンドの出力に表示される DNS 名は、単にローカル IP アドレスのコピーです。

  • 要塞ホストを含む導入環境でのロード・バランサのプロビジョニングはサポートされていません。

  • 現在、マルチリージョン導入環境 ("複数のリージョンまたはプロバイダにわたる導入" を参照) および分散管理モード (付録 “ICM 導入環境の共有” を参照) での要塞ホストの使用はサポートされていません。

    Note:

    Google ポータルでカスタム VPC を作成する際には、既定のサブネットを作成する必要があります。要塞ホストを使用してプロビジョニングを行い、ICM によって作成されたサブネットを使用する場合は、プロビジョニングの前にこの既定のサブネットを削除する必要があります (または、既定のアドレス空間 10.0.0.0/16 と競合しないアドレス空間を提供します)。

InterSystems API Manager の導入

InterSystems API Manager (IAM) では、一元化されたゲートウェイを介してトラフィックをルーティングし、API 要求を適切なターゲット・ノードに転送することで、Web ベースの API との間のトラフィックの監視と制御を行うことができます。IAM の詳細は、"IAM ガイドOpens in a new tab" を参照してください。

IAM が ICM 導入環境に組み込まれるのは、定義ファイルで CN ノードを定義し、値 trueIAM フィールドを追加し、IAMImage フィールドを使用して InterSystems IRIS iam イメージを指定した場合です。以下に例を示します。

[
    {
        "Role": "DATA",
        "Count": "1",
        "LicenseKey": "ubuntu-sharding-iris-with-iam.key"
    },
    {
        "Role": "CN",
        "Count": "1",
        "IAM": "true",
        "IAMImage": "intersystems/iam:2.0"
    }
]

IAM コンテナは、導入フェーズで導入されます ("icm run コマンド" を参照)。PostgresImage フィールドで Postgres イメージを指定して、オプションで Postgres コンテナを導入することもできます。既定値は "一般パラメータ" に示されています。

導入に成功すると、下の例のようなメッセージが表示されます。

$ icm run
...
-> IAM Portal available at: http://112.97.196.104.google.com:8080/overview#

IAM は、IAM 対応ライセンスを取得するため、最初の (または唯一の) iris コンテナ内の InterSystems IRIS インスタンス (例えば、シャード・クラスタ内のノード 1) にアタッチします。ミラーリングが有効な場合、これが最初の (または唯一の) フェイルオーバー・ペアのプライマリになります。

Note:

IAM はコンテナレス・モードでは導入できません。

ICM でのモニタリング

ICM 導入環境で InterSystems IRIS インスタンスを監視するために、System Alerting and Monitoring クラスタ・モニタリング・ソリューションを導入できます。

サードパーティのモニタリング・パッケージを ICM 構成の一部として導入することもできます。

System Alerting and Monitoring

System Alerting and Monitoring (SAM) は、InterSystems IRIS® データ・プラットフォーム用のクラスタ・モニタリング・ソリューションです。InterSystems IRIS ベースのアプリケーションが動作する構成やプラットフォームに関係なく、SAM を使用して監視することができます。SAM の詳細は、"System Alerting and Monitoring GuideOpens in a new tab" を参照してください。

SAM が ICM 導入環境に組み込まれるのは、定義ファイルに SAM ノードを含めた場合です。DockerImage フィールドは必須で、InterSystems IRIS sam イメージを指定する必要があります。以下に例を示します。

[
    {
        "Role": "DM",
        "Count": "4",
        "LicenseKey": "ubuntu-sharding-iris.key"
    },
    {
        "Role": "SAM",
        "Count": "1",
        "DockerImage": "intersystems/sam:2.0"
    }
]

SAM アプリケーションは、5 つのコンテナで構成されます。SAM マネージャ・コンテナは、導入フェーズで導入されます ("icm run コマンド" を参照)。

他の 4 つのコンテナ (Prometheus、Alertmanager、Grafana、Nginx) は、プロビジョニング・フェーズで導入されます ("icm provision コマンド" を参照)。これらのコンテナの導入元のイメージは、PrometheusImage、AlertmanagerImage、GrafanaImage、NginxImage フィールドを使用して指定できます。これらの既定値は、"一般パラメータ" に示されています。

導入に成功すると、下の例のようなメッセージが表示されます。

$ icm run
...
-> SAM Portal available at: http://112.97.196.104.google.com:8080/api/sam/app/index.csp#
Note:

SAM はコンテナレス・モードでは導入できません。

ICM でのサードパーティ・モニタリングの導入

サードパーティの好みのモニタリング・パッケージ (または、その他のサードパーティ・パッケージ) を ICM 構成の一部として導入できます。以下の例は、icm ssh コマンドを使用して、導入環境内のすべてのホストに Weave Scope モニタリングを追加する方法を示しています。

icm ssh -command "sudo curl -L git.io/scope -o /usr/local/bin/scope 2>&1"
icm ssh -command "sudo chmod +x /usr/local/bin/scope"
icm ssh -command "sudo /usr/local/bin/scope launch 2>&1"

これらのコマンドの実行後、icm inventory コマンドで表示された任意のホスト上のポート 4040 (http://hostname:4040) を経由して、Weave Scope にアクセスできます。

Important:

この簡単な例は、説明のみを目的としています。Weave Scope は認証が不要であるため、本質的に安全ではありません。ファイアウォールでポート 4040 が開かれている場合、その URL を知るすべての人がコンテナにアクセスできます。十分に安全であると確信できる場合を除き、プライベート・ネットワークの外部にサードパーティ・パッケージを導入しないでください。

ICM のトラブルシューティング

ICM 操作中にエラーが発生した場合、エラーに関する情報を確認できるログ・ファイルを示すメッセージを ICM は表示します。ICM の導入を開始する前に、"ログ・ファイルとその他の ICM ファイル" で説明されている、ログ・ファイルとその場所をよく理解しておいてください。

InterSystems IRIS イメージのコンテナ・イメージを作成して実行する際の重要な考慮事項については、以降のトピックに加えて、"コンテナ内での InterSystems IRIS の実行" の "Docker/InterSystems IRIS に関するその他の考慮事項Opens in a new tab" を参照してください。

ホスト・ノードの再起動とリカバリ

計画外停止、またはクラウド・プロバイダ (予防メンテナンスの場合など) やユーザ (コスト削減のためなど) による計画的な措置によってクラウド・ホスト・ノードがシャットダウンされ、再起動された場合、その IP アドレスとドメイン名が変更されることがあります。これにより、ICM と導入されたアプリケーション (InterSystems IRIS を含む) の両方で問題が生じます。

この動作は、クラウド・プロバイダによって異なります。GCP および Azure では、既定で、ホスト・ノードの再起動後も IP アドレスとドメイン名が保持されますが、AWS と Tencent ではこの機能はオプションです ("Elastic IP 機能" を参照)。

ホスト・ノードがシャットダウンされる理由としては、以下のものがあります。

  • 計画外停止

    • 停電

    • カーネル・パニック

  • プロバイダが開始した予防メンテナンス

  • ユーザが開始したコスト削減戦略

ホスト・ノードを意図的にシャットダウンする方法としては、以下のものがあります。

  • クラウド・プロバイダのユーザ・インタフェースの使用

  • ICM の使用 :

    icm ssh -command 'sudo shutdown'
    

Elastic IP 機能

AWS の Elastic IP 機能では、ホスト・ノードの再起動後も IP アドレスとドメイン名が保持されます。ICM では、この機能は既定で無効になっています。その理由の 1 つは、停止しているマシンに追加の料金がかかるためです (実行中のマシンにはかかりません)。この機能を有効にするには、defaults.json ファイルで ElasticIP フィールドを true に設定します。必ず、お使いのプロバイダの機能を確認してください (AWS ドキュメントの "Elastic IP アドレスOpens in a new tab" または Tencent ドキュメントの "Elastic Public IPOpens in a new tab" を参照してください)。

リカバリと再起動の手順

ホスト・ノードの IP アドレスとドメイン名が変更された場合、ICM はノードと通信できなくなります。そのため、手動更新に続けて、クラスタに対する更新が必要になります。ICM によって導入される Weave ネットワークには、分散型の検出サービスが含まれています。つまり、少なくとも 1 つのホスト・ノードが元の IP アドレスを保持していれば、他のホスト・ノードがそれに到達し、相互とのすべての接続を再確立することができます。ただし、クラスタ内のすべてのホスト・ノードの IP アドレスが変更された場合、Weave ネットワーク内のすべてのノードを有効な IP アドレスに接続するには、追加の手順が必要です。

手動更新の手順は以下のとおりです。

  1. クラウド・プロバイダの Web コンソールに移動し、そこでインスタンスを探します。 それぞれの IP アドレスとドメイン名を記録します。以下に例を示します。

    ノード

    IP アドレス

    ドメイン名

    ANDY-DATA-TEST-0001

    54.191.233.2

    ec2-54-191-233-2.amazonaws.com

    ANDY-DATA-TEST-0002

    54.202.223.57

    ec2-54-202-223-57.amazonaws.com

    ANDY-DATA-TEST-0003

    54.202.223.58

    ec2-54-202-223-58.amazonaws.com

  2. instances.json ファイルを編集し (“基本的な ICM の要素” の章の "インスタンス・ファイル" を参照)、各インスタンスの IPAddress フィールドと DNSName フィールドを更新します。以下に例を示します。

    "Label" : "SHARDING",
    "Role" : "DATA",
    "Tag" : "TEST",
    "MachineName" : "ANDY-DATA-TEST-0001",
    "IPAddress" : "54.191.233.2",
    "DNSName" : "ec2-54-191-233-2.amazonaws.com",
    
  3. icm inventory コマンドを使用して、値が正しいことを確認します。

    $ icm inventory
    Machine                 IP Address    DNS Name                        Region   Zone
    -------                 ----------    --------                        ------   ----
    ANDY-DATA-TEST-0001 54.191.233.2  ec2-54-191-233-2.amazonaws.com  us-east1 b
    ANDY-DATA-TEST-0002 54.202.223.57 ec2-54-202-223-57.amazonaws.com us-east1 b
    ANDY-DATA-TEST-0003 54.202.223.58 ec2-54-202-223-58.amazonaws.com us-east1 b
    
  4. icm ps コマンドを使用して、ホスト・ノードに到達できることを確認します。

    
    $ icm ps -container weave
    Machine                   IP Address      Container   Status   Health    Image
    -------                   ----------      ---------   ------   ------    -----
    ANDY-DATA-TEST-0001   54.191.233.2    weave       Up                 weaveworks/weave:2.0.4
    ANDY-DATA-TEST-0002   54.202.223.57   weave       Up                 weaveworks/weave:2.0.4
    ANDY-DATA-TEST-0003   54.202.223.58   weave       Up                 weaveworks/weave:2.0.4
    
    
  5. すべての IP アドレスが変更されている場合は、この例の 54.191.233.2 など、新しいアドレスのいずれかを選択します。その後、以下のように、icm ssh コマンドを使用して各ノードをこの IP アドレスに接続します。

    $ icm ssh -command "weave connect --replace 54.191.233.2"
    Executing command 'weave connect 54.191.233.2' on host ANDY-DATA-TEST-0001...
    Executing command 'weave connect 54.191.233.2' on host ANDY-DATA-TEST-0002...
    Executing command 'weave connect 54.191.233.2' on host ANDY-DATA-TEST-0003...
    ...executed on ANDY-DATA-TEST-0001
    ...executed on ANDY-DATA-TEST-0002
    ...executed on ANDY-DATA-TEST-0003
    

時刻スキューの訂正

ICM コンテナ内のシステム時刻が標準時刻と数分以上異なる場合は、各種クラウド・プロバイダが ICM からの要求を拒否する可能性があります。これは、コンテナが起動時 (初期、または停止や一時停止の後) に NTP サーバに到達できない場合に起こることがあります。このエラーは、terraform.err ファイルに以下のような差異として示されます。

Error refreshing state: 1 error(s) occurred:

    # icm provision
    Error: Thread exited with value 1
    Signature expired: 20170504T170025Z is now earlier than 20170504T171441Z (20170504T172941Z   15 min.)
    status code: 403, request id: 41f1c4c3-30ef-11e7-afcb-3d4015da6526 doesn’t run for a period of time

解決法は、NTP を手動で実行することです。例を以下に示します。

ntpd -nqp pool.ntp.org

その後、時刻が正しくなったことを確認します。("ICM の起動" の --cap-add オプションに関する説明も参照してください。)

ICM でのタイムアウト

ターゲット・システムに過大な負荷がかかっている場合、ICM のさまざまな操作がタイムアウトになることがあります。これらのタイムアウトの多くは、ICM の直接の制御下にありません (例えば、クラウド・プロバイダから制御される)。SSH 接続や JDBC 接続など、その他の操作は何度か再試行されます。

SSH のタイムアウトは、場合によっては正しく認識されないことがあります。例えば、以下の例では、SSH タイムアウトは基礎となるライブラリからの一般例外として現れています。

# icm cp -localPath foo.txt -remotePath /tmp/
2017-03-28 18:40:19 ERROR Docker:324 - Error: 
java.io.IOException: com.jcraft.jsch.JSchException: channel is not opened. 
2017-03-28 18:40:19 ERROR Docker:24 - java.lang.Exception: Errors occurred during execution; aborting operation 
        at com.intersystems.tbd.provision.SSH.sshCommand(SSH.java:419) 
        at com.intersystems.tbd.provision.Provision.execute(Provision.java:173) 
        at com.intersystems.tbd.provision.Main.main(Main.java:22)

この場合に推奨される対処法は、操作を再試行することです (最も近い原因を特定して解決した後)。

セキュリティ上の理由から、ICM はアイドル・セッションの既定の SSH タイムアウトを 10 分に設定します (60 秒 x 10 回の再試行)。これらの値は、/etc/ssh/sshd_config ファイル内で以下のフィールドを修正することによって変更できます。

ClientAliveInterval 60
ClientAliveCountMax 10

Docker ブリッジ・ネットワーク IP アドレス範囲の競合

コンテナ・ネットワークの場合、Docker では、既定で、サブネット 172.17.0.0/16 でブリッジ・ネットワークが使用されます (Docker ドキュメントの "Use bridge networksOpens in a new tab" を参照)。このサブネットを既にネットワークで使用している場合は、競合が発生して、Docker が起動しなくなったり、導入したホスト・ノードにアクセスできなくなったりすることがあります。この問題は、ICM コンテナをホストしているマシンと InterSystems IRIS クラスタ・ノードのどちらかまたは両方で生じる可能性があります。

これを解決するには、使用している IP アドレスと競合しない範囲にサブネットを割り当て直すように、Docker 構成ファイルのブリッジ・ネットワークの IP 構成を編集できます (ユーザの組織の IT 部門がこの値の指定を支援できる場合があります)。この変更を行うには、Docker デーモン構成ファイルに以下のような行を追加します。

"bip": "192.168.0.1/24"

ICM コンテナでこの問題が生じる場合は、コンテナのホストで /etc/docker/daemon.json ファイルを編集します。導入された構成内のホスト・ノードでこの問題が生じる場合は、ICM コンテナ内の /ICM/etc/toHost/daemon.json ファイルを編集します。既定でこのファイルには前述の例で示した値が含まれています。この値によって、PreExisting 以外の導入タイプで問題を回避できる可能性があります。

daemon.json ファイルのコンテンツに関する詳細は、Docker ドキュメントの "Daemon configuration fileOpens in a new tab" に記載されています。また、"Configure and troubleshoot the Docker daemonOpens in a new tab" も参照してください。

Weave ネットワーク IP アドレス範囲の競合

既定では、Weave ネットワークは IP アドレス範囲 10.32.0.0/12 を使用します。これが既存のネットワークと競合する場合は、ログ・ファイル installWeave.log に以下のようなエラーが表示されることがあります。

Network 10.32.0.0/12 overlaps with existing route 10.0.0.0/8 on host
ERROR: Default --ipalloc-range 10.32.0.0/12 overlaps with existing route on host.
You must pick another range and set it on all hosts.

このエラーは、指定されたマシンが他のソフトウェアやローカル・ポリシーをサポートするためにカスタム・ネットワーク構成を行っている場合に、プロバイダ PreExisting で発生することが考えられます。他のネットワークを無効にしたり移動したりすることができない場合は、以下の手順を使用して Weave 構成を代わりに変更できます。

  1. ICM コンテナでローカルにある以下のファイルを編集します。

    /ICM/etc/toHost/installWeave.sh
    
  2. 文字列 weave launch を含む行を見つけます。Weave と既存のネットワークの間に重複が生じる危険がないことが確実ならば、以下に示す下線の付いたテキストを追加することによって、既定の範囲を引き続き使用するように Weave に強制できます。

    sudo /usr/local/bin/weave launch --ipalloc-range 10.32.0.0/12 --password $2 
    

    以下のように、Weave を別のプライベート・ネットワークに単に移動することもできます。

    sudo /usr/local/bin/weave launch --ipalloc-range 172.30.0.0/16 --password $2
    
  3. ファイルを保存します。

  4. クラスタの再プロビジョニングを行います。

巨大なページ

一部のアーキテクチャでは、InterSystems IRIS メッセージ・ログに以下のようなエラーが表示される場合があります。

0 Automatically configuring buffers 
1 Insufficient privileges to allocate Huge Pages; nonroot instance requires CAP_IPC_LOCK capability for Huge Pages. 
2 Failed to allocate 1316MB shared memory using Huge Pages. Startup will retry with standard pages. If huge pages 
  are needed for performance, check the OS settings and consider marking them as required with the InterSystems IRIS 
  'memlock' configuration parameter.

icm run コマンドに以下のオプションを指定することによって、このエラーを解消できます。

-options "--cap-add IPC_LOCK"
FeedbackOpens in a new tab