目的・やりたいこと
ALBのアイドルタイムアウトの設定値を変更した際の反映タイミングについて知りたいので、実際に検証して調査する。
デフォルトが300秒のため、1秒などの極端な設定値を除いて設定変更による瞬断は発生しない想定です。
対象者
ALB運用者(初級〜中級者)
対象となる技術
- ALB
条件(導入にあたって前提事項)
- IGW、NATGWは当然設置済み
参考URL
注意事項
- ALBは作成しただけでも1 か月17.74 USD課金されるので、通信しなくても削除しておきましょう
作業の流れ
概要図
とにかくALBとセッションさえ張れればいいので、ターゲットは最低の1台の片側運転で最低限のロードバランシング構成
フロントエンドセッションとバックエンドセッションは違うようで、ここで対象としているのはブラウザ〜ALB間のフロントエンドセッションの測定
事前作業
ALBやターゲットグループの作成方法などは1.のページが充実しているので割愛します。
ターゲットは http:// でApacheの初期ページが見れるだけの最低限のWeb設定
検証手順
(仮説)
設定後、次の接続から新しいタイムアウトが反映され、設定変更前の接続は変更前の設定値で動作する
この仮説が正しければ、変更前のアイドルタイムアウト30秒の状態で確立されたセッションは、途中でアイドルタイムアウト値が延長されたとしても、変更前の30秒でタイムアウトし、次のセッション確立時に変更後のアイドルタイムアウト値60秒が有効になるはず
こういうのはドキュメントに記載がないので、とにかく検証して試してみるしかない。ALBとnetstatさえあればできるので、簡単な検証で済む
ローカルのPCからALB URL(nozaki-ALB-1117346501.ap-northeast-1.elb.amazonaws.com)にWebアクセスする。
いじるのはALBの属性であるこのアイドルタイムアウト値
- アイドルタイムアウトを30秒に設定
1.セッション確立
C:\Users\Administrator>netstat アクティブな接続 プロトコル ローカル アドレス 外部アドレス 状態 TCP 10.0.5.138:50287 ec2-35-75-132-194:http ESTABLISHED TCP 10.0.5.138:50288 ec2-35-75-132-194:http ESTABLISHED
- セッション確立時刻
C:\Users\Administrator>echo %time% 21:16:27.67
2.アイドルタイムアウトを60秒に変更
だが30秒後にセッションがクローズ
C:\Users\Administrator>echo %time% 21:16:57.91 C:\Users\Administrator>netstat アクティブな接続 プロトコル ローカル アドレス 外部アドレス 状態 TCP 10.0.5.138:50287 ec2-35-75-132-194:http CLOSE_WAIT TCP 10.0.5.138:50288 ec2-35-75-132-194:http CLOSE_WAIT
3.もう一度セッション確立
C:\Users\Administrator>netstat アクティブな接続 プロトコル ローカル アドレス 外部アドレス 状態 TCP 10.0.5.138:50289 ec2-35-75-132-194:http ESTABLISHED TCP 10.0.5.138:50290 ec2-35-75-132-194:http ESTABLISHED
- セッション確立時刻
C:\Users\Administrator>echo %time% 21:17:26.66
- 35秒後
C:\Users\Administrator>echo %time% 21:18:01.88
- まだセッションは活きている
C:\Users\Administrator>netstat アクティブな接続 プロトコル ローカル アドレス 外部アドレス 状態 TCP 10.0.5.138:50289 ec2-35-75-132-194:http ESTABLISHED TCP 10.0.5.138:50290 ec2-35-75-132-194:http ESTABLISHED
- セッション確立後1分16秒後
セッションはクローズされていた。
C:\Users\Administrator>echo %time% 21:18:42.32 C:\Users\Administrator>netstat アクティブな接続 プロトコル ローカル アドレス 外部アドレス 状態 TCP 10.0.5.138:50289 ec2-35-75-132-194:http CLOSE_WAIT TCP 10.0.5.138:50290 ec2-35-75-132-194:http CLOSE_WAIT
結論
以上より、アイドルタイムアウト30秒の状態で確立されたセッションは、途中でアイドルタイムアウト60秒に延ばしても30秒後にセッションが切れ、再度セッションを確立した際に60秒のアイドルタイムアウトが有効になることがわかりました。
所要時間
1時間
ユースケース
ALBの運用をしていて、途中でアイドルタイムアウトを変更した場合に、既存のセッションにどのような影響があるか懸念がある場合