2014年9月10日水曜日

iDempiere: EC2 の CentOS にアクセスしてみた

これまでの流れ:
1:急にiDempiere に興味を持った。
2:iDmpiere を使うためにAWS(Amazon Web Services) アカウントを作成することにした。
3:AWS にEC2 インスタンスを作成し、 CentOS をセットアップすることにした。


で、 SSHの設定をして外部からアクセスできる様にしてみる。

まずAWS に接続し、作成済みのインスタンスを実行する。

サイトにアクセスして、サインアップする
http://aws.amazon.com/jp/




イメージを貼るほどではないが、ちと解せぬ事が。。
サインアップボタンを押すと次の画面では、、、




ここでは「サインイン」。。。
ま、たいした話じゃないけど。。

AWSのいろいろなサービスが表示されるが、昨日作成したEC2のインスタンスを立ち上げるので、EC2を選択

EC2サイトを作ったときに見たような画面が出てくるので、


Volume やら Key Pair やら、前は 0 だったのが 1 に変わっている。
Running Instancesは 前回最後に停止したので 0 になっているはず。これを起動する。

赤枠の Running Instancesを右クリックすると、EC2 のステータス画面に変わる。
ここで アクションから start を選択、 status がpendingとなり、しばらくするとrunningに変わる。



さて、sshだけど、AWS ではPuTTY の例が出ている。
なんでも良いと思うが、これを使ってみよう。
というわけでいままでMac環境だったが、Windows環境へ移動。。
(そのうちMacでもやってみたい)

ちなみに PuTTYの設定は EC2 の Connectボタンを押すと案内が出てくる。



これを押すと 次の画面が、、
Connecting to Your Linux/Unix Instances Using PuTTY


とりあえずダウンロード。
AWS 関係のページから  PuTTY のページに飛ぶ。
バージョンの説明があれこれあるけど、上部の Download をクリック



ダウンロード方法の選択画面に移るので、exe でもFTPでもお好きな方法でダウンロード。
私はそのまま実行形をダウンロード。
PuTTY.exe/PuTTYgen.exe 両方必要です。

PuTTY.exe は SSH本体ですが、PuTTYgen.exe はAWS にて生成したプライベートキー(.pem)をPuTTY.exe が取り扱える形 (.ppk)に変換するプログラムです。






これをWindows環境で起動。

Key pair 変換
PuTTYgen.ext



Load ボタンを押して、EC2 インスタンス作成時に保存しておいたプライベートキーファイル (.pem)を指定します。始めファイルが表示されずにあわてましたが、ファイル種別を Allに指定すればちゃんと表示されます。

次は PuTTY本体起動


Host name には  user name@public DNS を指定します。
public DNS はここです。


CentOS の場合は user name は root となりますので、

root@ec2-xx-xx-xxx-xxx.ap-northeast-1.compute.amazonaws.com
となります。(xx部分はそれぞれ違うかもしれません)
訂正:そもそもxx部分はインスタンス起動毎に変わるようです。つまり一度停止してしまうと次の起動時には別のhost name を入力してあげないといかん用です。
これはめんどくさいが、いやなら固定IPを取得するしかないので当面そのままにしときます。。。

最後に先ほどPuTTY用に変換したプライベートキーの場所を指定します。
ここで Openしてしまう前に一度PuTTYの Categoryの一番上のsession にもどって
設定を Save しておきましょう。(じゃないといちいち指定が必要になる。)



あとは接続するだけ。だけのはず、、、しかしここで問題発生、接続できない。
なぜ?

------------ここからは誤解に基づいた作業 次の線まで読み飛ばした方が良いかも -----------

次のコマンドはコンソールの昨日をローカルに持たせるため?
なんか忘れているのでは?よくよく読みかえすと

「Amazon EC2 CLI ツールをインストールする」とある
% ec2-get-console-output instans_id 

でもそんなコマンドはWindows にはない。さらに optional と書いてあるのに。
あちこちさまよってみると、

CLIツールをダウンロードせよとのこと。なるほどね。
で、ダウンロードして見ると、確かに/binの中にwindows のshell がありました。
で、実行してみると

メッセージ:EC2_HOME is not set

なるほど、環境変数をセットするのね。で、コマンドラインで
set EC2_HOME="XXX"

で、もう一度実行。今度は

メッセージ:JAVA_HOME is not set

ドキュメントを読んでみると、JAVAで動いているのでJAVA環境のセットアップが必要とのこと。なるほどね。で、

JAVAインストールしなおして、コマンドラインで環境変数セット。

set JAVA_HOME="XXX"
でまた懲りずに実行

メッセージ:Required option '-O, --aws-access-key KEY' missing (-h for usage)

なんじゃー!

AWS_ACCESS_KEY がセットされていないときに -O オプションで指定しなければならないらしい、うんちゃらくんちゃら。。

あ、でも他のドキュメント見ると、そもそもec2-get-console-outputは、コンソールメッセージをローカルに表示する為の物らしい。じゃ、今いらないじゃん。

------------------------------意味のない作業に費やした時間を返せ。。------------------------------

そもそもエラーメッセージは connection time out
ping で確認してみると Request timeout 。だめじゃん。

AWS側の Security groupは全部素通しする設定にしていたと思ったのだけど、どうやらそこが勘違いの元だったらしい。で、SSH用の穴をあける。

Security Group -> inbound -> Edit

SSH を選択。portは22が勝手にセットされる。
接続元IPアドレスは anywhere 0.0.0.0 でオールフリー(本当はちゃんと限定すべきですけど、、、今はテストということで。。)




設定したらあっさり接続。初回接続時はキーのキャッシュへの登録確認メッセージが表示
される。断る理由はないので、はい(Y)選択する。





ターミナルが開いてパスワードが要求されるので、 AWS アカウントのパスワードを入力する。(たぶん、ネット上には PuTTYgen で .ppkファイル生成時にパスフレーズ入力するという記述もあったけど、、、)

プロンプト赤塗りの部分はEC2 の Private IPs が表示されているので、もちろん自分が立ち上げたEC2 CentOS だとわかります。



ちっと勘違いで大きく時間ロスしたけど、SSH設定終了。
次はデスクトップ?
いつになったら iDempiere にたどり着くのだろう?

今日もCentOS はシャットダウンして作業終了。
お疲れ様でした。

0 件のコメント:

コメントを投稿