AWSクラウドデザインパターン

今回設定した案件。

NFS Sharingパターン(共有コンテンツの利用)

の、ちょっと改造版。
NFSサーバのコンテンツエリアもapacheのconfigに書いて、NFSサーバとWebサーバ兼用とした。


AWS図.001

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)

このページすてきすぎる。ちょっと前にみたよりもコンテンツの量が増えててすごいなぁ。