Technical Blog テクニカルブログ
  1. HOME
  2. テクニカルブログ
  3. 【IICS】GCPにSecure Agent導入してみた

【IICS】GCPにSecure Agent導入してみた

投稿者:泉 亮太郎

まずはじめに

こんにちは!
NI+C DataOpsチームの泉です。

本Tech Blogでは、Informatica Intelligent Cloud Services(以下、IICSとします)が提供するSecure AgentをGCPに導入してみたいと思います!

▼IICSについてはこちら
https://www.niandc.co.jp/sol/iics/

アジェンダ

  1. Secure Agentとは
  2. Secure Agent導入の事前準備
  3. Secure Agentの導入
  4. Secure Agentの動作確認
  5. つまずいた点と解決方法
  6. まとめ

Secure Agentとは

Secure Agentは、IICSが提供するデータ統合などの機能を実行するためのランタイム環境であり、オンプレミスまたはクラウド環境で動作します。
IICSはハイブリッド型のアーキテクチャを採用しており、マルチクラウドや、オンプレミスとクラウドを組み合わせたハイブリッド環境でのデータ統合タスクが実現できます。この際、Secure Agentをユーザーの管理下に配置することにより、実データをIICS(クラウド側)と送受信することはないため、セキュリティを確保することができます。

Secure Agent導入前の準備

Secure Agentを導入するためには前提としてIICSサービスを契約し利用できる状態である必要があります。
今回はIICSサービスを利用して、弊社が社内環境として使用しているGCP上にSecure Agentを導入していきたいと思います。

Secure Agentを導入する前にまずは”インスタンスの作成”・”libidnパッケージのインストール”を行います。
Informatica社が提供しているサイトで”LinuxでのSecure Agentの要件”についての記事を見つけたので、こちらも参考にしました。

▼LinuxでのSecure Agentの要件
https://docs.informatica.com/ja_jp/integration-cloud/data-integration/current-version/_getting-started_cloud-data-integration_current-version_ditamap/GUID-0DE1AE2D-F1A6-401A-987C-D45E7EE43AAF/GUID-D3188662-AD25-4157-9A30-C838C971538D/GUID-1EA6E74B-D86D-4A12-BC35-A83969A20A8E.html

■インスタンスの作成

まずはSecure Agentを導入するインスタンスをGoogle Compute Engine(以下、GCEとします)で作成しましょう。
インスタンスの初期設定値は以下の通りとなります。

インスタンス名:iics-etl-for-secureagent-vm
OS:Ubuntu20.04
マシンタイプ:e2-micro(2 vCPU、1コア、1GBメモリ)
ディスクサイズ:20GB

今回はあくまで検証としてSecure Agentの実行環境を構築するので、Secure Agentが問題なく起動・停止できることに加えて、IICSのCloud Data Integretionの機能が問題なく使用できる程度のスペックに抑えたいと思います。
また、検証も兼ねてインスタンスは最小スペック(e2-micro)から始め、スペックによるSecure Agentの動作の違いも比較してみます!

クラウド環境であるIICSとインターネット経由で接続するため、インスタンス作成時に外部IPアドレスも作成しておきましょう。
今回はセキュリティを考慮してエフェメラルで外部IPアドレスを設定しました。

■libidnパッケージのインストール

Cloud Data Integration では、libidn.so.11がインストールされていないとSecure Agent が Linux 上で実行される際に、タスクが失敗し、以下のようなエラーが発生することがあります。

なのでSecure Agentを導入する前に、libidnパッケージをインストールしておきましょう。
今回詳細な説明は割愛させていただきますが、ネット検索するとインストール方法を記載されているサイトがありましたので、興味がある方は是非調べてみてください。
また、Blogの後半にlibidnパッケージをインストールした際につまずいた点を載せているので、参考にしていただけたらと思います!

Secure Agentのインストール手順

それでは、実際にSecure Agentをインストールしていきたいと思います!
手順は以下の通りです。

1.IICSのマイサービスから”管理者”にアクセスします。

2.”管理者”画面左のメニューから”ランタイム環境”を選択します。

3.画面右上の”SecureAgentのダウンロード”をクリックします。

4.”Secure Agentのダウンロードページで以下の3点を実行します。

  • プラットフォームで「Linux 64」を選択。
  • インストールトークンをコピーしてテキストファイル等に保存しておく。
    ※後続のインストール作業で使用します。
  • ”ダウンロード”をクリック。

5.事前準備で作成したインスタンスにログインします。
  ※インストールするユーザーはroot以外のユーザーを利用することが推奨されているので、一般ユーザー
   でインストールを行います。

6.手順4でダウンロードしたインストーラーをインストール先のディレクトリに配置します。

7.Secure Agentインストーラーのパーミッションを変更します。

$chmod a+d 【インストールファイルを配置したディレクトリ】/agent64_install_ng_ext.6608.bin

8.以下のコマンドを実行しSecure Agentインストーラーを実行します。

$【インストールファイルを配置したディレクトリ】/agent64_install_ng_ext.6608.bin -i console

9.処理が進行し、インストール先のディレクトリを聞かれるので、インストール先を指定します。
  (もし表示されているディレクトリで良い場合はそのままEnterを押して大丈夫です!)

Preparing to install
Extracting the JRE from the installer archive...
Unpacking the JRE...
Extracting the installation resources from the installer archive...
Configuring the installer for this system's environment...

Launching installer...

===============================================================================
Informatica Cloud Secure Agent                   (created with InstallAnywhere)
-------------------------------------------------------------------------------

Preparing CONSOLE Mode Installation...




===============================================================================
Choose Install Folder
---------------------

Where would you like to install?

 Default Install Folder: 【インストールファイルを配置したディレクトリ】

ENTER AN ABSOLUTE PATH, OR PRESS <ENTER> TO ACCEPT THE DEFAULT

10.環境設定(手順9で設定したディレクトリパスやインストールに必要なディスク容量、現在のディスク
   の空き容量)に間違いがなければEnterを押してください。

===============================================================================
Pre-Installation Summary
------------------------

Please Review the Following Before Continuing:

Product Name:
    Informatica Cloud Secure Agent

Install Folder:
    【インストールファイルを配置したディレクトリ】    

Disk Space Information (for Installation Target):
    Required:     302,563,109 Bytes
    Available: 17,215,918,080 Bytes

PRESS <ENTER> TO CONTINUE:

11.”Congratulations. Informatica Cloud Secure Agent has been successfully”が表示されればインストー
   ルは成功です!最後にEnterを押してインストールは終了になります。

===============================================================================
Installing...
-------------

 [==================|==================|==================|==================]
 [------------------|------------------|------------------|------------------]



===============================================================================
Generating Agent Token...

Please Wait
-----------



===============================================================================
Creating softlink...

Please Wait
-----------



===============================================================================
File permission

Please Wait
-----------



===============================================================================
Installation Complete
---------------------

Congratulations. Informatica Cloud Secure Agent has been successfully
installed to:

【インストールファイルを配置したディレクトリ】

To start the agent, go to directory "<agent_directory>/apps/agentcore" and
then run "infaagent startup". Check the infaagent.log file
for errors, and then visit the Informatica Cloud site to verify that the
agent is active.

PRESS <ENTER> TO EXIT THE INSTALLER:

12.AgentManagerのShellスクリプトを以下の形式で実行して、Secure AgentとIICSの紐づけを行います。
   ここでユーザーID(IICSへのログイン時に使用するユーザー名)と手順4で保存したインストールトー
   クンを設定します。最後に”Login succeeded.”が表示されれば登録成功です!

$./consoleAgentManager.sh configureToken <IICSのユーザーID> <手順4で保存したトークン>
Login with token
Login succeeded.

以上でSecure Agentのインストールは完了です!
いくつかステップはあるものの、難しい設定箇所などは特になく、意外と簡単にインストールできました。

SecureAgentの動作確認

まずは、マイサービスの管理者からランタイム環境を開き、IICS側でSecure Agentが登録されていることを確認してみます。

ランタイム環境画面の2行目に今回導入したSecure Agentが登録されていますね!

続いて問題なくIICSが起動・停止できるか確認してみます。
Secure Agentを起動・停止するためにはagentcoreディレクトリで以下のコマンドを実行します。

<起動コマンド>

./infaagent startup

<停止コマンド>

./infaagent shutdown

ここで起動してみたものの30分経過しても起動中にならず、ステータスが警告になりました。。。

おそらくスペックが低すぎることが原因なので、マシンタイプをe2-micro(2 vCPU、1コア、1GBメモリ)からe2-small(2 vCPU、1コア、2GBメモリ)に上げてみます。
再起動してみると、1回目は20分程で稼働中になりましたが、もう一回再起動するとe2-microと同じで30分程経過しても起動せず、警告のステータスになりました。。。
そこで次はマシンタイプをe2-smallからe2-midium(2vCPU、1コア、4GBメモリ)に上げてみます。
すると今度は3分程でSecure Agnetが稼働になりました!

以上の結果よりマシンタイプ別にSecure Agentの動作に対する比較結果を表でまとめてみました。

マシンタイプCPU、コア数   メモリディスク容量Secure Agentの動作
e2-micro   2 vCPU、1コア    1GBメモリ   20GB    起動しない。
起動後30分経過すると警告のステータスになる。
e2-small2 vCPU、1コア2GBメモリ20GB1回目は20分程で起動した。
2回目以降は起動せず、起動後30分経過すると警告のステータスになる。
e2-midium2 vCPU、1コア4GBメモリ20GB3分程で問題なく起動・停止ができる。

メモリが4GB以上ないとSecureAgentの起動に問題が発生する可能性があるようです。
今回はあくまでSecure Agent導入の検証を行うため小さいスペックで実施しましたが、実際にタスクと大量のデータを良好なパフォーマンスで処理するにはInformatica社が推奨するスペックに準拠するようにしてください。

▼Informatica社の推奨スペック
https://knowledge.informatica.com/s/article/526096?language=en_US


GCEでは必要な時に必要なリソースを追加でき、不要な場合はすぐに停止・削除が行えるので今回のようにスペックが足りない場合でも柔軟に対応することができます。
また、今回ディスク容量は変更していないのですが、同スペックでディスク容量が40GBの料金を確認したところ月間予測が1$程度しか上がっていなかったので、検証で使用する場合でも余裕をもって30~40GBくらいで作成して良いと思います。

つまずいた点と解決方法

最後にSecureAgentの導入過程やジョブを動かしてみてつまずいた点と解決方法をまとめてみました!

■ Secure Agentが起動中にならない。

インスタンスのスペックを増強することで解決しました。
Secure Agentの導入までは最小スペックで事足りますが、起動には最低4GBメモリ以上必要になります。

■libidnパッケージをインストールする際に”Unable to correct problems, you have held broken
 packages.”エラーが発生し、インストールできない。

この問題は以下のコマンドを実行することで解決しました。

apt-get update

おそらくパッケージの依存関係に問題があり、apt-get updateを実行してパッケージリストを更新したことで依存関係の問題が解消され、インストールが正常に実行できたと思われます。

■ libidnパッケージをインストールしているのに、ジョブが失敗する。

最初にlibidn.so.11よりもバージョンが高いから問題ないだろうと思い、libidn.so.12をインストールしていたところジョブ実行時に内部エラーが発生してしまいました。
そこでインスタンス側でTomcat logを確認したところ以下のエラーが発生していました。

error while loading shared libraries: libidn.so.11: cannot open shared object file: No such file or directory\n

libidn.so.11がないと言われてます。
そこで今度はlibidn.so.11をインストールしたところ、正常にジョブが実行できました。
バージョンが新しいから良いというわけではないんですね。。。
また、下記URL先の”Ubuntuのlibidnパッケージ一覧”を見てみると複数libidnパッケージがありますが、その中でlibidn11パッケージにしかlibidn.so.11は入っていないようです。
なのでOSがUbuntuの場合はlibidn11パッケージをインストールするようにして下さい。

▼Ubuntuのlibidnパッケージ一覧
https://packages.ubuntu.com/search?keywords=libidn

まとめ

今回のBlogではGCPにSecure Agentを導入してみました。
導入するクラウドに応じたインスタンス作成やセキュリティ設定などは必要ですが、Secure Agentをダウンロードしてからインストールするまでのプロセスで”GCPの場合はこの操作が必要”といったようなGCP環境に依存する操作は見受けられませんでした。そのため、他のクラウド(AWS・Azureなど)に導入する場合でもSecure Agentのインストール手順に大きな違いはないと思います。

また、Secure Agentは特に設定する項目もなく、IICSのWebコンソールから数クリックでインストーラーをダウンロードできます。
インストールの際もインストーラーを実行すれば自動的にインストールプロセスが開始され、指示に従って進めていくだけなので特別な知識や技術は必要ないと感じました。
つまずいた点も一部ありましたが、エラーやログを確認すれば早期解決できたものばかりで、全体通しても苦戦する箇所はなかったと思います。

今後は今回導入したSecure Agentを利用してIICSの様々な機能を検証していきます。
検証結果をもとに随時Blogも更新してまいりますので、是非ご覧ください!

読んでいただき、ありがとうございました!

<注意>

今回、e2-medium(CPU: 4GB) でのSecure Agentの起動という結果を出しましたが、これはあくまで最低限の機能を動作させるための環境であり、Informatica 社が推奨するスペックはこれよりも高いことに注意してください。したがって、本Blogで示された環境では、全ての機能が適切に動作することは保証されません。実業務で利用する際には必ずInformatica社の推奨スペックを確認した上で、想定される処理内容に基づいたキャパシティプランニングの下、適切なリソースを割り当てた環境を構築してください。

<関連記事>

・【IICS】メジャーリリース情報(R43)
 https://www.niandc.co.jp/tech/20230913_39387/

・【IICS】データの品質評価・改善を行ってみた
 https://www.niandc.co.jp/tech/20230803_37152/
 

ページのトップへ