EC2上にJavaアプリの動作環境を構築。ベースのOSにはAmazonが公式に提供しているFedora8のAMIを使用する。
導入方法自体は、このCodeZineのシリーズが丁寧で参考になる。
流行りのクラウドサービスを操ってみよう!Amazon EC2/S3環境構築のすべて:CodeZine(コードジン)
Java+Tomcat+Apache+OracleXE環境を構築。実はOracleが、OracleXEをプリインストールしたOracle Enterprise LinuxのAMIを公開していて、最初はそれをベースに環境構築していたけど、
Amazon EC2 running Windows Server or SQL Server - 101仕事日記 - tn101 - builder
インストールされてるOracleXEがUniversal版ではなくWestern European版らしくシングルバイトしか扱えないという残念な結果になったので、あえなく断念…。
で、Fedora上にOracleを入れようと、OracleXEをOTNからダウンロードしWinSCPでEC2上のFedoraにアップロードしようとしたが、2時間以上かかる…。とてもやってられないので、FedoraにVNC入れてFirefoxを起動し直接ダウンロードする。こうするとかなり速くダウンロードできる。(wgetとかだとOTNの認証を受けれずダウンロードできなかったのでVNCを入れた。wgetもオプションで認証情報とか付加できるかも。)
で、一通りインストールしたところで、その段階のOSイメージをAMIに落としS3に保存。
ここまでは問題なかったが、再起動してSSHで接続しようとするとConnection timed outになる。AWS Management Console上での状態はrunningになってるのに。そこで、AWS Management ConsoleのOutputボタンを押してSystemLogを見る。そこには、
... Unable to load SELinux Policy. Machine is in enforcing mode. Halting now. Kernel panic - not syncing: Attempted to kill init!
Kernel panicですか!orz...
どうもVNCをインストールする際に入れたX Window SystemのためSELinuxのポリシーがインストールされ有効になるらしい…。
Amazon EC2でX Window (VNC) | Kirie.net Blog
さて、Kernel panicが発生してSSH接続できない状態で復旧できるのか?