Tôi hiện có khoảng 20 trang web và ứng dụng được lưu trữ trên AWS EC2. Một số có EC2 của riêng họ, trong khi những người khác chia sẻ EC2 với nhiều máy chủ ảo trên EC2 đó.
Mỗi trang web hoàn toàn riêng biệt và không liên quan đến trang web khác. Những cái chia sẻ EC2 thường nhỏ hơn nhiều với ít yêu cầu về lưu lượng/tài nguyên (do đó là máy chủ dùng chung).
Tôi cũng có một máy chủ EC2 được sử dụng đơn giản để chạy các tác vụ theo lô và theo lịch trình cùng với phiên bản trực tiếp của trang web, nhằm đảm bảo trang web trực tiếp vẫn có thể truy cập được ngay cả khi các tác vụ theo lịch trình rất nặng.
Tôi đang tìm cách sử dụng Docker trên toàn bộ môi trường dev > prod của mình để sử dụng tài nguyên máy chủ tốt hơn và di chuyển dễ dàng hơn giữa các môi trường, v.v.
Tôi muốn biết suy nghĩ của bạn về phương pháp hay nhất dành cho phần cứng máy chủ sản xuất.
Tốt nhất là sử dụng một EC2 lớn hơn và có mọi trang web làm vùng chứa docker của riêng nó trên đó? Điều này nghe có vẻ giống như quản trị viên máy chủ ít hơn, thiết lập tổng thể gọn gàng hơn và theo những gì tôi hiểu, mỗi bộ chứa docker vẫn tự giữ cho chính nó theo quan điểm bảo mật. Tuy nhiên, mọi sự cố máy chủ hoặc đột biến tài nguyên sẽ ảnh hưởng đến tất cả các trang web (giảm thiểu bằng bộ cân bằng tải).
Hoặc, tốt nhất là tôi nên chia chúng thành nhiều EC2, tức là trên EC2 trên mỗi bộ chứa docker? Điều này có vẻ hoàn toàn trái ngược với quan điểm của docker, nhưng không chắc liệu tôi có thiếu thứ gì không.
Khi đó, việc sử dụng một EC2 duy nhất cho tất cả các trang web sẽ giúp thiết lập bộ cân bằng tải và/hoặc kiểm soát máy chủ dễ dàng hơn (ít quản trị viên hơn).
Ghi chú; nếu nó tạo ra bất kỳ sự khác biệt nào, tôi sử dụng RDS cho MySQL; không có MySQl nào chạy trực tiếp trên bất kỳ EC2 nào.
Cảm ơn trước