目次
ごあいさつ
こんばんは。
今回は、EC2を使ったクライアント認証付WEBサイトにて
ELBを使うためのあれこれを書いていきます。
結構複雑なお話なので、気張っていきましょう!
その②って……
その②では、その①で作ったEC2で作ったクライアント認証付のテスト用サイトを、
クライアント認証の機能をそのままでELBにアタッチさせる方法をご紹介いたします。
まずクライアント認証の設定がわからん! という方は、その①をご確認ください。
ELBっていうけれど……
ELBのうちどれを使うの?! と、思われた方もいらっしゃることでしょう。
まずはNLBでの設定方法、それから、ALBのお話をします。
しかもおまけにcloudfrontの話付き!
ということで、さっそくNLBから!↓
NLBで使うためのあれこれ
ターゲットグループを作成
ELBを使うには、ターゲットグループが必要です。
①ターゲットタイプは「インスタンス」
②プロトコルは「TCP」
③ポートは「443」
④ヘルスチェックは「TCP」
⑤ターゲットはその①で作ったクライアント認証付のサイトが乗ったインスタンス
以上の設定で作成しましょう。
NLBを作成
ターゲットグループができたら、NLBを作成しましょう。
①リスナーは「TCP:443」
②ターゲットグループは↑で作成したもの
以上。あとはデフォルトでOKです。
できあがったものがこちら!
DNS設定
さくっとDNSを設定しましょう。
※設定しないで↑のNLBのDNS名から直でアクセスしてもうまくいかないはず(多分……)
Route53のエイリアスレコードでうにゃうにゃやりましょう!
接続して確認
うおおおおおおお(画像じゃできてるのかわからんね)
できてます!
NLBにアタッチしたEC2でクライアント認証を使うことができました。
ALBで使うためのあれこれ
ALBでは、クライアント認証が使えません!
……というか、実は先ほどまでのNLBでの設定もほぼ裏技のようなかんじで、
公式的にはELBはクライアント認証使えません ということになっています。
ちなみに、CLBでもNLBと同様の方法でクライアント認証が使えます。
cloudfrontで使うためのあれこれ
ほなNLB +cloudfrontとかで使えたりするのかしらん? と思ったり思わなかったりしたのですが……↓
カスタムオリジンの場合のリクエストおよびレスポンスの動作 - Amazon CloudFront
クライアント側の SSL 認証
CloudFront はクライアント側の SSL 証明書を使用したクライアント認証をサポートしていません。オリジンがクライアント側証明書をリクエストした場合、CloudFront はリクエストを削除します。
……cloudfrontでも使えません!
まとめ
ロードバランサー的な何某を使いつつクライアント認証を使用するには、
今のところNLBかCLBを使う方法しか手段がなさそうです。
ALBとNLBでは負荷分散の仕組みが違うので、「どうしてもALBが使いたい!」というときは
クライアント認証をあきらめるしかなさそうですね……。
ほかにもこんな方法があるよ! というものをご存じの方はコメント下さい!
たまごのひび割れから身が見え始めたエンジニア。