Envoy Proxy คืออะไร และใช้งานอย่างไรในระบบ Microservices
Envoy Proxy คือ Proxy ที่ออกแบบมาสำหรับระบบที่มีบริการย่อยจำนวนมากคุยกันเอง จุดเด่นคือการเก็บข้อมูลเชิงลึกของทุกการเรียกและกลไกจัดการความล้มเหลว ซึ่งเป็นสิ่งที่ระบบกระจายศูนย์ต้องการ
- หมวดหมู่
- Web Server และ Proxy
- ติดตั้งบนเซิร์ฟเวอร์เองได้
- ได้
- สเปกเริ่มต้นที่แนะนำ
- 2 vCPU · RAM 2 GB
- ไลเซนส์
- Apache License 2.0 (โอเพนซอร์ส)
- เว็บทางการ
- เปิดเว็บไซต์
- ISO/IEC 27001
- ISO 22301
- ISO 20000-1
- CSA-STAR
Data Center ในไทย มาตรฐาน TIA-942 Tier 3+ ข้อมูลอยู่ในประเทศไทย
Envoy Proxy คืออะไร
ในระบบที่แยกเป็นบริการย่อยหลายสิบตัว ปัญหาไม่ได้อยู่ที่การรับทราฟฟิกจากผู้ใช้อย่างเดียว แต่อยู่ที่การที่บริการเหล่านั้นเรียกหากันเองแล้วเกิดความล้มเหลวเป็นทอด Envoy ถูกออกแบบมาเพื่อจัดการจุดนี้โดยเฉพาะ
ความสามารถที่สำคัญคือการลองใหม่อัตโนมัติ การตั้งเวลาหมดอายุของทุกการเรียก การตัดวงจรเมื่อปลายทางมีปัญหา และการเก็บข้อมูลเชิงลึกของทุกคำขอ ทำให้ทีมเห็นว่าการเรียกช้าหรือพังที่ขั้นไหน
Envoy มักถูกใช้เป็นองค์ประกอบภายในของระบบ Service Mesh มากกว่าถูกตั้งค่าตรงด้วยมือ ทีมที่ต้องการเพียง Reverse Proxy ธรรมดาจึงยังควรใช้ Nginx หรือ Traefik ซึ่งเรียบง่ายกว่ามาก
ความสามารถเด่นของ Envoy Proxy
เก็บข้อมูลเชิงลึกของทุกคำขอ
รู้เวลาตอบสนอง อัตราความผิดพลาด และเส้นทางของแต่ละการเรียก
กลไกจัดการความล้มเหลว
ลองใหม่ ตั้งเวลาหมดอายุ และตัดวงจรเมื่อปลายทางมีปัญหา
ปรับค่าได้ขณะทำงาน
รับการตั้งค่าใหม่ผ่าน API โดยไม่ต้องรีสตาร์ต เหมาะกับระบบที่เปลี่ยนแปลงตลอด
รองรับ gRPC ในตัว
ทำงานได้ดีกับบริการที่คุยกันด้วยโปรโตคอลสมัยใหม่
เป็นฐานของ Service Mesh
ใช้เป็นองค์ประกอบหลักในระบบจัดการทราฟฟิกภายในคลัสเตอร์
ใช้ Envoy Proxy ทำอะไรได้บ้าง
- ระบบที่แยกเป็นบริการย่อยจำนวนมากและต้องมองเห็นการเรียกระหว่างกัน
- คลัสเตอร์ Kubernetes ที่ต้องการจัดการทราฟฟิกภายในอย่างละเอียด
- ระบบที่ต้องการกลไกลองใหม่และตัดวงจรเพื่อกันความล้มเหลวลาม
- บริการที่คุยกันด้วย gRPC
สเปก Cloud Server ที่แนะนำ
| ระดับการใช้งาน | vCPU | RAM | Disk |
|---|---|---|---|
| เริ่มต้นทดลองใช้หรือระบบขนาดเล็ก | 2 vCPU | 2 GB | NVMe 20 GB |
| แนะนำประตูหน้าของระบบที่มีบริการย่อยหลายตัว | 4 vCPU | 8 GB | NVMe 60 GB |
| ทราฟฟิกสูงระบบที่มีการเรียกภายในจำนวนมากต่อวินาที | 8 vCPU ขึ้นไป | 16 GB ขึ้นไป | NVMe 100 GB |
ดูราคาตามสเปกได้ที่ ราคา Cloud Compute หรือให้ทีมงานช่วยประเมินสเปกจากปริมาณผู้ใช้จริงของคุณ
วิธีติดตั้ง Envoy Proxy บน Cloud Server ของ THAI DATA CLOUD
ขั้นตอนด้านล่างใช้กับ Cloud Server ที่เพิ่งสร้างใหม่จากหน้าจัดการของ THAI DATA CLOUD ได้ทันที ถ้าไม่สะดวกทำเอง ทีมวิศวกรของเราติดตั้งและตั้งค่าให้ฟรีสำหรับลูกค้า Cloud Server
สิ่งที่ต้องเตรียม
- Cloud Server ที่ติดตั้ง Docker แล้ว หรือคลัสเตอร์ Kubernetes
- ความเข้าใจโครงสร้างบริการย่อยของระบบที่จะจัดการ
- ระบบเก็บ Metric เช่น Prometheus เพื่อใช้ข้อมูลที่ Envoy ส่งออกมา
ทดสอบบน Ubuntu Server 24.04 LTS ที่ติดตั้ง Docker แล้ว
- 1
สร้างไฟล์ตั้งค่า envoy.yaml
ตัวอย่างนี้รับคำขอที่พอร์ต 10000 แล้วส่งต่อไปยังบริการเบื้องหลัง
static_resources: listeners: - name: main address: socket_address: { address: 0.0.0.0, port_value: 10000 } filter_chains: - filters: - name: envoy.filters.network.http_connection_manager typed_config: "@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager stat_prefix: ingress_http route_config: virtual_hosts: - name: backend domains: ["*"] routes: - match: { prefix: "/" } route: { cluster: app } http_filters: - name: envoy.filters.http.router typed_config: "@type": type.googleapis.com/envoy.extensions.filters.http.router.v3.Router - 2
รัน Envoy
docker run -d --name envoy --restart always \ -p 10000:10000 -p 127.0.0.1:9901:9901 \ -v $(pwd)/envoy.yaml:/etc/envoy/envoy.yaml \ envoyproxy/envoy:v1.31-latest - 3
ตรวจสถานะจากหน้าจัดการ
หน้าจัดการที่พอร์ต 9901 แสดงสถิติและสถานะของทุกคลัสเตอร์ ต้องเปิดเฉพาะภายในเครื่องเท่านั้น
curl http://127.0.0.1:9901/stats | head - 4
ตั้งเวลาหมดอายุและการลองใหม่
กำหนดในส่วนของเส้นทางแต่ละเส้น เพื่อไม่ให้คำขอค้างรอปลายทางที่ไม่ตอบและกันความล้มเหลวลามไปทั้งระบบ
- 5
ส่ง Metric เข้าระบบเฝ้าระวัง
ตั้งให้ Prometheus ดึงข้อมูลจากปลายทางสถิติของ Envoy เพื่อทำแดชบอร์ดและกฎแจ้งเตือน
ถ้าโจทย์คือ Reverse Proxy สำหรับเว็บไม่กี่ตัว Nginx หรือ Traefik จะตั้งค่าเร็วกว่ามาก Envoy คุ้มเมื่อระบบมีบริการย่อยจำนวนมากที่เรียกหากันจริง
พอร์ตที่ต้องเปิดบน Firewall
| พอร์ต | โปรโตคอล | ใช้ทำอะไร |
|---|---|---|
| 10000 | TCP | พอร์ตรับทราฟฟิกตามที่กำหนดในไฟล์ตั้งค่า |
| 9901 | TCP | หน้าจัดการและสถิติ (เปิดเฉพาะภายในเครื่อง) |
สิ่งที่ควรทำต่อหลังติดตั้งเสร็จ
- ไม่เปิดหน้าจัดการที่พอร์ต 9901 ออกสู่ภายนอกเด็ดขาด
- ตั้งเวลาหมดอายุของทุกเส้นทางเพื่อกันคำขอค้าง
- เปิด TLS สำหรับการเรียกข้ามเครื่องระหว่างบริการ
- จำกัดอัตราการเรียกสำหรับปลายทางที่เปิดสู่ภายนอก
ทำไมควรรัน Envoy Proxy บน Cloud Server ของ THAI DATA CLOUD
Data Center ในประเทศไทย มาตรฐาน ISO/IEC 27001 และ ISO 22301 พร้อมทีมวิศวกรคนไทยดูแลตลอด 24 ชั่วโมง
เหมาะกับระบบที่รันบนคลัสเตอร์ Kubernetes บน Cloud Server หลายเครื่องในวง Private Network
ทำงานคู่กับ Prometheus และ Grafana ที่รันบนเครื่องอื่นในวงเดียวกันเพื่อทำแดชบอร์ดการเรียกระหว่างบริการ
ทีมวิศวกรของ THAI DATA CLOUD ช่วยประเมินว่าระบบของคุณถึงจุดที่ควรใช้เครื่องมือระดับนี้แล้วหรือยัง
คำถามที่พบบ่อยเกี่ยวกับ Envoy Proxy
Envoy ต่างจาก Nginx อย่างไร
Nginx เก่งเรื่องเสิร์ฟเว็บและทำ Reverse Proxy ทั่วไป ส่วน Envoy ออกแบบมาเพื่อจัดการทราฟฟิกระหว่างบริการย่อยโดยเฉพาะ ทั้งการเก็บข้อมูลเชิงลึกและกลไกจัดการความล้มเหลว ถ้าระบบยังไม่ได้แยกเป็นบริการย่อยจำนวนมาก Nginx เพียงพอ
ต้องใช้ Service Mesh ด้วยไหม
ไม่จำเป็น ใช้ Envoy เดี่ยว ๆ เป็นประตูหน้าได้ Service Mesh คือชั้นที่เข้ามาจัดการ Envoy จำนวนมากให้อัตโนมัติ ซึ่งคุ้มเมื่อมีบริการย่อยจำนวนมากจริงเท่านั้น
ตั้งค่ายากไหม
ยากกว่า Proxy ทั่วไปอย่างชัดเจน เพราะไฟล์ตั้งค่ามีโครงสร้างละเอียดมาก ทีมส่วนใหญ่จึงใช้ผ่านเครื่องมือที่สร้างการตั้งค่าให้ เช่น Ingress Controller ของ Kubernetes แทนการเขียนเองทั้งหมด
ทางเลือกอื่นที่คล้ายกับ Envoy Proxy
แอปอื่นในหมวด Web Server และ Proxy
- #3Nginxเว็บเซิร์ฟเวอร์และ Reverse Proxy ที่เร็วที่สุด
- #8Apache HTTP Serverเว็บเซิร์ฟเวอร์รุ่นคลาสสิกที่รองรับ .htaccess
- #35TraefikReverse Proxy สำหรับยุค Container
- #36HAProxyLoad Balancer ระดับ Production
- #37Caddyเว็บเซิร์ฟเวอร์ที่ออก SSL อัตโนมัติ
- Nginx Proxy Managerจัดการ Reverse Proxy และ SSL จากหน้าเว็บ
บริการของ THAI DATA CLOUD ที่เกี่ยวข้อง
ให้เราติดตั้ง Envoy Proxy ให้ฟรี บน Cloud Server ในไทย
แจ้งความต้องการสั้น ๆ ทีมวิศวกรจะช่วยประเมินสเปก ติดตั้ง และตั้งค่าความปลอดภัยให้พร้อมใช้งาน ปรึกษาฟรี ไม่มีข้อผูกมัด