วิธีการ: Dockerized การจำลองแบบ MongoDB บนบริการคอนเทนเนอร์แบบยืดหยุ่น


10

ฉันมีแอพ Node.js พร้อมกับฐานข้อมูล MongoDB ที่ทำงานบน AWS ECS การตั้งค่าที่ฉันได้รับในปัจจุบันนั้นประกอบไปด้วย 2 ELB และ 2 อินสแตนซ์ที่รันแต่ละคอนเทนเนอร์ Docker พร้อมบริการที่กำหนด (โหนด / Mongo):

Elastic Load Balancer -> Dockerized Node -> Elastic Load Balancer -> Dockerized MongoDB

ฉันใช้อิมเมจ Docker อย่างเป็นทางการสำหรับ MongoDB แล้วที่นี่: https://registry.hub.docker.com/_/mongo/

พอยน์เตอร์ใด ๆ เกี่ยวกับวิธีที่ฉันจะสามารถปรับใช้ replicaSet สำหรับ MongoDB โดยใช้ Docker และ ECS แต่ละเรพลิกาจะทำงานบนอินสแตนซ์อื่น

คำตอบ:


2

อย่าเทียบฐานข้อมูล คอนเทนเนอร์นักเทียบท่ามีไว้เพื่อเป็นชั่วคราวและไม่เก็บข้อมูล ไม่เหมาะสมสำหรับฐานข้อมูล

โดยเฉพาะอย่างยิ่งไม่พยายามที่จะ dockerize คลัสเตอร์ การตั้งค่าสำหรับชุดแบบจำลองมีสถานะที่ซับซ้อนมาก คุณต้องเรียกใช้คำสั่งจำนวนมากในการสั่งซื้อและเพียงครั้งเดียว หากคุณพลาดคำสั่งใด ๆ หรือถ้าโหนดดับคลัสเตอร์ทั้งหมดอาจล็อกไม่ทำงานและคุณจะถูกบังคับให้เริ่มต้นใหม่

นักเทียบท่ามีความคิดของตัวเองเกี่ยวกับวิธีการทำงานของแอปพลิเคชัน มันจะยากจริงๆที่จะทำให้การทำงานภายใน Docker

ถ้าคุณต้องการคลัสเตอร์ที่มี 3 เรพลิคาคุณควรรับอินสแตนซ์ 3 AWS และตั้งค่า MongoDB บนอินสแตนซ์ ค้นหาmongodb setting up a replica set on <OS>ใน Google ที่จะช่วยให้คุณได้รับการสอนที่ทันสมัย


2

FireCampทำเช่นนั้น FireCamp สามารถปรับใช้ MongoDB ReplicaSet บน AWS ECS ได้อย่างง่ายดาย 1) ปรับใช้คลัสเตอร์ ECS ด้วยแม่แบบคลาวด์ 2) ปรับใช้ MongoDB ReplicaSet ด้วยคำสั่งเดียว ตรวจสอบ วิกิการติดตั้ง FireCampสำหรับรายละเอียด

เพื่อความปลอดภัยจะดีกว่าหากใช้แอพ Node.js ในคลัสเตอร์ ECS อื่น อินสแตนซ์ EC2 ที่เรียกใช้ MongoDB ไม่ควรสัมผัสกับโลกภายนอก

Elastic Load Balancer ไม่จำเป็นสำหรับแอป Node.js ในการเข้าถึง MongoDB ReplicaSet แบบจำลองทุกอันจะมีชื่อ DNS ที่ไม่เหมือนใคร แอป Node.js สามารถเข้าถึง MongoDB โดยใช้ชื่อ dns

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.