先日とあるEC2インスタンスのAMIを取得して、別環境で構築したときのこと。Nginxのアクセスログの「remote_host」を眺めていると別のIPアドレスに置き換わっている現象に遭遇しました。
状況
- 前段にCloudFrontがある
- 通常のリクエストはキャッシュしない設定
- オリジンはELBで、EC2がアタッチされていて、その中にNginxがインストールされている
原因
- Nginxで指定しているCloudFrontの「real_ip」が最新でなかった
対応
- こちらのコマンドの出力結果を反映
curl -s "https://ip-ranges.amazonaws.com/ip-ranges.json" |jq -r '.prefixes | map(select(.service == "CLOUDFRONT").ip_prefix) | "set_real_ip_from" + " " + .[] + ";"'