TomcatのJavaアプリ(VM環境)をTransformation Advisorを使ってモダナイズ(事前準備編)

# 1.はじめに
この投稿は、「　[TomcatのJavaアプリ(VM環境)をTransformation Advisorを使ってモダナイズする](https://qiita.com/daihiraoka/items/bc82f34cc89e0321b0d5)　」　の内容を実際に、試したい方向けに必要な環境構築の手順について記載します。

今回、必要な環境は、以下の２つにります。

- TomcatのJavaアプリの分析を行うTransformation Advisor
- 分析対象のTomcat環境

２つの環境の導入を行った後に、「　[TomcatのJavaアプリ(VM環境)をTransformation Advisorを使ってモダナイズする](https://qiita.com/daihiraoka/items/bc82f34cc89e0321b0d5)　」の流れにそって、手順をすすめると、TomcatのJavaアプリ(VM環境)をTransformation Advisorを使ったモダナイズを体感していただけます。

# 2. Transformation Advisor の インストール
Transformation Advisorの導入手順は、Qiita記事 「[Transformation Advisor Localをインストールした時の手順メモ](https://qiita.com/daihiraoka/items/c5af4ae5a7c9be2dce53) 」を使って導入してください。

# 3. 分析対象のTomcat環境のインストール
今回は2020/11/30でEOLを迎えるCentOS6をつかって構築しました。

## 分析対象の構成
 - OS: CentOS6(x86_64)の最小構成インストール
 - JDK: IBM Java 7　(java-x86_64-71)
 - Tomcatのバージョン: 6.0.53

作業前の前提条件: 名前解決できること DNS等で名前解決できない場合は、 /etc/hostsにホスト名 (例: c603 )を記入してください。

```shell
# cat /etc/hosts
127.0.0.1  c603 localhost localhost.localdomain localhost4 localhost4.localdomain4
```

## IBM Java SDK のダウンロード
作業環境：ローカルPC

ローカルPCのブラウザにて, 「　[IBM SDK, Java Technology Edition, Version 7 Release 1 ](https://www.ibm.com/support/pages/java-sdk-downloads-version-71)」　にアクセスし、

そして、Linux on AMD64/EMT64Tの下記のパッケージをダウンロード
Installable package (InstallAnywhere as root)
(File name: ibm-java-x86_64-sdk-7.1-4.75.bin, Size: 129MB)

## IBM Java SDK のインストール
作業環境：centOS
作業ユーザー: root

事前にローカルPCにダウンロードした、IBM Java SDK のバイナリ「ibm-java-x86_64-sdk-7.1-4.75.bin」をCentOSにアップロードします。

そして、バイナリ「ibm-java-x86_64-sdk-7.1-4.75.bin」　を実行してIBM Java SDKのインストールを行います。

```shell
bash ./ibm-java-x86_64-sdk-7.1-4.75.bin
```

インストールが完了すると　「 /opt/ibm/java-x86_64-71 」のPATHにIBM Java SDKがインストールされます。

## Tomcatのインストール
モダナイズを体感するためには、古めのTomcatをインストールする必要があるので、今回はTomcat6をインストールします。

まずは、Tomcat 6.0.53のバイナリを/usr/localにダウンロードし、ダウンロードしたapache-tomcat-6.0.53.zipを解凍します。

```shell

# curl -L  https://archive.apache.org/dist/tomcat/tomcat-6/v6.0.53/bin/apache-tomcat-6.0.53.zip -o /usr/local/apache-tomcat-6.0.53.zip
# cd /usr/local
# ls
apache-tomcat-6.0.53.zip  bin  etc  games  include  lib  lib64  libexec  sbin  share  src
# unzip apache-tomcat-6.0.53.zip
Archive:  apache-tomcat-6.0.53.zip
# pwd
/usr/local
[root@c603 local]# ls
apache-tomcat-6.0.53      bin  games    lib    libexec  share
apache-tomcat-6.0.53.zip  etc  include  lib64  sbin     src
# cd apache-tomcat-6.0.53
# ls
bin  conf  lib  LICENSE  logs  NOTICE  RELEASE-NOTES  RUNNING.txt  temp  webapps
```

次に、Tomcat起動時に、JAVA_HOMEのパスを通すために Tomcatのsetenv.shをJAVA_HOMEの設定を行います。

```shell

# cat <<EOF > /usr/local/apache-tomcat-6.0.53/bin/setenv.sh
JAVA_HOME=/opt/ibm/java-x86_64-71
EOF
```

そして、Tomcatのbinフォルダのスクリプトに実行権限を付与します。

```shell

# cd /usr/local/apache-tomcat-6.0.53/bin/
# ls
bootstrap.jar                 cpappend.bat      setenv.sh        tomcat-native.tar.gz
catalina.bat                  daemon.sh         shutdown.bat     tool-wrapper.bat
catalina.sh                   digest.bat        shutdown.sh      tool-wrapper.sh
catalina-tasks.xml            digest.sh         startup.bat      version.bat
commons-daemon.jar            setclasspath.bat  startup.sh       version.sh
commons-daemon-native.tar.gz  setclasspath.sh   tomcat-juli.jar
# chmod +x *.sh
```

これで準備が整いました。 startup.shスクリプトを実行して、Tomcatを起動します。

```shell
# bash /usr/local/apache-tomcat-6.0.53/bin/startup.sh
Using CATALINA_BASE:   /usr/local/apache-tomcat-6.0.53
Using CATALINA_HOME:   /usr/local/apache-tomcat-6.0.53
Using CATALINA_TMPDIR: /usr/local/apache-tomcat-6.0.53/temp
Using JRE_HOME:        /opt/ibm/java-x86_64-71
Using CLASSPATH:       /usr/local/apache-tomcat-6.0.53/bin/bootstrap.jar
```

正常にTomcatが起動できているか確認するためには、ログを確認します。
「INFO: Server startup in 480 ms」と表示されれば正常起動しています。

```shell
# tail -100f /usr/local/apache-tomcat-6.0.53/logs/catalina.out

INFO: Deploying web application directory manager
Nov 30, 2020 9:35:30 AM org.apache.coyote.http11.Http11Protocol start
INFO: Starting Coyote HTTP/1.1 on http-8080
Nov 30, 2020 9:35:30 AM org.apache.jk.common.ChannelSocket init
INFO: JK: ajp13 listening on /0.0.0.0:8009
Nov 30, 2020 9:35:30 AM org.apache.jk.server.JkMain start
INFO: Jk running ID=0 time=0/12  config=null
Nov 30, 2020 9:35:30 AM org.apache.catalina.startup.Catalina start
INFO: Server startup in 480 ms
```

Tomcatは8080番ポートを使って起動しますが、CentOS6のデフォルトでは、8080は
ファイアーウォール(iptables)で閉じているので、外部からアクセスできません。
今回は、便宜上、iptablesを停止して動作確認します。

```shell
# service iptables stop
iptables: Setting chains to policy ACCEPT: filter          [  OK  ]
iptables: Flushing firewall rules:                         [  OK  ]
iptables: Unloading modules:                               [  OK  ]
```

最後に、ローカルPCからブラウザで、CentOSのIPアドレスの8080番ポートにあくせすすると（例： http://192.168.26.22:8080 )　Tomcatのサンプルページが表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/209170/67e917b1-a696-031c-44c4-85e4041b43a1.png)

# 4.最後に
これで、ソースホスト（分析対象）のTomcatの環境　と　Tomcat環境を分析するTransformation Advisorの導入が終了しました。この後は、「　[TomcatのJavaアプリ(VM環境)をTransformation Advisorを使ってモダナイズする](https://qiita.com/daihiraoka/items/bc82f34cc89e0321b0d5)　」の投稿を使って、ぜひ、Transformation Advisorを使ったTomcatのモダナイズを体感してください！