AWS ELBのスティッキーセッションでセッションの維持をしてみた

こんにちは!Tamaです!

トラフィックを配下のEC2に自動で割り振ってくれる便利かつ安価なELBですが、時に自動割り振りが問題になることがあります。
例えば会員登録のフォーム画面で入力を完了し次のページに遷移しようとした時別のサーバーに割り振られてしまうと・・・
「入力内容を確認して下さい」
ガッデム!使い物になりませんね。

そこで今回はELBの接続先を維持する「スティッキーセッション」を紹介します!

準備

ELB配下にEC2インスタンス2台を設置しindex.htmlそれぞれに
Sticky sessions 1!
Sticky sessions 2!
とだけ記載したものを用意しました。

ELBにアクセスすると・・
01webn

表示されますが
ページを更新すると・・
02webn

より負荷のかかっていないEC2に接続されてしまいます。
本来ならばありがたい機能ですがセッションを維持したい場合はスティッキーセッションを利用します。

スティッキーセッションの設定

コンソールよりELBの設定を変更します。
EC2コンソールからロードバランサに移行します。
対象のELBを選択した後、説明タブの「ポート構成」、維持設定の右側にある(編集)をクリックします。
03console

今回はELBで生成されたCookieを用いて30秒だけセッションを維持する設定を行いました。
04console

同じようにELBアクセスすると30秒間同一インスタンスにだけ接続できるようになったかと思います。
5秒毎にブラウザをリロードするようにしてアクセスログを確認してみます。

06log

ピンクの線以下30秒毎に切り替わっていることが分かります!

今回は以上になります!
お疲れさまでした!

今回はELBのCookieを用いてセッション維持を設定しましたが、アプリケーションのCookieを使って設定することでアプリケーション側でのセッションの制御が可能になります!
簡単に設定が可能なので皆さんも使ってみてはいかがでしょうか。

またお会いしましょう!

この記事を書いた人

aws-recipe-user