xxxcaqui.log

ツッコミお待ちしています

ELBでNameVirtualHost使ってみた。

AWS ELB(Elastic Load Balancer)を使ってもApacheのNameVirtualHostは機能するのかどうか気になったから、実際に試してみた。

やったこと

EC2を用意する

今回は既に立ち上がっているインスタンスがあったので、それを利用しました。
無ければ新しいEC2インスタンスを立ちあげてください。

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インスタンスで複数のアプリケーションを走らせる場合、ヘルスチェックはどうすればいいんだろう?