EC2には一つのIPアドレスしか割り振られないので、
基本的に複数ドメインのHTTPS(SSL)ができません。

ですがELBを利用すると、1つのEC2で
複数ドメインのHTTPS(SSL)利用できます。

具体的な方法は、Using ELB to Serve Multiple Domains Over SSL on EC2 for Giggles and Unicorns
紹介されています。

ただし、上記記事は、ELBの”SSL Termination”を利用で紹介した
ELBの”SSL Termination”機能がなかったときのものなので、今なら、もっとスマートに実現出来るはずです。

ELBの”SSL Termination”を利用した方法は下記となります。

(1) SSLを設定したELBを用意する。

(2) (1)とは別のSSLを設定したELBを用意する。

(3) (1)のホスト名と(2)のホスト名をバーチャルドメインとして設定をしたEC2(httpd)を用意する。

(4) EC2を(1)と(2)のELBに登録する。

このやり方なら、SSLの処理は各ELBで行い、実際のコンテンツは、
一つのEC2で公開する形となり、表記を実現することができます。

ただし、ここで一つ問題があります。
“Manegement Console”では1つのEC2を複数のELBに登録することができません。
実際に(4)を実施するには、APIベースのツールを利用する必要があります。

今回は”Elastic Load Balancing API Tools“を(Windowsで)使ってみました。

使い方は簡単で、”P:commonsbinelb”に一式展開してあるとすると、
環境変数を下記のように設定すれば

> set JAVA_HOME=P:windowssbinjava
> set AWS_ELB_HOME=P:commonsbinelb
> set PATH=%PATH%;%JAVA_HOME%bin;%AWS_ELB_HOME%bin;

以下のコマンドでELB(my-load-balancer)に
EC2(i-xxxxxxxx)を追加することができます。

> elb-register-instances-with-lb my-load-balancer ^
? -I AAAAAAAA ^
? -S SSSSSSSS ^
? –region ap-southeast-1 ^
? –instances i-xxxxxxxx
※ “-I”はアクセスキー、”-S”はシークレットキー。

この方法で、(1)、(2)のELBに対して、同一のEC2を登録すればOKです。

“Manegement Console”でも、
二つのELBに同一のEC2が登録されていることが確認できます。

こちらの記事はなかの人(suz-lab)監修のもと掲載しています。
元記事は、こちら