Informatica Cloud Data Integrationの環境をAWS上で構築してみた

どうも!DA部の春田です。

本ブログでは次世代のETLプラットフォーム、Informatica Intelligent Cloud Services(以降、IICS)のチュートリアルを進めていきます。いざ、環境構築!

トライアルアカウントの作成

IICSはトライアルアカウントを用意しているため、お手元のPCから簡単にセットアップが可能です!まずはアカウントを作成しましょう。英語版の画面とドキュメントを参考に進めていきますが、ブラウザの標準言語を変更すれば日本語表示も可能です。

Choose Your Free Cloud Trial and Download | Informatica

登録したアドレスへメールが飛んでくると思うので、そこからアカウントの設定を進めていきます。設定完了後、以下のログイン画面からログインします。

今回扱っていく、IICSのメイン機能であるData Integrationを押下します。

Home画面が表示されればOKです。

環境構築の流れを確認する

Getting started with Informatica Cloud Data Integration

以降は、IICS公式ドキュメントのGetting Startedを参照しながら進めていきます。ざっくりと、大きな流れは以下の通りです。

  1. ランタイム環境を設定する
  2. コネクションを作成する
  3. プロジェクトを設定する

まず手始めに、EC2インスタンス上にSecure Agentと呼ばれるランタイム環境を構築します。Secure Agentとは、オンプレ環境をはじめとするデータの移行元とIICS間でセキュアなコネクションを繋ぎ、タスクを実行させる必須のプログラムです。ランタイム環境には、以下の2つの種類があります。

  1. Informatica Cloud Hosted Agent
    1. IICS内で環境設定済みのランタイム環境です
    2. 自身で環境構築しなくて良い分お手軽に使えますが、一部対応していないコネクタがあったりするので、導入前に以下のサイトで確認しておきましょう
    3. Hosted Agent
  2. Secure Agent Groups
    1. オンプレ環境内にSecure Agentを用意したい場合や、Hosted Agentを使用せず構築したい場合のランタイム環境です
    2. "Group"という名の通り、1つ以上のSecure Agentで構成され、タスクの並列処理や冗長性を考慮した上で構成することができます。
    3. 物理マシンやAWSやAzureなどのクラウドコンピューティングサービス上で構築することも可能です。

本記事では、EC2インスタンス上にSecure AgentをインストールするSecure Agent Groupsを構成します。この構成で分散処理させたい場合は、Data Integration Elasticという機能を追加すれば可能ですが今回はやりません。興味ある方は公式ドキュメントをご参照ください。

Data Integration Elastic Quick Start

Secure Agentの構築が完了したら、データの移行元とIICSをつなぐコネクション(Connection)を作成します。最後に、実際にETL処理を構築していく土台となるプロジェクトを組織します。プロジェクトはフォルダのように、タスクフローやマッピングを階層的に管理することができます。

セットアップの流れは以上です!では、実際にやっていきましょう。

Secure AgentをEC2インスタンス上で構築する

Secure Agent installation on Linux

まずはSecureAgentをインストールするためのEC2インスタンスを立てます。主な対応OSはLinuxとWindowsで、2020年11月現在では、RedHat 64 bitの7系が一番多くのソフトに対応しているようです。他のOS対応状況および、最新情報は下記リンクをご確認ください。(※要Informatica Networkの登録)

PAM for Informatica Intelligent Cloud Services (IICS)

OS Version RedHat 6.x 64bit RedHat 7.x 64bit Ubuntu 16.04 64bit Windows 10 Enterprise 64bit Windows 2012 R2 64bit Windows 2016 Server 64bit
Agent Core
CDI
CAI
B2B GW
CIH
Operational Insights (Secure Agent Monitoring) ×
CDQ
Cloud Profiling
CDI-Elastic × × ×
CMI-Streaming
CMI-Databases × ×

早速、RedHat7系インスタンスを立てていきましょう。7系最新の7.9のAMIを選択してEC2インスタンスを起動します。インスタンスタイプは公式ではm5.xlargeが推奨されていますが、今回はトライアルなのでt3a.xlargeにします。自動割り当てパブリック IPだけ有効にしておき、ストレージは汎用SSDの15GiBでアタッチします。その他の設定は、必要に応じてあとで行います。

※公式: Installing and Configuring Informatica Intelligent Cloud Services in AWS Cloud

インスタンスが立ち上がった後、ファイアウォールの設定をしていきます。EC2ではセキュリティグループの設定ですね。インターネット接続の443とSSH接続の22が開けばOKです。自社のデータセンターと接続させたい場合は、それ用のポート開放が必要です。

さて、いよいよSecure AgentをEC2インスタンスにインストールしていきます。手順は以下の通りです。

※公式: HOW TO: Install Informatica Secure Agent on Linux

  1. IICSのAdministrator(管理者)の画面に入る
  2. Runtime Enviromentsの画面右上にある「Download Secure Agent」を押下
  3. Linux64を選択し、Install Tokenをコピーしてローカルにインストーラーを保存
  4. ローカルに落としたagent64_install_ng_ext.binをEC2インスタンスへ転送
  5. EC2インスタンスへSSH接続し、chmod +x agent64_install_ng_ext.binで実行権限を付与
  6. ./agent64_install_ng_ext.bin -i consoleを実行(※公式ドキュメントのコマンドをコピペしないでください。-iがハイフンになっていないため実行に失敗します。)

以下のようなインタラクションが出力されます。2<Enter><Enter><Enter>でインストール完了です。

[ec2-user@ip-XXX-XX-XX-XX ~]$ ./agent64_install_ng_ext.bin -i console
インストールの準備
インストーラー アーカイブから JRE を抽出しています...
JRE を展開しています...
インストーラー アーカイブからインストール リソースを抽出しています...
このシステム環境のインストーラーを構成しています...

インストーラーを起動しています...

===============================================================================
ロケールを選択...
----------

    1- English
  ->2- 日本語

ロケールの番号を選択: 2   
===============================================================================
Informatica Cloud Secure Agent                            (InstallAnywhere で作成)
-------------------------------------------------------------------------------

コンソール モード インストールの準備中...




===============================================================================
インストール フォルダーを選択
---------------

インストール先を指定してください。

  デフォルトのインストール フォルダー: /home/ec2-user/infaagent

絶対パスを入力するか、ENTER 
   キーを押してデフォルトを使用してください。
      : 



===============================================================================
インストール前の要約
----------

続行するには ENTER キーを押してください。  
情報が間違っている場合は、BACK 
と入力して変更を行ってください
   

製品名:
    Informatica Cloud Secure Agent

インストール フォルダー:
    /home/ec2-user/infaagent

ディスク容量情報 (インストール先): 
    必要なディスク容量:      159,685,817 バイト
    使用可能なディスク容量: 13,359,329,280 バイト

続行するには ENTER キーを押します: 



===============================================================================
インストール中...
----------

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



===============================================================================
インストール完了
--------

Informatica Cloud Secure Agent 
が次の場所に正常にインストールされました。

   /home/ec2-user/infaagent

ENTER キーを押すと、インストーラーが終了します:
[ec2-user@ip-XXX-XX-XX-XX ~]$ ls
agent64_install_ng_ext.bin  infaagent

インストールしたinfaagent/apps/agentcore/に移動し、./infaagent startupでSecure Agentを起動させます。その後、./consoleAgentManager.sh configureTokenで先ほど取得したInstall Tokenを入力すればログイン完了です。./consoleAgentManager.sh isConfiguredtureが表示されれば正しく設定ができているということです。

[ec2-user@ip-XXX-XX-XX-XX ~]$ cd infaagent/apps/agentcore/
[ec2-user@ip-XXX-XX-XX-XX agentcore]$ ./infaagent startup
[ec2-user@ip-XXX-XX-XX-XX agentcore]$ ./consoleAgentManager.sh configureToken <user name> <install token>
JAVA_HOME=/home/ec2-user/infaagent/apps/agentcore/../../jdk/jre
Login with token
ログインに成功しました。
[ec2-user@ip-XXX-XX-XX-XX agentcore]$ ./consoleAgentManager.sh isConfigured
JAVA_HOME=/home/ec2-user/infaagent/apps/agentcore/../../jdk/jre
true

User Nameは今回の場合だとIICS登録時のメールアドレスですね。不明な方はIICSのプロフィールから確認してください。

EC2インスタンスがインターネットに接続できていれば、IICSのRuntime Environmentsに用意したSecure Agentが追加されているはずです。以上でSecure Agentのセットアップは完了です。

コネクションとプロジェクトを設定する

続いて、IICS上でコネクションを設定していきます。コネクションはAdministorator画面にある以下のページです。

今回は一番シンプルにフラットファイルを扱っていきましょう。TypeでFlat Fileを選択すると、詳細のプロパティ設定が表示されます。今回はEC2のhomeディレクトリにあらかじめ作成しておいたsa_sampleを選択します。

画面右上のTest Connectionを押下し、接続の確認が取れたらSaveしましょう。続いて、プロジェクトを作成します。Data IntegrationのExploreを押下し、New Projectをクリックするだけです。

新規作成されたプロジェクトの中には何もありません。今後IICSで作成したものはココに突っ込む形になります。

次のステップ

「さぁ、いよいよIICSの機能を使っていこうじゃないか!」といきたいところなのですが、画面のNewをクリックしてもらえばとわかる通り、IICSは機能が豊富であることが特徴です。

長くなってしまうため、実際のETL処理のチュートリアルは別記事でまとめていきたいと思います。