โหลดบาลานเซอร์แบบแอปพลิเคชัน

การกระจายภาระงานของ HTTP และการรับส่งข้อมูล HTTPS ด้วยการกำหนดเส้นทางคำขอขั้นสูง ที่กำหนดเป้าหมายไว้ที่การนำเสนอแอปพลิเคชันที่ทันสมัย

ทำไมจึงควรใช้ Application Load Balancer

Application Load Balancer จัดการในระดับคำขอ (เลเยอร์ 7), การกำหนดเส้นทางการรับส่งข้อมูลไปยังเป้าหมาย (อินสแตนซ์ EC2, คอนเทนเนอร์, ที่อยู่ IP และฟังก์ชัน Lambda) ตามเนื้อหาของคำขอ เหมาะสมที่สุดสำหรับการกระจายภาระงานขั้นสูงของ HTTP และการรับส่งข้อมูล HTTPS Application Load Balancer มอบการกำหนดเส้นทางคำขอขั้นสูง ที่กำหนดเป้าหมายไว้ที่การนำเสนอสถาปัตยกรรมแอปพลิเคชันที่ทันสมัย รวมทั้งแอปพลิเคชันที่ใช้ไมโครเซอร์วิสและคอนเทนเนอร์ Application Load Balancer ทำให้การรักษาความปลอดภัยแอปพลิเคชันของคุณเป็นเรื่องง่ายและได้รับการปรับปรุง โดยการตรวจสอบให้แน่ใจว่ามีการใช้งานการเข้ารหัสและโปรโตคอล SSL/TLS ใหม่ล่าสุดอยู่เสมอ

Page Topics

ฟีเจอร์

ฟีเจอร์

Mutual TLS คือโปรโตคอลรับรองความถูกต้องแบบสองทางระหว่างไคลเอ็นต์และเซิร์ฟเวอร์ที่ใช้ข้อมูลประจําตัวตามใบรับรอง x509 ด้วยคุณสมบัตินี้ ALB จะรับรองความถูกต้องของใบรับรองไคลเอ็นต์และดําเนินการตรวจสอบการเพิกถอนใบรับรองที่ออกโดยหน่วยงานออกใบรับรอง (CA) หรือผู้ออกใบรับรองส่วนตัว (ACM PCA) บุคคลที่สาม Load Balancer จะพร็อกซีข้อมูลใบรับรองไคลเอ็นต์ไปยังเป้าหมาย ซึ่งแอปพลิเคชันสามารถใช้ตัดสินใจอนุมัติได้ 

Automatic Target Weights (ATW) ใช้อัลกอริทึม Load Balancing แบบสุ่มที่ถ่วงน้ำหนักใหม่ ซึ่งปรับปรุงความพร้อมใช้งานของแอปพลิเคชัน แม้ว่าเป้าหมายของแอปพลิเคชันจะบกพร่องก็ตาม อัลกอริทึมวิเคราะห์รหัสสถานะ HTTP และอัตราข้อผิดพลาด TCP/TLS เพื่อระบุเป้าหมายที่มีอัตราข้อผิดพลาดสูงกว่าเพียร์ในกลุ่มเป้าหมายเดียวกัน เมื่อ ATW ระบุเป้าหมายที่มีประสิทธิภาพต่ำคุณสมบัตินี้จะปรับปริมาณการรับส่งข้อมูลไปยังแต่ละเป้าหมายตามประสิทธิภาพช่วยให้เป้าหมายที่มีปัญหาฟื้นตัวได้สําเร็จ

คุณสามารถกระจายภาระงานการรับส่งข้อมูล HTTP/HTTPS ไปยังเป้าหมาย - อินสแตนซ์ Amazon EC2, ไมโครเซอร์วิส และคอนเทนเนอร์ตามแอตทริบิวต์คําขอ (เช่น ส่วนหัวแบบ X-Forwarded-For)

เมื่อใช้ Amazon Virtual Private Cloud (VPC) คุณสามารถสร้างและจัดการกลุ่มมาตรการรักษาความปลอดภัยที่เชื่อมโยงกับ Elastic Load Balancing เพื่อมอบตัวเลือกด้านเครือข่ายและการรักษาความปลอดภัยเพิ่มเติม คุณสามารถกำหนดค่า Application Load Balancer ให้เป็นแบบต้องใช้อินเทอร์เน็ตหรือสร้าง Load Balancer โดยไม่ต้องใช้ที่อยู่ IP สาธารณะเพื่อใช้งานเป็น Load Balancer ภายใน (ไม่ต้องใช้อินเทอร์เน็ต) ได้

ALB รองรับการใช้งานการป้องกัน Desync ตามไลบรารี http_desync_guardian ด้วยคุณสมบัติใหม่นี้ แอปพลิเคชันของลูกค้าจะได้รับการปกป้องจากช่องโหว่ต่างๆ ใน HTTP อันเนื่องมาจาก Desync โดยที่ไม่ส่งผลต่อความพร้อมใช้งานและ/หรือเวลาแฝง ลูกค้ายังมีความสามารถในการเลือกระดับความคลาดเคลื่อนต่อคําขอที่น่าสงสัยตามสถาปัตยกรรมแอปพลิเคชันได้ด้วย

Application Load Balancer (ALB) รองรับ AWS Outposts ซึ่งเป็นบริการที่มีการจัดการเต็มรูปแบบซึ่งขยายโครงสร้างพื้นฐานของ AWS บริการ และเครื่องมือไปยังศูนย์ข้อมูล พื้นที่ทำงานร่วมกัน หรือสถานที่ในองค์กรแบบเสมือน เพื่อประสบการณ์แบบไฮบริดที่มีความสม่ำเสมอ ลูกค้าสามารถจัดเตรียม ALB บนประเภทอินสแตนซ์ที่รองรับ และ ALB จะขยายขนาดอัตโนมัติตามความจุที่มีอยู่บนแร็กเพื่อให้เป็นไปตามระดับโหลดแอปพลิเคชันที่แตกต่างกัน โดยไม่ต้องมีการแทรกแซงด้วยตนเอง ลูกค้ายังสามารถรับการแจ้งเตือนเพื่อช่วยนําทางความต้องการด้านความจุที่เกี่ยวข้องกับการกระจายภาระงานได้อีกด้วย ลูกค้าสามารถใช้คอนโซล AWS, API และ CLI เดียวกันเพื่อจัดเตรียมและจัดการ ALB บน Outposts ได้เช่นเดียวกับในปัจจุบันพร้อม ALB ในภูมิภาค

Application Load Balancer รองรับการยกเลิกใช้งาน HTTPS ระหว่างไคลเอ็นต์และโหลดบาลานเซอร์ Application Load Balancer ยังนำเสนอการจัดการใบรับรอง SSL ผ่าน AWS Identity and Access Management (IAM) และ AWS Certificate Manager สำหรับนโยบายด้านการรักษาความปลอดภัยที่กำหนดไว้ล่วงหน้า

HTTP/2 คือ HyperText Transfer Protocol (HTTP) เวอร์ชันใหม่ที่ใช้การเชื่อมต่อเดี่ยวแบบมัลติเพล็กซ์เพื่อให้สามารถส่งคำขอหลายรายการบนการเชื่อมต่อเดียวได้ นอกจากนี้ยังบีบอัดข้อมูลส่วนหัวก่อนส่งออกในรูปแบบไบนารีและรองรับการเชื่อมต่อ SSL ไปยังไคลเอ็นต์อีกด้วย

ALB สามารถกำหนดเส้นทางและการกระจายภาระงานการรับส่งข้อมูล gRPC ระหว่างไมโครเซอร์วิส หรือระหว่างไคลเอ็นต์และบริการที่เปิดใช้งาน gRPC ซึ่งจะช่วยให้สามารถริเริ่มการจัดการการรับส่งข้อมูล gRPC ในสถาปัตยกรรมได้อย่างราบรื่นโดยไม่ต้องเปลี่ยนโครงสร้างพื้นฐานใด ๆ ในลูกค้าหรือบริการของลูกค้า gRPC ใช้ HTTP/2 สําหรับการขนส่งและได้มาเป็นโปรโตคอลทางเลือกสําหรับการสื่อสารระหว่างบริการในสถาปัตยกรรมไมโครเซอร์วิส โดยมีคุณสมบัติต่างๆ เช่น การซีเรียลไรซ์ไบนารีที่มีประสิทธิภาพและการรองรับในหลายภาษานอกเหนือจากประโยชน์ที่มีอยู่ของ HTTP/2 เช่น รอยเท้าเครือข่ายที่เบากว่า การบีบอัด และการสตรีมแบบสองทิศทาง ซึ่งทําให้ดีกว่าโปรโตคอลแบบเดิมอย่าง REST

คุณสามารถสร้าง HTTPS Listener ซึ่งใช้การเชื่อมต่อที่เข้ารหัส (หรือที่เรียกว่าลดภาระ SSL) คุณลักษณะนี้เปิดใช้งานการเข้ารหัสการรับส่งข้อมูลระหว่างโหลดบาลานเซอร์และไคลเอ็นต์ที่เริ่มเซสชัน SSL หรือ TLS Application Load Balancer รองรับการสิ้นสุดเซสชัน TLS ของไคลเอ็นต์ ซึ่งจะช่วยให้คุณสามารถถ่ายโอนงานการสิ้นสุด TLS ไปยังโหลดบาลานเซอร์ พร้อมกับรักษาที่อยู่ IP ต้นทางสําหรับแอปพลิเคชันแบ็คเอนด์ของคุณ คุณสามารถเลือกจากนโยบายความปลอดภัยที่กําหนดไว้ล่วงหน้าสําหรับ TLS Listener ของคุณ เพื่อให้เป็นไปตามมาตรฐานการปฏิบัติตามข้อกําหนดและความปลอดภัย สามารถใช้ AWS Certificate Manager (ACM) หรือ AWS Identity and Access Management (IAM) เพื่อจัดการใบรับรองเซิร์ฟเวอร์ของคุณได้

คุณสามารถใช้ SNI เพื่อให้บริการเว็บไซต์ที่ปลอดภัยหลายเว็บไซต์โดยใช้ TLS Listener เดียว หากชื่อโฮสต์ในไคลเอ็นต์ตรงกับใบรับรองหลายใบ โหลดบาลานเซอร์จะเลือกใบรับรองที่ดีที่สุดที่จะใช้ตามอัลกอริธึมการเลือกอัจฉริยะ

Sticky Session คือ กลไกในการกำหนดเส้นทางคำขอจากไคลเอ็นต์เดียวกันไปยังเป้าหมายเดียวกัน Application Load Balancer รองรับทั้งคุกกี้ตามระยะเวลาและคุกกี้ตามแอปพลิเคชัน กุญแจสําคัญในการจัดการ Sticky Session คือ การกําหนดระยะเวลาที่โหลดบาลานเซอร์ควรกําหนดเส้นทางคําขอของผู้ใช้ไปยังเป้าหมายเดียวกันอย่างสม่ำเสมอ Sticky Session จะเปิดใช้งานในระดับกลุ่มเป้าหมาย คุณสามารถใช้การผสมผสานระหว่างการติดตามระยะเวลา การติดตามแอปพลิเคชัน และไม่มีการติดในทุกกลุ่มเป้าหมายของคุณได้

Application Load Balancer รองรับโปรโตคอลอินเทอร์เน็ตแบบเนทีฟ เวอร์ชัน 6 (IPv6) ใน VPC ซึ่งจะช่วยให้ไคลเอ็นเชื่อมต่อกับ Application Load Balancer ผ่าน IPv4 หรือ IPv6 ได้

Application Load Balancer ใส่ตัวระบุส่วนหัว HTTP แบบกำหนดเองใหม่ซึ่งเรียกว่า “X-Amzn-Trace-Id” ในคำขอทั้งหมดที่เข้าไปยังโหลดบาลานเซอร์ การสืบค้นคำขอช่วยให้คุณติดตามคำขอตาม ID ที่ไม่ซ้ำกันได้เมื่อส่งคำขอไปยังบริการต่างๆ ที่มีการรับส่งข้อมูลจำนวนมากในเว็บไซต์และแอปพลิเคชันที่จัดจำหน่ายของคุณ คุณสามารถใช้ตัวระบุการสืบค้นที่ไม่ซ้ำกันเพื่อดูข้อมูลปัญหาเรื่องประสิทธิภาพหรือระยะเวลาใด ๆ ในแอปพลิเคชันของคุณด้านรายละเอียดของคำขอแต่ละรายการ

Application Load Balancer สามารถเปลี่ยนเส้นทางคำขอที่ได้รับจาก URL หนึ่งไปยังอีก URL ได้ คุณสมบัตินี้ประกอบด้วยความสามารถในการเปลี่ยนเส้นทางคำขอ HTTP เป็น HTTPS ซึ่งช่วยให้คุณบรรลุเป้าหมายด้านการปฏิบัติตามข้อกำหนดในการทำให้การเรียกดูมีความปลอดภัย ในขณะเดียวกันก็สามารถบรรลุอันดับการค้นหาที่สูงขึ้นและคะแนน SSL/TLS ของเว็บไซต์ที่สูงขึ้นได้ คุณยังสามารถใช้การเปลี่ยนเส้นทางเพื่อส่งผู้ใช้ไปยังเว็บไซต์ต่างๆ เช่น การเปลี่ยนเส้นทางจากแอปพลิเคชันเวอร์ชันเก่าไปยังเวอร์ชันใหม่

Application Load Balancer สามารถควบคุมว่าคำขอของไคลเอ็นต์ใดที่แอปพลิเคชันของคุณจะให้บริการ คุณสมบัตินี้ช่วยให้คุณตอบสนองต่อคำขอที่ได้รับด้วยรหัสการตอบสนองต่อข้อผิดพลาดของ HTTP และข้อความแสดงข้อผิดพลาดแบบกำหนดเองจากโหลดบาลานเซอร์ได้โดยไม่ต้องส่งต่อคำขอไปยังแอปพลิเคชัน

WebSockets ช่วยให้เซิร์ฟเวอร์แลกเปลี่ยนข้อความแบบเรียลไทม์กับผู้ใช้ปลายทางได้โดยที่ผู้ใช้ปลายทางไม่ต้องส่งคำขอ (หรือการสำรวจ) ไปยังเซิร์ฟเวอร์เพื่อการอัปเดต โปรโตตอล WebSockets ยังมอบช่องทางการสื่อสารทางตรงแบบสองทิศทางระหว่างไคลเอ็นต์และเซิร์ฟเวอร์ระหว่างการเรียกใช้การเชื่อมต่อ TCP ที่ยาวนานได้อีกด้วย

Server Name Indication (SNI) คือส่วนเสริมของโปรโตคอล TLS ซึ่งไคลเอ็นต์ระบุชื่อโฮสต์เพื่อเชื่อมต่อในช่วงเริ่มต้นแฮนด์เชค TLS โหลดบาลานเซอร์สามารถแสดงใบรับรองได้หลายรายการผ่าน Listener เดียวกันที่ปลอดภัย ซึ่งช่วยให้สามารถรองรับเว็บไซต์ที่ปลอดภัยหลายเว็บไซต์ได้โดยใช้ Listener ที่ปลอดภัยรายการเดียว Application Load Balancer ยังรองรับอัลกอริธึมการเลือกใบรับรองอัจฉริยะด้วย SNI หากชื่อโฮสต์ที่ระบุโดยไคลเอ็นต์ตรงกับใบรับรองหลายรายการ โหลดบาลานเซอร์จะเลือกใบรับรองที่ดีที่สุดเพื่อใช้งานตามปัจจัยหลายประการซึ่งรวมถึงความสามารถของไคลเอ็นต์

คุณสามารถกระจายภาระงานของแอปพลิเคชันใด ๆ ที่โฮสต์ไว้ใน AWS หรือระบบภายในโดยใช้ที่อยู่ IP ของแบ็คเอนด์แอปพลิเคชันเป็นเป้าหมายได้ การดำเนินการนี้ช่วยให้สามารถกระจายภาระงานไปยังแบ็คเอนด์แอปพลิเคชันที่โฮสต์บนที่อยู่ IP และอินเทอร์เฟซใด ๆ บนอินสแตนซ์ได้ แอปพลิเคชันแต่ละรายการที่โฮสต์ไว้ในอินสแตนซ์เดียวกันสามารถมีกลุ่มรักษาความปลอดภัยที่เชื่อมโยงและใช้พอร์ตเดียวกันได้ คุณยังสามารถใช้ที่อยู่ IP เป็นเป้าหมายเพื่อกระจายภาระงานของแอปพลิเคชันที่โฮสต์ไว้ภายใน (ผ่าน Direct Connect หรือการเชื่อมต่อ VPN), VPC และ EC2-Classic ที่จับคู่ (โดยใช้ ClassicLink) ความสามารถในการกระจายภาระงานทั่ว AWS และทรัพยากรภายในต่างๆ ช่วยให้คุณย้ายไปยังระบบคลาวด์ ขยายไปยังระบบคลาวด์ หรือใช้ระบบคลาวด์สำรองเพื่อกู้คืนข้อมูลได้

Application Load Balancer รองรับการร้องขอฟังก์ชัน Lambda เพื่อแสดงคำขอ HTTP(s) ที่ช่วยให้ผู้ใช้เข้าถึงแอปพลิเคชันไร้เซิร์ฟเวอร์ได้จากไคลเอนต์ HTTP ใด ๆ ที่ใช้เว็บเบราว์เซอร์ คุณสามารถลงทะเบียนใช้ฟังก์ชัน Lambda เป็นเป้าหมายสำหรับโหลดบาลานเซอร์ และใช้ประโยชน์จากการสนับสนุนดังกล่าวสำหรับกฎการกำหนดเส้นทางแบบอิงตามเนื้อหา เพื่อกำหนดเส้นทางคำขอไปยังฟังก์ชัน Lambda อื่น ๆ ได้ คุณสามารถใช้ Application Load Balancer เป็นตำแหน่งข้อมูล HTTP ปกติสำหรับแอปพลิเคชันที่ใช้การประมวลผลแบบมีเซิร์ฟเวอร์และไร้เซิร์ฟเวอร์ได้ คุณสามารถสร้างทั้งเว็บไซต์ได้โดยใช้ฟังก์ชัน Lambda หรือผสมผสานอินสแตนซ์ EC2 คอนเทนเนอร์ เซิร์ฟเวอร์ภายในองค์กร และฟังก์ชัน Lambda เพื่อสร้างแอปพลิเคชันต่างๆ ได้

หากแอปพลิเคชันของคุณประกอบด้วยบริการหลายบริการ Application Load Balancer สามารถกําหนดเส้นทางคําขอไปยังบริการตามเนื้อหาของคําขอ เช่น ช่องโฮสต์, เส้นทาง URL, ส่วนหัว HTTP, วิธี HTTP, สตริงการสืบค้น หรือที่อยู่ IP ต้นทาง

การกำหนดเส้นทางแบบอิงตามโฮสต์ : คุณสามารถกำหนดเส้นทางคำขอของไคลเอ็นต์ตามช่องโฮสต์ของส่วนหัว HTTP ซึ่งจะช่วยให้คุณกำหนดเส้นทางไปยังโดเมนต่างๆ จากโหลดบาลานเซอร์ได้

การกำหนดเส้นทางแบบอิงตามเส้นทาง : คุณสามารถกำหนดเส้นทางคำขอของไคลเอ็นต์ตามเส้นทาง URL ของส่วนหัว HTTP ได้

การกำหนดเส้นทางแบบอิงตามส่วนหัว HTTP : คุณสามารถกําหนดเส้นทางคําขอไคลเอ็นต์ตามค่าของส่วนหัว HTTP แบบมาตรฐานหรือแบบกําหนดเองได้

การกำหนดเส้นทางแบบอิงตามวิธี HTTP : คุณสามารถกําหนดเส้นทางคําขอไคลเอ็นต์ตามวิธี HTTP แบบมาตรฐานหรือแบบกําหนดเองได้

การกําหนดเส้นทางแบบอิงตามพารามิเตอร์สตริงการสืบค้น : คุณสามารถกําหนดเส้นทางคําขอไคลเอ็นต์ตามสตริงการสืบค้นหรือพารามิเตอร์การสืบค้น

การกําหนดเส้นทางแบบอิงตาม CIDR ของที่อยู่ IP ต้นทาง : คุณสามารถกําหนดเส้นทางคําขอไคลเอ็นต์ตาม CIDR ที่อยู่ IP ต้นทาง จากจุดที่คำขอเกิดขึ้น

Application Load Balancer มอบการสนับสนุนคอนเทนเนอร์ที่เพิ่มขึ้นด้วยการกระจายภาระงานข้ามพอร์ตต่างๆ บน Amazon EC2 อินสแตนซ์เดียว การผสานรวมกับ Amazon Elastic Container Service (ECS) ให้บริการคอนเทนเนอร์ที่มีการจัดการอย่างเต็มที่ ECS ช่วยให้คุณระบุพอร์ตแบบไดนามิกในการสร้างข้อกำหนดงาน ECS ได้ โดยให้พอร์ตที่ไม่มีการใช้งานแก่คอนเทนเนอร์เมื่อมีการกำหนดเวลาไว้บนอินสแตนซ์ EC2 ตัวกำหนดเวลา ECS จะเพิ่มงานไปยังโหลดบาลานเซอร์ที่ใช้พอร์ตนี้โดยอัตโนมัติ

ตอนนี้คุณสามารถใช้ AWS WAF เพื่อปกป้องเว็บแอปพลิเคชันบน Application Load Balancer ได้แล้ว AWS WAF เป็นไฟร์วอลล์เว็บแอปพลิเคชันที่ช่วยปกป้องเว็บแอปพลิเคชันจากการโจมตีเว็บที่พบบ่อยซึ่งอาจส่งผลกระทบต่อความพร้อมใช้งานของแอปพลิเคชัน ลดระดับการรักษาความปลอดภัย หรือใช้ทรัพยากรมากเกินไป

Application Load Balancer รองรับอัลกอริธึมการกระจายภาระงานแบบ Round Robin นอกจากนี้ Application Load Balancer ยังรองรับโหมดการเริ่มต้นช้าด้วยอัลกอริธึมแบบ Round Robin ซึ่งช่วยให้คุณเพิ่มเป้าหมายใหม่ได้โดยไม่ทำให้เป้าหมายใหม่ได้รับคำขอมากเกินไป ด้วยโหมดการเริ่มต้นช้า เป้าหมายจะได้รับการอุ่นเครื่องก่อนที่จะรับส่วนแบ่งคำขอที่เหมาะสมตามระยะเวลาการเรียนรู้ที่คุณกำหนด การเริ่มต้นช้าเป็นสิ่งที่มีประโยชน์มากสำหรับแอปพลิเคชันที่ต้องใช้แคชและต้องการระยะเวลาอุ่นเครื่องก่อนที่จะสามารถตอบสนองต่อคำขอในประสิทธิภาพที่เหมาะสมได้

คุณสามารถลดภาระงานของฟังก์ชันการยืนยันตัวตนผู้ใช้จากแอปพลิเคชันของคุณไปยัง Application Load Balancer ได้ Application Load Balancer จะตรวจสอบตัวตนผู้ใช้อย่างปลอดภัยเมื่อพวกเขาเข้าถึงแอปพลิเคชันในระบบคลาวด์ Application Load Balancer ได้รับการผสานการทำงานเข้ากับ Amazon Cognito อย่างราบรื่น ซึ่งจะช่วยให้ผู้ใช้ปลายทางสามารถตรวจสอบสิทธิ์ผ่านผู้ให้บริการข้อมูลประจำตัวทางสังคม เช่น Google, Facebook และ Amazon รวมทั้งผ่านผู้ให้บริการข้อมูลประจำตัวทางองค์กร เช่น Microsoft Active Directory ผ่าน SAML หรือผู้ให้บริการข้อมูลประจำตัวที่เป็นไปตามข้อกำหนดของ OpenID Connect (IdP) หากคุณมีโซลูชัน IdP แบบกำหนดเองอยู่แล้วซึ่งใช้กับ OpenID Connect ได้ Application Load Balancer จะสามารถตรวจสอบตัวตนผู้ใช้แบบองค์กรได้โดยการเชื่อมต่อกับผู้ให้บริการข้อมูลประจำตัวของคุณโดยตรง