ELBでNameVirtualHost使ってみた。
AWS ELB(Elastic Load Balancer)を使ってもApacheのNameVirtualHostは機能するのかどうか気になったから、実際に試してみた。
やったこと
ELBを立ち上げてEC2と関連付ける
ELBはManagement Console上部からは選べないので、EC2 Management Consoleの左下の方にあるLoad Balancerというリンクから選べます。
ELB配下のEC2インスタンスでNameVirtualHostの設定をする
NameVirtualHost *:80 <VirtualHost *:80> DocumentRoot /var/www/test1 ServerName test1.example.com </VirtualHost> <VirtualHost *:80> DocumentRoot /var/www/test2 ServerName test2.example.com </VirtualHost>
/var/www/test1, /var/www/test2 のディレクトリにindex.htmlを置きます。
後でアクセスした時に違いがわかるよう、中身は違うものにしておきます。
<html> <body> <h1>test1.example.com</h1> </body> </html>
<html> <body> <h1>test2.example.com</h1> </body> </html>
NameVirtualHostしたいドメインからELBのDNS NameにCNAMEを張る
ELBへはCNAMEで名前解決します。
AでIPを指定してはいけません。
ブラウザから確認する
NameVirtualHostに設定したドメインをブラウザから叩いてみる。
それぞれのURLで別々のページが表示されれば成功です。
結論
ELBを通してもNameVirtualHostは正常に機能する。
なんか、やっつけエントリになってしまいましたが、ググってもあまりこの手の情報が出て来なかったので、メモとして。
追記
ひとつのEC2インスタンスで複数のアプリケーションを走らせる場合、ヘルスチェックはどうすればいいんだろう?