share facebook facebook twitter menu hatena pocket slack

2011.01.27 THU

ELBを利用して1つのEC2で複数ドメインのHTTPS(SSL)

鈴木 宏康

WRITTEN BY 鈴木 宏康

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)監修のもと掲載しています。
元記事は、こちら

鈴木 宏康

鈴木 宏康

愛知県生まれ。東京工業大学大学院修士課程修了。在学時より、ベンチャー企業でインターネットに関する業務に携わり、現在はクラウド(主にAmazon Web Services)上での開発・運用を軸とした事業の、業務の中心として活躍。

cloudpack

cloudpackは、Amazon EC2やAmazon S3をはじめとするAWSの各種プロダクトを利用する際の、導入・設計から運用保守を含んだフルマネージドのサービスを提供し、バックアップや24時間365日の監視/障害対応、技術的な問い合わせに対するサポートなどを行っております。
AWS上のインフラ構築およびAWSを活用したシステム開発など、案件のご相談はcloudpack.jpよりご連絡ください。