続 カッコの付け方

AWSを始めとしたクラウドコンピューティング全般と、唯一神emacsにおける()の付け方についてだらだら書きます

GCEでHTTPS負荷分散 SSL Termination

技術的に不可能だろうと思っていましたが、予告通りHTTPS負荷分散がGCEでも実現可能となりました。
これにより、SSL TerminationがGCEでも可能となりました!

HTTP負荷分散との変更点

GCEのロードバランサは2つあります
- ネットワーク負荷分散
- HTTP負荷分散
いずれもAWS - ELBに比べて暖気不要などアドバンテージがあるのは変わりませんが、本機能はHTTP負荷分散のみです。
Developers Consoleから変更可能です。

簡単ですが、一旦HTTP負荷分散として設定したものを、HTTPSへ変更する手順を記す。

HTTPSでリクエストを受ける

f:id:iga-ninja:20150712183827p:plain

SSL証明書をアップロード

f:id:iga-ninja:20150712183923p:plain

f:id:iga-ninja:20150712183932p:plain

アプリケーション側の考慮

AWSのELBと同じく、ロードバランサ側でSSLを剥がしてしまうので、バックエンドのWebサーバ側にとっては ブラウザからHTTPSかHTTPの判断がつきません。が、そもそも1つのIPアドレスで80 & 443を両方Listen出来ないので、この考慮は必要ないかもしれません。

HTTPヘッダ

ここから書くことはドキュメンテーションにも記載がない内容となります。今後変更される可能性は極めて高いと思います!

ダサくて嫌だけど、おなじみphpinfo()でのぞきます。#もっとイケてるカッコイイ方法を探そう

f:id:iga-ninja:20150712183943p:plain

これを見てわかることは
- HTTPSは何かのリソースでSSLを解いている
ということは、暖気不要とはならないはず
- AWS - ELBに比べて、SSLを解く専用のナニかが在る
それが X-FORWARDED-FORに出ている。だからカンマ区切りの2段転送。

まとめ

AWSのELBとはかなり違うので注意!
1. 1つのIPアドレスで 80 & 443を Listen 出来ない
2. X-Forwarded-Forはカンマ区切りになる(これは2段リバプロとかやるとこうなる、標準の動き)
3. この構成だと、暖気無しとは行かないのではないか?
ひとまず出来ましたが、まだ課題が沢山ありますね。。Betaが切れる頃までに仕様が様変わりするかもしれないので、そこまで待つ!