セキュアエージェントの一時フォルダの場所を変更する
データアナリティクス事業本部の鈴木です。
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
以外のディレクトリに出力する際は、再起動時に削除されない可能性があり、注意が必要そうでした。
最後に
今回はランタイム環境の設定で、EC2内部で使う一時フォルダの場所を変更する方法を試してみました。参考になりましたら幸いです。