okochangの馬鹿でありがとう

ふらふら適当に世間を生きる日々でございます

VirtualHostとELBとCloudFront

先日投稿したCDPのAdvent Calendarで今年のブログは終わりかなと思っていたのですが、先日会社の後輩(営業担当)が名前ベースのVirtualHost、ELB、CloudFrontの構成で悩んでいたっぽいので構成をまとめてから今年の投稿を終えようかなと思いました。

CloudFront導入前の構成

導入前の構成は以下の通りとなっています。
例ではELBが1台構成ですが、VirtualHostで設定されている各ホストにhttpsで通信したい場合はELBが複数だったりすると思います。

構成図
f:id:okochang:20121215153051p:plain
VirtualHostの設定例

NameVirtualHost *:80
<VirtualHost *:80>
    DocumentRoot /var/www/hoge
    ServerName hoge.okochang.com
    Options FollowSymLinks
    ErrorLog logs/hoge-error_log
    CustomLog logs/hoge-access_log common
</VirtualHost>
<VirtualHost *:80>
    DocumentRoot /var/www/fuga
    ServerName fuga.okochang.com
    Options FollowSymLinks
    ErrorLog logs/fuga-error_log
    CustomLog logs/fuga-access_log common
</VirtualHost>
<VirtualHost *:80>
    DocumentRoot /var/www/foo
    ServerName foo.okochang.co.jp
    Options FollowSymLinks
    ErrorLog logs/foo-error_log
    CustomLog logs/foo-access_log common
</VirtualHost>

CloudFront導入後の構成例

名前ベースのVirtualHostを正しく動作させるためにCloudFrontをVirtualHost分用意します。
CloudFrontのoriginにはドVirtualHostに設定したServerNameを指定するようにして下さい。
※サーバ側のVirtualHostの設定は特に変更していません。
構成図
f:id:okochang:20121215153059p:plain
CloudFrontの設定

abcdefghijklmn.cloudfront.net
Alternate Domain Names(CNAMEs): cdn1.okochang.com
Origin Domain Name:  hoge.okochang.com

bcdefghijklmno.cloudfront.net
Alternate Domain Names(CNAMEs): cdn2.okochang.com
Origin Domain Name:  fuga.okochang.com

cdefghijklmnop.cloudfront.net
Alternate Domain Names(CNAMEs): cdn1.okochang.co.jp
Origin Domain Name:  foo.okochang.co.jp

こんな設定にすることでVirtualHostで分けた通りに、CloudFrontでコンテンツを配信出来ると思います。

まとめ

今年もお世話になりました、また来年もよろしくお願いします。
それではみなさま良いお年を!

Amazon Web Services ガイドブック クラウドでWebサービスを作ろう!

Amazon Web Services ガイドブック クラウドでWebサービスを作ろう!

Amazon Web Services クラウドデザインパターン 設計ガイド

Amazon Web Services クラウドデザインパターン 設計ガイド