セキュアエージェントの一時フォルダの場所を変更する

2022.10.03

データアナリティクス事業本部の鈴木です。

Informatica Intelligent Cloud Services(以降、IICS)のInformatica Cloud Data Integration(以降、CDI)で、ローカルの一時フォルダの場所を変更してみたのでご共有します。

やりたいこと

EC2にSecureAgentをインストールして、CDIの機能を利用していますが、EC2内部で使う一時フォルダ(S3コネクタなどを使うとでできるものでキャッシュファイルではない方)の場所を変更したいです。

調べたところ、以下のナレッジに方法が記載されていたので試してみました。

HOW TO: change the temp folder location for the tasks running on an Informatica Cloud Agent.

ランタイム環境のData Integration Serverの設定に変数を追加することで設定ができるようでした。

デフォルトでは、タスクはシステムの一時フォルダを使用しますが、この設定を追加して、動作が変わるか確認しました。

構成とデータについて

構成は以下のようにしました。

構成

この構成は以下の記事で検証したものです。処理の内容自体はこの記事の検証したいこととは関係がないので、S3からファイルを読み込んでるんだな〜くらいにご認識ください。

以下に記載するように、このマッピングを手動実行すると、私の環境では/tmpに一時フォルダができました。

環境

  • ubuntu 16.04.7 LTS(EC2インスタンス)
  • Data Integration Server: 63.0.11

やってみる

1. デフォルト設定での動作を確認する

まず設定を追加しない状態で動かしてみて、どこに一時フォルダができるか確認しました。

上記記事のマッピングを手動で動かしてみます。

マッピングの実行

EC2に接続してみて、/tmpを観察すると、InfaS3Staging{タイムスタンプ}_0のような命名のファイルが作成されることが分かりました。ナレッジにも、S3コネクタ用にステージングファイルが作成される記載があるので、これで間違いなさそうです。

デフォルト設定時の一時フォルダ

このファイルが、設定を追加されることで、指定の場所に作成されるようになるか確認します。

2. テンポラリの場所を変更する

管理者 > ランタイム環境 で設定したい環境を選択します。

システム構成の詳細Data Integration Serverを選択し、編集を押して変数を設定します。

編集画面の開き方

今回はJVMOption2までが使用済みだったので、JVMOption3-Djava.io.tmpdir=/tmp/testと、/tmp/testという適当なディレクトリを指定しました。

変数の設定

保存するとセキュアエージェントのエージェントサービス一式が再起動したので、それを待ちます。構成によってはダウンタイムが発生するため注意が必要でした。

次に、EC2にログインし、/tmp/testディレクトリを作成しておきます。(本番への反映時は先に作った方がよさそうです。)

cd /tmp
mkdir test
# $セキュアエージェントが使うユーザーは適切なものに置き換えてください
sudo chown $セキュアエージェントが使うユーザー:$セキュアエージェントが使うユーザー /tmp/test

エージェントサービスの再起動後、先ほどと同じようにマッピングタスクを実行してみました。

すると、/tmp/testに先ほどのファイルが作成されることを確認できました。

設定追加後の一時フォルダ

※検証の都合で、タイムスタンプは設定前の例より古いですが、気にしないでください。

ちなみに、指定したディレクトリにアクセス権限を設定しておかないと、実行時に当たり前ですがエラーになります。

エラーの出力

なお、/tmp以外のディレクトリに出力する際は、再起動時に削除されない可能性があり、注意が必要そうでした。

FAQ: Which files can be backed up and deleted from the agent installation directory to free up space ?

最後に

今回はランタイム環境の設定で、EC2内部で使う一時フォルダの場所を変更する方法を試してみました。参考になりましたら幸いです。