今回設定した案件。
の、ちょっと改造版。
NFSサーバのコンテンツエリアもapacheのconfigに書いて、NFSサーバとWebサーバ兼用とした。
NFSサーバをロードバランサから外すと、NFSサーバのトラフィックにすこーし余裕が出来る。
セットアップしたWebサーバのインスタンスをAMI化しておくと、インスタンスを起動してロードバランサに加えるだけでスケーリングが可能。(NFSサーバを止めると再設定が必要ですが…)
NFSサーバ設定
コンテンツ用 EBS Volume 作成してNFSサーバ用インスタンスにに attach する。
/etc/fstab に書くと起動できなかったりするので、automount でマウントするようにする。
cat /etc/auto.misc ebs-www -fstype=ext4 :/dev/sdf
使いやすいようにシンボリックリンクを作成しておく。
ls -l /media/ ebs-www -> /misc/ebs-www/
NFSの設定(全てのホストからNFSが利用可能な設定にする。アクセス制限はセキュリティグループの設定のみ。)
cat /etc/exports /media/ebs-www *(sync,rw,no_root_squash)
Webサーバ設定
NFSサーバをautomountする。(このNFSサーバのホスト名はNFSサーバのPrivate DNSが変わるたびに書き換えないといけない。)
cat /etc/auto.misc ebs-www -fstype=nfs,rw ip-10-XXX-XXX-XXX.ap-northeast-1.compute.internal:/media/ebs-www
ここまでセットアップした状態でスケーリング用AMIを作る。snapshotから作成するとうまく起動しないことがあったので、止めてからAMIを作ると確実。
apacheの設定は、コンテンツのpath(/media/ebs-www)が同じなのでNFS、Webとも変わらない。
本番環境ではWebサーバのインスタンスにNFSサーバの設定もコメントで書いておき、簡単に切り替えられるようにした。
管理用インスタンスからec2コマンドでNFSサーバを起動して、NFSサーバのPrivateDNSを取得。UserData指定してWebサーバを起動するともっとスマートに出来るよな。(検証が大変なので今回は見送られました。。)
AWSクラウドデザインパターン(beta)
このページすてきすぎる。ちょっと前にみたよりもコンテンツの量が増えててすごいなぁ。