Cách thực hiện: Sao chép Docko được sao chép trên dịch vụ container đàn hồi


10

Tôi có ứng dụng Node.js cùng với cơ sở dữ liệu MongoDB chạy trên AWS ECS. Thiết lập mà tôi có hiện tại được hình thành từ 2 ELB và 2 Trường hợp chạy mỗi bộ chứa Docker với dịch vụ được chỉ định (nút / mongo):

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

Tôi đang chạy hình ảnh Docker chính thức cho MongoDB có sẵn tại đây: https://registry.hub.docker.com/_/mongo/

Bất kỳ con trỏ nào về cách tôi có thể triển khai một bản sao cho MongoDB bằng Docker và ECS, mỗi bản sao chạy trên một phiên bản khác nhau?

Câu trả lời:


2

Đừng cập bến cơ sở dữ liệu. Docker container có nghĩa là phù du và không giữ dữ liệu. Điều đó không phù hợp với cơ sở dữ liệu.

Cụ thể, không cố gắng neo đậu một cụm MongoDB . Việc thiết lập cho các bộ bản sao là cực kỳ phức tạp và phức tạp. Bạn phải chạy nhiều lệnh theo thứ tự và chỉ một lần . Nếu bạn bỏ lỡ bất kỳ lệnh nào hoặc nếu một nút tắt, toàn bộ cụm có thể bị khóa chết và bạn sẽ buộc phải bắt đầu lại.

Docker có ý tưởng riêng về cách các ứng dụng nên hoạt động. Sẽ rất khó để thực hiện công việc đó trong Docker.

Nếu bạn muốn một cụm có 3 bản sao, bạn nên lấy 3 phiên bản AWS và thiết lập MongoDB trên các phiên bản. Tìm kiếm mongodb setting up a replica set on <OS>trên Google, điều đó sẽ cung cấp cho bạn một hướng dẫn cập nhật.


2

FireCamp làm điều đó. FireCamp có thể triển khai Bản sao MongoDB trên AWS ECS rất dễ dàng. 1) triển khai cụm ECS với mẫu đám mây, 2) triển khai Bản sao MongoDB bằng một lệnh duy nhất. Kiểm tra wiki cài đặt FireCamp để biết chi tiết.

Để bảo mật, tốt hơn là chạy ứng dụng Node.js trong một cụm ECS khác. Các phiên bản EC2 chạy MongoDB không được tiếp xúc với thế giới bên ngoài.

Bộ cân bằng tải không cần thiết cho ứng dụng Node.js để truy cập Bản sao MongoDB. Mỗi bản sao được một tên dns duy nhất. Ứng dụng Node.js có thể chỉ cần truy cập MongoDB bằng tên dns.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.