วิธีตรวจสอบ IP Address ของ AWS ELB(ALB)

แนะนำวิธีตรวจสอบ IP address ของ AWS ELB(ALB)และช่วงเวลาที่มีการเปลี่ยน IP ในอดีต
2023.03.23

ปัญหาที่พบ

ต้องการทราบ IP Address ของ ALB เพื่อใช้ในการตรวจสอบปัญหาที่เกิดขึ้น เลยอยากรู้ว่าเราสามารถดู IP Address ของ ALB ได้ที่ไหน

และช่วงเวลาที่ IP Address เปลี่ยน เราสามารถตรวจสอบได้ยังไงบ้าง

สิ่งที่ควรทราบ

IP Address ของ ALB มีการเปลี่ยนแปลงตลอดเวลาด้วยเหตุผลต่างๆเชน การ Maintenance หรือ Scaling ต่างๆ

ซึ่งนั่นหมายความว่าเราไม่ควรใช้โครงสร้างที่ใช้ IP Address ของ ALB ในการเชื่อมต่อเพราะว่า IP Address ของ ALB มีการเปลี่ยนแปลงตลอด[1]

โดยในบทความนี้เราจะมาแนะนำเกี่ยวกับวิธีตรวจสอบ IP Address ของ ALB กันครับ

วิธีตรวจสอบ

วิธีตรวจสอบ IP Address ปัจจุบัน

ในหน้าต่าง Network Interface เราสามารถตรวจสอบ IP Address ของ ALB ได้ด้วยการค้นหาชื่อของ ALB โดยสามารถทำได้โดยดังนี้

  1. EC2 Console -> Network Interface
  2. ค้นหา ALB ด้วยชื่อ(ซึ่งในกรณีนี้ผมใช้ชื่อ ALB ว่า tar-test-alb เป็น ALB ที่ตัวเองสร้างขึ้น)
  3. ตรวจสอบ IP Address ของ Network Interface ที่เราเจอ นั่นคือ IP Address ของ ALB

https://devio2023-media.developers.io/wp-content/uploads/2023/02/eni2.png

วิธีตรวจสอบ IP Address ในอดีต

หากเราสร้าง Access log[2] ของ ALB ไว้ เราจะสามารถตรวจสอบ IP Address ในอดีตได้ที่นี่

เมื่อเราเปิดใช้งาน Access log แล้ว Access log จะถูกสร้างขึ้นใน S3 ในรูปแบบต่อไปนี้

[Bucket name]/AWSLogs/[AWS account ID]/elasticloadbalancing/region/yyyy/mm/dd/aws-account-id_elasticloadbalancing_region_load-balancer-id_end-time_ip-address_random-string.log.gz

IP Address ที่ถูกบันทึกอยู่ใน Access log ก็คือ IP Address ของ ALB ในช่วงเวลานั้นๆ

จากช่วงเวลาใน Access log ทำให้เราทราบการเปรียบแปลงของ IP Address ได้ในระดับนึง

ตัวอย่างเช่น

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

มี Access log ตามด้านล่างนี้

  • 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 Address นี้ที่ผูกติดกับ ALB ไว้

เมื่อตรวจสอบข้างใน Access log แล้วเห็น

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

เป็น log สุดท้ายที่มี aaa.aaa.aaa.aaa นั่นหมายความว่า หลังจาก 2021-08-01T13:00:00.000000Z ไป ALB ได้เลิกใช้ aaa.aaa.aaa.aaa แล้วนั่นเอง ซึ่งทำให้ทราบได้ว่าได้ Scale in จนเหลือแค่ 2 IP Address คือ bbb.bbb.bbb.bbb กับ ccc.ccc.ccc.ccc

ทิ้งท้าย

ตามที่เขียนไว้ใน สิ่งที่ควรทราบ ว่า IP Address ของ ALB มีการเปลี่ยนแปลงตลอดเวลา

หากเราพยายามใช้ IP Address ของ ALB ในการเชื่อมต่อจะเกิดปัญหาตามมา

หากต้องการใช้ Static IP Address ในการเชื่อมต่อแนะนำให้ไปลองดู NLB[3] หรือ NAT Gateway[4] ดูครับ

เอกสารอ้างอิง

[1] Find the IP address used by a load balancer to forward traffic to web servers

[2] Access logs for your Application Load Balancer - Elastic Load Balancing

[3] What is a Network Load Balancer? - Elastic Load Balancing

[4] NAT gateways - Amazon Virtual Private Cloud

เอกสารอ้างอิงอื่นๆ

Amazon ALB (Application Load Balancer) คืออะไร? การแนะนำฟังก์ชันล่าสุดของ AWS ในปี 2022 | DevelopersIO

ทดลองใช้ ALB ของ EC2 เพื่อแบ่งการเชื่อมต่อ | DevelopersIO

ทำความรู้จักกับ ALB, NLB, GLB ของ ELB(Elastic Load Balancing) ในเบื้องต้น | DevelopersIO

บทความต้นฉบับ

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