目的・やりたいこと

ALBのアイドルタイムアウトの設定値を変更した際の反映タイミングについて知りたいので、実際に検証して調査する。
デフォルトが300秒のため、1秒などの極端な設定値を除いて設定変更による瞬断は発生しない想定です。

対象者

ALB運用者(初級〜中級者)

対象となる技術

  • ALB

条件(導入にあたって前提事項)

  • IGW、NATGWは当然設置済み

参考URL

  1. パブリックなALBからプライベートなEC2にアクセスしてみた
  2. AWS Application Load Balancer (ALB) 使用時の注意点

注意事項

  • 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の運用をしていて、途中でアイドルタイムアウトを変更した場合に、既存のセッションにどのような影響があるか懸念がある場合