EC2の手引き

EC2の申し込みが終わったら、インスタンスを立ち上げましょう。
これがなかなか大変だったので、こちらに記述しておきます。

1.操作用のクライアントツールを決める
 Eclipseプラグインや、Firefox用のアドオンなどありますが、今回はAWSが提供しているAWS Management Consoleを利用しました。

2.ログインして、Instancesでインスタンスを選びます。32bit版だと強制的に契約がSmallなどになります。64bit版だと、強制的にえと、上のヤツになります。
初回にkey pairを作るので、プライベートキーをちゃんと取っておきましょう。

3.デフォルトのセキュリティーグループ設定では、SSHが無効なので、セキュリティーグループを作って割り当てます。起動後でも変更可能です。

4.起動したら、インスタンス一覧の該当のサーバを右クリックして、connectを選びます。

5.Puttyで設定するのですが、2で作ったキーはそのままでは使えないので、PuttyGenでPutty用に作りなおします。パスフレーズを設定して、忘れないようにしてください。

6.接続したら、パスフレーズを入れてログイン完了。
※このとき、Access denaideなどが出る場合は、多分OSイメージファイル(AMI)でrootのアクセスを禁止した状態で作れらた物だと思います。使えるように剃る方法がわからないので、別なAMIを選んでください。

7.まずは、rootのパスワードを変更します。
もし

#passwd root
Changing password for user root.
passwd: Authentication token manipulation error

が出たら、

#pwconv

してからもう一度やってみてください。
パスワードが/etc/shadowと/etc/passwdとで整合性が取れなくなるとでるようです。

8.ログインなどの制限
/etc/ssh/sshd_config
を以下のように設定します。パスワードを解析されたら、プライベートキーがなくてもログインされてしまうので、それらを禁止しましょう。

# SSH2のみ許可
#Protocol 2,1
Protocol 2

# ROOTログイン拒否
#PermitRootLogin yes
PermitRootLogin no

# 匿名ユーザ拒否
#PermitEmptyPasswords yes
PermitEmptyPasswords no

# パスワードログイン拒否
#PasswordAuthentication yes
PasswordAuthentication no

最後に反映します

/etc/rc.d/init.d/sshd restrt

固定IPからの接続のみなら、AWS Management Consoleでセキュリティーグループの設定でsource IPを設定しておきましょう。

参考
http://blog.goo.ne.jp/hirohito_japan/e/6917911cd09b3788054d3ee98d7c949b

9.ユーザの作成
useradd ユーザ名
その後、パスワードを変えておきましょう。

10.Apacheのダウンロード

# cd /usr/local/src
# wget http://ftp.kddilabs.jp/infosystems/apache/httpd/httpd-2.2.14.tar.gz

11.Apacheのインストール

# tar xzf httpd-2.2.14.tar.gz
# cd httpd-2.2.14
# ./configure --prefix=/usr/local/**** --enable-proxy=yes --enable-proxy-ajp=yes --enable-proxy-balancer=yes --enable-shared=yes --enable-rewrite=yes --enable-so=yes --enable-ssl=yes --enable-dav=yes
# make
# make install

※今回、GCC、make、opensslもなかったので、以下をインストールしました。

# yum install gcc
# yum install make
# yum install openssl-devel

http://centos.i-recording.net/apache_install.html

12.時間を日本時間にする
よく見たら、時間が米国のものに!
そらそうや。

で、ntp入れて合わせようとしたが、時間が変わらない。
調べてみたら、EC2の場合ntpであわせても反映されないそう。ってか、AWS側でそれぞれあわせてくれるそう。
日本時間にするには、インスタンスのOSのローカル時間を日本設定に変えるだけ。
サーバーのローカルタイムの設定ですが、設定は /etc/localtime ファイルで決まるので、/usr/share/zoneinfo/ 内の任意のファイルを /etc/localtime としてコピーしてやるか、リンクを作ればOK。OSの再起動は必要なく、ローカルタイムの表示が変わります。

13.SFTPでの接続確認
SSHを入れているので、デフォルトでSFTPが立ち上げっています。
切りたい場合は、/etc/ssh/sshd_configファイルの以下をコメントアウト

Subsystem sftp /usr/libexec/openssh/sftp-server

反映も忘れないように

/etc/rc.d/init.d/sshd restrt

次に、それぞれのユーザがアクセス出来るようにします。

# cp -Rf /root/.ssh /home/ユーザ
# chown -Rf ユーザ .ssh

これで公開キーがユーザに配布されました。

Filezillaを利用する場合、パスフレーズに対応していないので、PuttyGenでパスフレーズ無しで鍵をつくって読み込ませる必要があります。

14.Jdkのダウンロード、インストール
wgetで取れないので、ローカルでとってサーバにアップします。
http://java.sun.com/javase/ja/6/download.html
インストールは

# ./jdk-1.6.18.bin
# mv jdk-1.6.18 /usr/local/java/ 

15.Tomcatのダウンロード、インストール

# wget http://www.apache.org/dist/tomcat/tomcat-6/v6.0.24/bin/apache-tomcat-6.0.24.tar.gz
# tar zxvf apache-tomcat-6.0.24.tar.gz
# mv apache-tomcat-6.0.24 /usr/local/****

16.ApacheTomcatの連携
Apache2では、これまでの1系とちがって、mod_proxyによる連携が標準でサポートされています。
それらはビルトインモジュールなので、以下で確認しましょう。

# /usr/local/apache***/bin/httpd -l
Compiled in modules:
 core.c
 mod_authn_file.c
 mod_authn_default.c
 mod_authz_host.c
 mod_authz_groupfile.c
 mod_authz_user.c
 mod_authz_default.c
 mod_auth_basic.c
 mod_include.c
 mod_filter.c
 mod_log_config.c
 mod_env.c
 mod_setenvif.c
 mod_proxy.c
 mod_proxy_connect.c
 mod_proxy_ftp.c
 mod_proxy_http.c
 mod_proxy_ajp.c
 mod_proxy_balancer.c
 prefork.c
 http_core.c
 mod_mime.c

ここで、mod_proxyが入っていれば使える状態になっています。

httpd.confで、以下の設定を追加します。

<Location /nanika/>
    ProxyPass ajp://127.0.0.1:8009/nanika/
</Location>

http://ドメイン/nanika/

など、実際のURLにアクセスしてみましょう!

とりあえず、これで動作しました。