やったこと

webサービスを作るときに考えたことを垂れ流します

ロードバランサー(ELB)の設定が悪くてツイッターログインが失敗!

先日私のサイトでwebサーバーを二台に冗長する作業を実施したところ、ユーザーの「ツイッターログイン」が失敗する不具合が起きるようになってしまいました・・。


私のサイトはアマゾンのAWSサーバーを使っているんですけども、どうもAWSの「ロードバランサー(ELB)」の設定が悪いせいで、ログインが失敗してしまうようです。

ロードバランサーには「スティッキーセッション」という機能があるのですが、おそらくこの設定がオフになっているのがいけないんだと思われます。

(※スティッキーセッションとは、ユーザーのセッション情報をクッキーに記憶させておき、ロードバランサーがそのクッキー情報を見ることで、アクセスを前回と同じサーバーに振り分けてくれるという、お利口な機能です)


ツイッターをはじめとした、ソーシャルログイン機能を使いたいんだったら、スティッキーセッションは有効にしないといけません。

スティッキーセッションを有効にするには、AWSのEC2設定画面の以下の赤丸の箇所を入力するとできます(ちなみにロードバランサーの種類は「Application Load Balancer」というやつを使っています)

f:id:absg:20170218192941j:plain


この設定をしたところ、ちゃんとツイッターログインが成功するようになりました。ロードバランサーがセッションを判別して、認証のためのアクセスを振り分けてくれるようになったのです。

めでたしめでたし・・