คุณกำลังเผยแพร่เว็บแอปพลิเคชัน / API หรือไม่ ถ้าเป็นเช่นนั้น คุณน่าจะใช้ตัวจัดสรรภาระงานของแอปพลิเคชันมากกว่าตัวจัดสรรภาระงานเครือข่าย NLB มักจะใช้กับแอปพลิเคชันที่ไม่ใช่ http(s) คุณสามารถใช้กับ http(s) ได้ แต่ ALB มักจะเหมาะสมกว่า
ข้อควรพิจารณาในการออกแบบ
ฉันขอแนะนำให้คุณพิจารณาว่าคุณต้องการ IP แบบคงที่จริงๆ หรือไม่ ระบบเดิมหรือระบบฝังตัวบางอย่างอาจต้องการ แต่ส่วนใหญ่ใช้ได้กับที่อยู่ DNS หากคุณต้องการ IP แบบคงที่จริงๆ คุณสามารถใช้ หนึ่งในเทคนิคเหล่านี้ (หรืออื่นๆ ที่คุณพบใน Google) เพื่อให้ ALB เป็น IP แบบคงที่ AWS Global Accelerator จะทำ แต่ฉันไม่แน่ใจว่าจะเป็นทางออกที่ดีสำหรับคุณ คุณต้องคำนึงถึงความพร้อมใช้งานสูงด้วย
เกี่ยวกับ IP แบบคงที่สำหรับรายการที่อนุญาตพิเศษ คุณสามารถพิจารณารับรองความถูกต้องด้วย AWS Cognito ที่รวมเข้ากับ ALB (ดีที่สุด) หรือภายในคอนเทนเนอร์ของคุณ โดยปกติเราจะรวมเข้ากับ Azure AD แต่คุณสามารถกำหนดผู้ใช้/กลุ่มใน Cognito ได้ การรับส่งข้อมูลของผู้ใช้ไปยัง ALB จะได้รับไปยังคอนเทนเนอร์ / เซิร์ฟเวอร์เป้าหมายเท่านั้น หาก Cognito อนุญาตการรับส่งข้อมูล
คำแนะนำหลัก: AWS ALB ที่รวมเข้ากับ AWS Cognito สำหรับการตรวจสอบสิทธิ์ กลุ่มความปลอดภัยรอบๆ ALB ถ้าคุณต้องการ แต่ไม่ต้องการรายการที่อนุญาตพิเศษ
คำถามเดิม
ALB มีกลุ่มความปลอดภัย ตัวจัดสรรภาระงานเครือข่ายไม่มี ทราฟฟิกจะมองไม่เห็น NLB ดังนั้นคุณจึงวางกลุ่มความปลอดภัยไว้รอบๆ ทรัพยากรของคุณ (คอนเทนเนอร์) แทนที่จะเป็นโหลดบาลานซ์
ตัวเลือกรายการที่อนุญาตพิเศษของ ALB IP:
- คุณสามารถอนุญาตสิทธิ์เข้าถึง ALB กับกลุ่มความปลอดภัยได้ แต่คุณไม่สามารถขึ้นบัญชีดำกับกลุ่มความปลอดภัยได้ มีจำนวนกฎสูงสุด แต่ ALB แต่ละอันสามารถแนบ SG ได้หลายตัว แต่ควรระมัดระวังเนื่องจากอาจส่งผลกระทบต่อประสิทธิภาพการทำงาน นี่เป็นคำแนะนำรองของฉันหากคุณไม่ต้องการใช้ Cognito
- คุณสามารถขึ้นบัญชีขาวหรือบัญชีดำได้ด้วย Network Access Control Lists (NACLs)
- คุณสามารถทำบางอย่างภายในคอนเทนเนอร์ด้วยไฟร์วอลล์ในเครื่องได้ แต่ฉันไม่แนะนำอย่างนั้น
ตัวเลือกรายการที่อนุญาต IP ของ NLB:
- กลุ่มความปลอดภัยรอบคอนเทนเนอร์ ECS
- NACL รอบซับเน็ต