Amazon EC2（ubuntu）にTalend Open Studioをセットアップしてみる

# Amazon EC2（ubuntu）にTalend Open Studioをセットアップしてみる

## 概要

とあるサービスの移行ジョブ一式を最速で作る必要があり、ローカルのmacでtalendを使って移行ジョブをガリガリ作りました。

作るのすごく楽で、最高！…と、そこまでは良かったのですが、全資材がローカルPCにあり、最終的には共有しとかないとメンテが面倒な代物となってしまいました。

適切に引き継ぎできるようAmazon EC2上に構築して、ジョブを移設したいと思います。

**注意：本記事は、うまくいったぜ！という記事ではありません。**

**Linux Desktopを採用したことで片付けなければならない事が割とあったね！という内容の記事です。jobを実行するだけのニーズなら満たせると思います。**

## インストール要件

ちょっと調べた限りだとこんな感じかと。

amazon workspaceだとtalendは動作しないっぽい？→[talend forum](https://www.talendforge.org/forum/viewtopic.php?id=56133)

後から気付きましたが、よく読むと「for BigData」限定の話っぽい。

* JDK1.7.x（**注：talend 6.4系よりjdk1.8.xが標準**）
* Ubuntu 14.4(公式のTalend Data PresentetionのAMIがこのバージョンだった)
    * desktopをインストール
* talend 6.3（2017/03時点のバージョン.このバージョンでジョブ作成していた**注：2017/07/10現在、talend 6.4系がダウンロード可能**）
* t2.smallまたはt2.medium

### FYI

[Talend Open Studio for ESB インストレーションガイド](http://download-mirror1.talend.com/esb/user-guide-download/V552/TalendOpenStudio_ESB_IG_5.5.2_JA.pdf)

実際に入れるのは「for Data Integration」ですが、参考情報です。

## 手順

### 事前準備

EC2インスタンス作成は、記述から割愛します。
「ubuntu/images/hvm-ssd/ubuntu-trusty-14.04-amd64-server-20170619 (ami-8c4055eb)」を使いました。

#### まず接続。。。

```
chmod 400 ST_Talend01.pem
ssh -i "ST_Talend01.pem" ubuntu@ec2-XXX-XXX-XXX-XXX.ap-northeast-1.compute.amazonaws.com
```

```sh
Welcome to Ubuntu 14.04.5 LTS (GNU/Linux 3.13.0-121-generic x86_64)

…（中略）
```

#### パッケージアップデート

```
sudo apt-get update
sudo apt-get -y upgrade
```

#### 日本語環境に変更

ありがちな文字コードやロケール、timezoneの設定などです。
root権限に変えてコマンド実行します。

```
sudo su
apt-get install -y language-pack-ja
update-locale LANG=ja_JP.UTF-8

timedatectl set-timezone Asia/Tokyo
```

確認するために、一度、sshを抜け、再度接続。

以下のようになっていればOK.

```sh
$ locale
LANG=ja_JP.UTF-8
LANGUAGE=
LC_CTYPE="ja_JP.UTF-8"
LC_NUMERIC="ja_JP.UTF-8"
LC_TIME="ja_JP.UTF-8"
LC_COLLATE="ja_JP.UTF-8"
LC_MONETARY="ja_JP.UTF-8"
LC_MESSAGES="ja_JP.UTF-8"
LC_PAPER="ja_JP.UTF-8"
LC_NAME="ja_JP.UTF-8"
LC_ADDRESS="ja_JP.UTF-8"
LC_TELEPHONE="ja_JP.UTF-8"
LC_MEASUREMENT="ja_JP.UTF-8"
LC_IDENTIFICATION="ja_JP.UTF-8"
LC_ALL=
```

```sh
$  timedatectl 
      Local time: 火 2017-07-11 16:40:01 JST
  Universal time: 火 2017-07-11 07:40:01 UTC
        Timezone: Asia/Tokyo (JST, +0900)
     NTP enabled: yes
NTP synchronized: no
 RTC in local TZ: no
      DST active: n/a
```

**追記**

http://uyama.coffee/wp/【決定版】aws-ec2でリモートデスクトップ/
に従い、以下パッケージも追加インストールしました。

```
$ sudo apt-get install ibus-anthy
$ sudo apt-get install scim-anthy
$ sudo apt-get install fcitx-anthy
```

### 1. ubuntu desktopをインストール

[amazon ec2 ubuntu マシンに windows からリモートデスクトップ接続する](http://qiita.com/sugiyasu-qr/items/ea1948a29940bc0d674c)

こちらを参考に、そのまんまの手順を実施しました。

### 2. ubuntu desktopへリモート接続できるようにする

#### 前提条件

セキュリティグループの設定で以下ポートのインバウンドを許可していること。

|種類|ポート|
|---|---|
|RDP|3389|
|VNC|5901|

**セキュリティグループ設定時は、インバウンドを許可するIPを厳密に指定しましょう。**

#### mac

1. サーバ側でvncserverコマンドを実行。
2. 接続パスワードを設定。

```sh
# vncserver

You will require a password to access your desktops.

Password:
Verify:
Password too long - only the first 8 characters will be used
xauth:  file /root/.Xauthority does not exist

New 'ip-XXX-XXX-XXX-XXX:1 (root)' desktop is ip-XXX-XXX-XXX-XXX:1

Creating default startup script /root/.vnc/xstartup
Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/ip-XXX-XXX-XXX-XXX:1.log
```

3. vncserverの設定を変える。

```
rm ~/.vnc/xstartup
ln -s /etc/X11/Xsession ~/.vnc/xstartup
```

画面共有.appを使い、**ホスト名:5901**で接続。

こんな感じです。

![mac_to_ubuntu.png](https://qiita-image-store.s3.amazonaws.com/0/97816/5d353939-cbb6-cd6c-8b2e-55628608941e.png)

##### FYI

一部、以下ページを参照しました。

[AWS EC2 の Ubuntu に GUI を入れてブラウザ操作を自動化する話](http://tushuhei.hatenadiary.jp/entry/20131009/1381302187)

#### windows

```
apt-get install xrdp
 * Starting Remote Desktop Protocol server 

apt-get install xfce4
```

```
sudo vim /etc/xrdp/xrdp.ini

[xrdp1]
name=sesman-Xvnc
lib=libvnc.so
username=ask
password=ask
ip=127.0.0.1
#port=-1
port=ask-1
```

windows のリモートデスクトップで接続確認できればOK

※再起動後にリモート接続できていない。
RDP, vnc両方とも。

https://futuremix.org/2009/01/linux-vnc-server-install
vncserverの自動起動を設定


##### トラブルシューティング

**Q. 接続できたけど、何も表示されない...**

Xubuntu 14.04 を再起動したら、デスクトップにアイコンが表示されず、右クリックもできず、壁紙も設定したものではなくデフォルトのものから変更できなくなっていました（設定しても反映されない）。

最初は、設定 > デスクトップ > メニュー でデスクトップにアイコンを表示しない設定にしてしまったのかと思いましたが、そういうわけでもないようです。再起動しても直らず、おそらくデスクトップの機能を提供するサービスが立ち上がってなさそうです。

解決策としては、 terminal で

```
$ xfdesktop
```

でデスクトップが復活します。

### 3. javaをインストール

```
sudo add-apt-repository ppa:webupd8team/java
sudo apt update
sudo apt install oracle-java8-installer
```

##### 失敗例

**jdk7を入れたが、talend 6.4系からjava8が標準になっていた**

```
sudo apt-get install openjdk-7-jdk
```

確認。

```
# java -version
java version "1.7.0_131"
OpenJDK Runtime Environment (IcedTea 2.6.9) (7u131-2.6.9-0ubuntu0.14.04.2)
OpenJDK 64-Bit Server VM (build 24.131-b00, mixed mode)
```

### 4. talendをインストール

* linuxデスクトップにリモート接続し、talendサイトより「Talend Open Studio for BigData 20170623_1246-V6.4.1」をダウンロード

「Open Studio for Data Integration」

* 「/usr/local/talend」フォルダを作成し、同フォルダに解凍。

* TOS_DI-linux-gtk-x86_64 を実行。

ここまででtalendの起動はできました。

#### 詰めが甘かったと反省

特に拘りなくubuntu + xfce4を選んだのですが、ここまで突っ走り過ぎました。。。
色々と不都合があり、さぁどうしよう状態に。

##### 自動起動の設定が足りていない

* vncserver
* xfdesktop

##### macの日本語キーボードで、日本語入力がうまくいかない

…macだけでいい感じにしても、後任者は使えるのだろうか…

##### 画面解像度を「1440×900」に変えたいが、できない

<img width="250" alt="disp_config.png" src="https://qiita-image-store.s3.amazonaws.com/0/97816/0bddf61c-2368-fa1e-6fb4-3937d532de9f.png">
<img width="200" alt="disp_config_err.png" src="https://qiita-image-store.s3.amazonaws.com/0/97816/a3d4df63-3cc9-78fa-f318-265298b32396.png">

xfce特有の問題にぶちあたり、デスクトップ設定に関しては、見直した方が良さそうな結果に。

一見わかりづらいですが、talendでジョブを組むうえで画面領域が小さすぎるのは、かなり致命的。

* mac

<img width="1280" alt="mac_talend2.png" src="https://qiita-image-store.s3.amazonaws.com/0/97816/dc792358-b251-8725-513b-dc8eb047818f.png">

* ubuntu + xfce

<img width="1026" alt="talend_1280_1080.png" src="https://qiita-image-store.s3.amazonaws.com/0/97816/d88bcf33-1647-7fc7-e8b4-5a3451607600.png">
  

[初期処理でモニターの解像度を指定する](http://blog.goo.ne.jp/nobotta50/e/ab6fa26e63b531a371f9b8e30f77b951)

このあたりを対処すればOKなのかもしれませんが、1日で完結させるつもりだったので一旦時間切れ。

もう一声！をつぶせばボチボチ使い物にはなるのでしょうが、私の場合は「他の方が使える」という目的から外れてた…と作業中に気づいてしまいました。

windowsベースのamazon workspaceに立て直そうかな、と思います。