2014年9月22日月曜日

AWS CentOS iDempiere Webui iptables なんとかすべての問題をクリアして接続成功!

これまでの流れ:
1:急にiDempiere に興味を持った。
2:iDmpiere を使うためにAWS(Amazon Web Services) アカウントを作成することにした。
3:AWS にEC2 インスタンスを作成し、 CentOS をセットアップすることにした。
4: SSHの設定をして外部からアクセスできる様にしてみた。
5:コマンドラインでは使いにくいのでデスクトップ環境を作ってみた。
6-1:iDempiere に必要なDB (PostgreSQL8.4)をインストールしてみた。が失敗した。
6-2:PostgreSQL9.3をインストールしてみたがまた失敗した。
6-3:EC2でCentOS6.5のインスタンス作成からPostgreSQL9.3のインストールまで完了した。
7:JDKをインストールする。
8:iDempiere で使用するデータスキーマを PostgreSQL へロードした。
9:iDempiere をセットアップした。
10:iDempiere へ Web クライアントからの接続してみた。が、失敗。。。
11:AWS のインスタンスをアップグレードしたら VNC上から http://localhost:8080/webui で接続できた。


もう設定のゴール寸前。あとはすんなりと外部のクライアントPCからWebuiで接続できるはずだ。。。。はずなんだけど。。

WindowsやMacのブラウザから http://<Public DNA>:8080/webui で接続しようとしてもまったく受け付けない。
VNC上からhttp://<Public DNA>:8080/webui としてももちろん駄目、http://localhost:8080/webui では接続出来るのに。。。

AWS の Security group では all trafficを anywhere 接続可能にしても駄目。
Ping は通る。なぜ?

ちなみに AWS Security Group にて Custom ICMP rule にてEcho reply を anywhere にしても何故か外部からの Ping を受け付けない。 All traffic を anywhere にすると通る。
今ひとつ納得できない。
それはともかくAll traffic を anywhere スルーにしているのに iDempiere の Webuiが外部から接続できないのは困った。
動作としてはどう見ても Firewall ではじかれている様に見えるのだが、、

これはかなり悩んだ。
あちこちググると、 AWS の CentOS AMI のFirewall はデフォルトで活きているとのこと。
つまり AWS の Security Group とかぶっているようだ。

Firewallの機能は AWS の Security Groupに集中させた方が良いと思い、CentOS側の iptables は停止する。



/etc/rc.d/init.d/iptables stop

これでクライアントからブラウザで接続してみる。



接続成功!

余談ですが、 SELinux もデフォルトで動作しています。設定で何か問題が起きたらSELinuxのセキュリティ設定も確認しましょう。

しかし、 AWS の Security Group と CentOS の iptables が2重になっているとは。。。とんだ罠だ。

あと、再起動時に iptables が立ち上がらないようおまじない。

chkconfig iptables off

いや、ながかった。

お疲れ様でした。

0 件のコメント:

コメントを投稿