LoginSignup
26
24

More than 5 years have passed since last update.

AWS ELB(Elastic Load Balancer)を使うときの注意点

Last updated at Posted at 2016-01-16

はじめに

ELB導入時に注意すべき点があったので、紹介します。

特に注意すべき、以下の点について紹介します。

  • KeepAliveの設定
  • リダイレクトの設定
  • ELBを配置するVPCサブネットの大きさ
  • ELBを配置するVPCサブネットのACL

WebサーバにKeepAliveを設定する

ELBからWebサーバへ接続する際に、TCP KeepAlive機能を有効にすることで、TCPコネクションを維持し、接続効率を向上させることができます。

例えば、Apacheでは以下の設定項目を修正します。
Keepaliveのタイムアウト時間は、長めに取ることで効果を得ることができます。

httpd.conf
KeepAlive On
KeepAliveTimeout [ELBのタイムアウト時間より長い時間]

検索すると120秒という文献が多く出てきますが、ちょっと古い記事がほとんどです。
もしかすると、昔はタイムアウト時間が60秒に固定されていたのかもしれませんが、現在はタイムアウト時間も設定することができるため、サービスに応じて変更すればよいと思います。

Webサーバでのリダイレクトの設定

例えば、正規のドメインへリダイレクトしたいとき、HTTP->HTTPSにリダイレクトしたいときなど、Webサーバ側でリダイレクトを行う事があると思います。
このとき、ELBのヘルスチェックでアクセスしたときに、リダイレクトレスポンスを返してしまうと、サーバが落ちていると判定されてしまいます。

そのため、ELBのヘルスチェックからのアクセスでは、リダイレクトをしないように工夫しましょう。
Apacheのmod_rewriteを使うときであれば、RewirteCondでUser-Agentを判定して、リダイレクトを行わないようにすることができます。

httpd.conf
  <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{HTTP:X-Forwarded-Port} !^443$
    RewriteCond %{HTTP_USER_AGENT} !^ELB-HealthChecker # User-Agentで判定する
    RewriteRule ^(.*)?$ https://example.net$1 [R=301,L]
  </IfModule>

ELBを配置するVPCサブネットの大きさ

ELBはアクセス数に応じてオートスケールアウトをします。
このとき、ロードバランサの台数が増加するので、ELBで利用するVPCのプライベートIPアドレスも増加します。
ELBを配置するサブネットが小さすぎるとスケールアウトできなくなるので、サービスの規模に応じて、サブネットは少し大きめに設計する方がよさそうです。

ELBを配置するVPCサブネットのACL

ELBを配置するサブネットのACLでは、WebサーバからTCP1024-65535のインバウンドを許可しなければなりません。
Linuxの標準的なエフェメラルポートは32768-65535ですが、ELBで利用するポートは非常に広いため、設定に注意が必要です。

26
24
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
26
24