AWS WAF พร้อมใช้งานใน Thailand region แล้ว (โดยใช้งานร่วมกับ ELB)

AWS WAF พร้อมใช้งานใน Thailand region แล้ว (โดยใช้งานร่วมกับ ELB)

บทความนี้จะแนะนำวิธีการตั้งค่าและทดลองใช้งาน AWS WAF ใน Thailand Region พร้อมขั้นตอนการสร้าง IP set, Web ACL และการเชื่อมต่อกับ Application Load Balancer เพื่อป้องกันเว็บไซต์ของเรา รวมถึงรายละเอียดค่าใช้จ่ายและประโยชน์การใช้งานด้วย

เมื่อวันที่ 5 มีนาคมที่ผ่านมา AWS ได้ประกาศเปิดใช้งานบริการ AWS WAF ให้กับ Thailand region แล้วเรียบร้อย

https://aws.amazon.com/about-aws/whats-new/2025/03/aws-waf-additional-regions/

ดังนั้นในบทความนี้ เราจะมาทดลองใช้งาน AWS WAF ใน Thailand Region กัน

ตัวอย่าง Diagram ที่จะสร้างในบทความนี้

Untitled presentation

สิ่งที่ต้องมีก่อนเริ่มใช้งาน WAF ใน Thailand Region

สร้าง EC2 โดยดูวิธีการสร้างได้จากบทความด้านล่าง

https://dev.classmethod.jp/articles/how-to-install-amazon-linux-2023-on-ec2/

จากนั้นทำการติดตั้ง PHP และ Apache เพื่อให้สามารถใช้งานเว็บไซต์บน EC2 ได้

https://dev.classmethod.jp/articles/how-to-install-php82-and-apache-in-ec2-amazon-linux-2023/

ตั้งค่า Load balancer

สร้าง Target group

เข้ามาที่หน้าคอนโซลของ EC2 จากนั้นไปที่หัวข้อ Target Groups และคลิก "Create target group"

ALB-1

ทำการตั้งชื่อ target group จากนั้นคลิก "Next"

ALB-2

เลือก instance ที่เราสร้างไว้เพื่อใช้งานเว็บไซต์ จากนั้นคลิกที่ "Include as pending below"

ALB-3

instance ที่เราเลือกจะมาอยู่ที่ Targets จากนั้นให้คลิก "Create target group"
เพียงเท่านี้การสร้าง Target group ก็จะเสร็จเรียบร้อย

ALB-4

สร้าง Load balancer

ไปที่หัวข้อ Load balancers จากนั้นคลิก "Create load balancer"

ALB-5

ในบทความนี้จะใช้เป็น Application Load Balancer

ALB-6

ตั้งชื่อ ALB

ALB-9

ทำการเลือก subnet โดยในบทความนี้จะขอเลือกทั้ง 3 AZ

ALB-10

ทำการเลือก Security groups โดยในบทความนี้จะทำการสร้าง security group ขึ้นมาใหม่ตามรูปด้านล่าง
และในส่วนของ Listeners and routing ก็ให้เลือก target group ที่เราเพิ่งสร้างมา

ALB-11
ALB-8

จากนั้นให้คลิกที่ "Create load balancer"

ALB-12

เมื่อสร้างเสร็จแล้ว ให้ลองนำ URL ของ ALB ไปใช้งาน

ALB-13

เมื่อลองใช้งาน URL ก็จะสามารถเข้าไปยังเว็บไซต์ได้ โดยที่ไม่ต้องใช้ IP ของ EC2

WAF-9

ตั้งค่า WAF

สร้าง IP set

เข้ามาที่ console ของ WAF & Shield และเลือกหัวข้อ IP sets ทำการเลือก Region เป็น Thailand จากนั้นคลิก “Create IP set”

WAF-11

จากนั้นตั้งชื่อ IP set และกำหนด IP ซึ่งในบทความนี้ผมจะทดสอบด้วย IP ของตัวเอง
เมื่อตั้งค่าเรียบร้อยคลิก “Create IP set”

WAF-12

สร้าง Web ACL

เข้ามาที่ console ของ WAF & Shield และคลิก “Create web ACL”

WAF-13

ตั้งชื่อ Web ACL จากนั้นคลิกที่ "Add AWS resources"

WAF-15

เลือก ALB ที่เราได้สร้างไว้ จากนั้นคลิก “Add” และตามด้วยคลิก "Next"

WAF-14

ทำการเพิ่ม rule โดยในบทความนี้จะเลือกเป็น “Add my own rules and rule groups”

WAF-16

สามารถดูรายละเอียดเกี่ยวกับ AWS WAF rule ได้ที่
https://docs.aws.amazon.com/waf/latest/developerguide/waf-rules.html

เราจะทำการสร้าง rule สำหรับ block การเข้าถึงโดย
เลือก IP set โดยเลือกอันที่เพิ่งสร้างไป (หัวข้อ Action ได้มีการเลือก Block ไว้อยู่แล้ว)
จากนั้นคลิก “Add rule”

WAF-17

จากนั้นคลิก “Next” ไปจนถึงหน้ารีวิว
หลังจากตรวจสอบแล้ว ให้คลิก “Create web ACL”

ทดสอบการเชื่อมต่อ

เมื่อลองเชื่อมต่อผ่าน ALB ด้วย IP ตัวเองก็จะได้ผลลัพธ์ตามภาพด้านล่าง

WAF-18

แต่เมื่อลองใช้ IP อื่นที่ไม่ได้อยู่ใน IP set ที่เราตั้งค่าไว้ ก็ยังคงสามารถเชื่อมต่อได้

WAF-9

ค่าใช้จ่าย

สำหรับค่าใช้จ่ายของ AWS WAF จะแบ่งออกเป็น 3 ส่วน อ้างอิงราคาจาก Thailand region

ประเภททรัพยากร ราคา
Web ACL USD 5.00 ต่อเดือน (คิดตามสัดส่วนรายชั่วโมง)
Rule USD 1.00 ต่อเดือน (คิดตามสัดส่วนรายชั่วโมง)
คำขอ USD 0.60 ต่อ 1 ล้านคำขอ (สำหรับการตรวจสอบ WCU สูงสุด 1500 รายการและขนาดเนื้อหาเริ่มต้น*)

สามารถดูรายละเอียดเพิ่มเติมได้ที่
https://aws.amazon.com/th/waf/pricing/?nc1=f_ls

สรุป

หากเราใช้งาน CloudFront โดยปกติเราจะไม่สามารถกำหนด IP เข้า-ออกที่เชื่อมต่อเข้ามาได้เหมือน Security group ซึ่ง AWS WAF สามารถทำหน้าที่เหมือน Security group ได้และทำได้มากกว่าการกำหนด IP ด้วย

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.