本記事の構成はELBのIPアドレスが変更になった場合に問題が発生する可能性があるので
対策しておく必要があります。
HAProxyをDNS名で指定したバックエンドのIPアドレスが変わったらリロードするの記事が
参考になるかもしれません。
直接ではありませんが、Cloud Design Pattern(CDP)の「Multi Load Balancerパターン」に関する記事です。
このパターンの「利点」に下記のような複数SSL(HTTPS)に関する記載がありますが、ワイルドカード証明書を
利用する場合は、一つのELBで複数のSSL(HTTPS)サイトをまとめることも可能です。
同一のEC2で複数のSSL(HTTPS)を利用する場合も、SSL(HTTPS)ごとに
ELBを用意することで可能となる。
図にすると下記のようになります。
上図は下記のようにDNS名ごとに別々のEC2に振り分けるところまで考えています。
- https://web.suz-lab.com → elb-web (ELB) → web-a/b (EC2)
- https://admin.suz-lab.com → elb-admin (ELB) → admin-a/b (EC2)
ELBにはHostヘッダで振り分ける機能は無いので、ELB直下にはHAProxyサーバを用意し、
HAProxyがHostヘッダを確認後各EC2に振り分けるようにしています。
実際のHAProxyの設定ファイル(/etc/haproxy/haproxy.cfg)は次の通りです。
frontend proxy bind 0.0.0.0:80 acl host_web hdr(host) -i web.suz-lab.com acl host_admin hdr(host) -i admin.suz-lab.com use_backend web if host_web use_backend admin if host_admin default_backend admin backend web balance leastconn server elb-web internal-elb-web...com:80 check port 80 backend admin balance leastconn server elb-admin internal-elb-admin...com:80 check port 80
あとはHAProxyでログを取得して、FluentdでS3に送って、そこからGlacierに…