AWSではELBを用いることで、簡単に負荷分散・冗長化した構成ができる。ただ、セッション管理を前提としたシステムにおいては、セッションの途中で別のEC2インスタンスに当てられたらどうするの?という問題がある。基本的にはキャッシュサーバーを別にたてるのが良いようだが、それだと何かとコストがかかるので、手っ取り早いやり方として、スティッキーセッションの設定がある。
目次
背景
AWSは簡単にELBを使って冗長構成を取れて便利だが、セッション管理をしているシステムだと、セッション途中でサーバーが変わってしまうことも考慮しないといけない。正攻法ではAmazon ElastiCache等使ってキャッシュサーバーを別途たてることだろうが、そうするといろいろとコストもあるので、もう少し手軽になんとかしたい。
その場合、スティッキーセッションを張るように設定する。具体的には、同一のセッションについては同じサーバーで処理するようにする。ELBがセッションIDから判別してよしなにしてくれるらしい。
設定
具体的な設定。
EC2→ロードバランシング→ターゲットグループより、セッションを維持したいターゲットグループを選択。「説明」タブより、「属性」の「維持設定」を有効化させる。
セッション時間は設定できる。30分くらいにしておけば十分か。
以上。
参考
参考にさせていただきました。
- Application Load Balancer のターゲットグループ - Elastic Load Balancing
- 【基礎から学ぶ】ELBのスティッキーセッションについてまとめてみた – サーバーワークスエンジニアブログ
Amazon Web Services パターン別構築・運用ガイド。2冊目の入門書として良い本。
コメント