ELB(ALB)のIPアドレスを確認する方法

2021.08.27

困っていた内容

障害調査でELB(ALB)のIPアドレスを確認したいのですが、どのようにして確認したら良いでしょうか。

また、過去にIPアドレスが切り替わったタイミングも知りたいです。

前提

ALB の IP アドレスはメンテナンスやスケーリングなど様々な理由によって変化します。

そのため、 ALB の IP アドレスは常に変化するものと考え、この IP アドレスを静的に指すような設計は避けてください。1

この内容を前提とした上で、障害調査等で、ALBのIPアドレス状況を確認する方法を案内していきます。

確認方法

1.現在の IP アドレスの確認方法

ネットワークインターフェースの一覧から、IP アドレス探したい ALB の名前で検索することで確認ができます。

  1. EC2コンソール > ネットワークインターフェース

  2. ALB 名で検索

  3. 検索結果に表示された、各ネットワークインターフェースのIPアドレスを確認

2.過去の IP アドレスと切り替わったタイミングの確認方法

ALB のアクセスログ2を作成していた場合、このアクセスログを確認すると過去の IP アドレスの状況が分かります。

アクセスログを有効にすると、 S3 に以下の形式でアクセスログが作成されます。

[バケット名]/AWSLogs/[AWSアカウントID]/elasticloadbalancing/region/yyyy/mm/dd/aws-account-id_elasticloadbalancing_region_load-balancer-id_end-time_ip-address_random-string.log.gz

このアクセスログの名称内に記載されている IP アドレスが、その時点で ALB に関連付けされていた IP アドレスとなります。

アクセスログ内の時刻により、 IP アドレスの動きがある程度読み取れます。

例として

s3://albsamplelog/AWSLogs/1234567890/elasticloadbalancing/ap-northeast-1/2021/08/01/

に下記アクセスログがあった場合

  • 1234567890_elasticloadbalancing_ap-northeast-1_albsample_20210801T0000Z_aaa.aaa.aaa.aaa_123abcde.log.gz
  • 1234567890_elasticloadbalancing_ap-northeast-1_albsample_20210801T0200Z_bbb.bbb.bbb.bbb_456fghij.log.gz
  • 1234567890_elasticloadbalancing_ap-northeast-1_albsample_20210801T0400Z_ccc.ccc.ccc.ccc_789klmno.log.gz

これは、2021/08/01の時点で、

  • aaa.aaa.aaa.aaa
  • bbb.bbb.bbb.bbb
  • ccc.ccc.ccc.ccc

の3つのIPアドレスが関連付けされていたことが読みとれます。

また、アクセスログの内部を確認し

1234567890_elasticloadbalancing_ap-northeast-1_albsample_20210801T0000Z_aaa.aaa.aaa.aaa_123abcde.log.gz

のみ、2021-08-01T13:00:00.000000Z を最後にログファイルの出力が無くなっていた場合、

これ以降 aaa.aaa.aaa.aaa のIP アドレスは使われなくなり、2つのIPアドレスへとスケールインしたと読み取ることができます。

最後に

前提にも書いた通り、 ALB の IP アドレスは可変です。

ALB に設定された IP アドレスを利用した設計をしてしまうと、トラブルの原因になります。

IP アドレスを固定運用した設計を検討している場合は、 NLB3 や NATゲートウェイ4をご検討下さい。

参考資料