[CAIレシピ] はじめてCAIを使う際に

## はじめに

本ページではIICSのCAI(`Cloud Application Integration, アプリケーション統合`)をはじめて利用する際に理解しておきたいポイントをまとめてみました。

## CAIのアセット

CAIは、IICSの他のサービスと比較するとプログラミング要素の強いサービスです。次のような様々なアセットを組み合わせることで、柔軟で複雑なアプリケーション連携処理を実装できます。

|アセット名|概要|
|---|---|
|CAIプロセス|CAIで利用されるメインのアセット。ディシジョン,並列パス,ジャンプといったステップ(部品)とアプリケーション接続などを組み合わせることで、プログラミングと同様に複雑な制御を伴う処理を実装できます。<br>なお、一般的には __プロセス__ と表記されますが混乱を避けるために __[CAIレシピ]__ では __CAIプロセス__ と表記しています。|
|ガイド|Webブラウザで操作可能なWebページを実装できます。WebページではCAIプロセスやサービス接続を実行して結果を表示したり、条件に応じて表示するWebページを制御することもできます。|
|アプリケーション接続|JDBC,Salesforce,S3,ローカルファイルシステム,サービス接続など、様々なサービスと連携するためのアセットです。<br>CAIプロセスから呼び出す他に、一部の接続ではODataサービスとしてデータを取得するインターフェースとしても利用できます。|
|サービス接続|大きく次の2つの接続を提供します<br><ul><li>REST APIやSOAPによるWeb APIの実行を構成する</li><li>JDBC接続を定義して任意のSQL実行を構成する</li></ul>作成したサービス接続はアプリケーション接続として利用する設定が必要です。|
|プロセスオブジェクト|異なるタイプを有する複数のフィールドを1つのオブジェクトとして扱うためのアセット。プロセスオブジェクトを入れ子形式として定義することで、階層構造を定義することもできます。<br>(`プログラミング言語でいうところの構造体に該当する機能`)|

各アセットはアプリケーション統合ページ画面の __新規__ メニューから作成できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074553/a6db0105-8103-6499-4440-9118a0c672b0.png)




## 3つのデプロイ先
CAIで作成したアセットのデプロイ先には __Cloudサーバー__・__Secure Agentグループ__・__エージェント__ の3つがあります(デプロイ先を指定しないアセットもあります)。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074553/475eefff-3021-6cf4-53ef-ce1cbd8423d6.png)

以下、デプロイ先の補足です

|デプロイ先|補足|
|---|---|
|クラウド|IICSサーバーにCAIのアセットがデプロイされます。例えば実行するCAIプロセスの依存アセットが全てクラウドにデプロイされている場合はSecure Agentを必要としません。|
|Secure Agentグループ|Secure Agentグループ内の __全て__ のSecure AgentにCAIのアセットがデプロイされます。ロードバランサやDNSラウンドロビンを別途構成するなどして負荷分散を実現できます。ロードバランサの利用に関しては次の技術情報を確認します。<br>[How to configure a load balancer for agent group on CAI](https://knowledge.informatica.com/s/article/000208564?language=en_US)|
|エージェント|Secure Agentグループ内の __単一__ のSecure AgentにCAIアセットがデプロイされます。|

## 必要なIICSサービス

CAIアセットの __デプロイ先をSecure Agent__ とする場合、ランタイム環境の設定から __Application Integration(Process Server)サービス__ を有効化します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074553/98441e29-f6ad-59ba-c9a0-c37cf2ac50eb.png)


__Application Integrationサービス__ を有効化すると、Secure Agentに __Process Serverサービス__ が開始されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074553/3e150c3f-3e14-64be-1e2f-0ba9dd6c0663.png)

なお、全アセットのデプロイ先がクラウドサーバーの場合、サービスの有効化は不要です。


## ネットワーク設定

### 一般

次の環境がFirewallなどによりOutboud通信を制限している場合、IICSサーバーのCAIサービスと通信できるように構成します。

- Secure Agentのインストール先の環境
- 開発や監視目的などによりWebブラウザを利用してIICSにログインする環境

サーバーの一覧は [POD Availability and Networking](https://docs.informatica.com/cloud-common-services/pod-availability-and-networking/current-version.html)から確認できます。
次はAPNE1を例としたPOD Availability and Networkingの抜粋です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074553/01fa64f9-90aa-485a-eaba-8ed64d7ff8d4.png)

APNE1では次のIPアドレスとの通信を許可します(2024年6月時点)。

- Primary
	- 20.43.88.63
	- 20.89.33.72/29(20.89.33.72 to 20.89.33.79)
- DR
	- 138.91.16.168
	- 52.175.147.224/29(52.175.147.224 to 52.175.147.231)

通信時に利用されるIICSサーバー側のポートは443です。
APIM(API Manager)を利用る場合には、次の箇所も確認・設定が必要です
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074553/b8e4cc6d-2788-d18d-4249-43c6c3ec29b7.png)


### IICSの他サービスとの連携時

次の2つの設定・実装をしている場合は注意が必要です。

- 信頼済みIP範囲を使用
- IICSの他サービスをCAIから呼び出す

前者の設定は次の箇所が対象です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074553/6bd0e75f-38aa-c826-cd2d-137b2c6bd664.png)


後者の設定はCAIプロセスからCDIの機能を呼び出す場合(例えばCAIプロセスからMappingを実行する場合)が対象です。

条件を満たすと、CAI実行時にエラーが発生するので、対処として[ネットワーク設定 - 一般](#ネットワーク設定---一般)で確認したIPアドレスを __信頼済みIP範囲__ に追加します。

# 利用可能なSecure AgentのOS

CAIを利用するSecure Agent環境として次のOSを利用できます(2024年2月時点)。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074553/4fc9ee3e-2671-1397-1e8b-1b9e86625753.png)
利用可能なOSの最新情報を得るには次のKBにアクセスして _PAM for Informatica Intelligent Cloud Services (IICS)_ のリンクをクリックします。
[PAM for Informatica Intelligent Cloud Services (IICS)](https://knowledge.informatica.com/s/article/DOC-17579?language=en_US)


## Secure Agent環境の留意点

### OSユーザー要件
Linux OSを利用している場合、 __必ず__ 非rootユーザを使用してSecure Agentのインストール・実行をします。
Application Integration(Process Server)サービスを有効化すると、リポジトリとしてPostgreSQLがSecure Agent実行環境で起動します。rootユーザーを利用しているとPostgreSQLの制約によりPostgreSQLが起動できず、Application Integration(Process Server)サービスの起動に失敗します。

:::note info
CAI未使用時もrootユーザを利用しない方針をご案内しています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074553/1b1fc8af-de6b-4f38-658d-c21d5444ea49.png)
:::

### ポート要件
Secure Agent実行環境において次のポートがSecure Agent以外のサービス・CAIプロセスに利用されないように留意します。

- 7080 ... CAIプロセスのHTTP実行用ポート
- 7443 ... CAIプロセスのHTTPS実行用ポート
- 5432 ... Process ServerのリポジトリDB(PostgreSQL)が利用するポート


## 参照

- [Qiita - IICS CAIの実装レシピ - マスターページ](https://qiita.com/shunsuzu/items/3d1971ef6e3b993516aa)