2012-03-06 13 views
5

Tôi mới sử dụng EC2. Tôi đã đọc rất nhiều về nó, xem nhiều video và hướng dẫn và khá quen thuộc với cách mọi thứ hoạt động. Tôi vẫn có vài câu hỏi mà tôi dường như không thể tìm thấy câu trả lời trực tiếp.Làm cách nào để có được cân bằng tải EC2 được thiết lập đúng cách để cho phép đồng bộ hóa tệp thời gian thực?

Nếu tôi có 3 phiên bản (linux) với cân bằng tải tất cả phục vụ cùng một trang web và trang web là một php động/mysql điều hướng nơi người dùng đăng các chuỗi diễn đàn mỗi giây, cơ sở dữ liệu và tệp được đồng bộ hóa với tất cả 3 trường hợp như thế nào trong thời gian thực.

  1. Tôi có cần phải có cơ sở dữ liệu trên RDS trong đó mọi trường hợp chỉ đơn giản là trỏ đến nó.
  2. Cách sử dụng tệp của người dùng. Nếu người dùng tải lên một tệp vào trang web, thì tệp này sẽ có sẵn ngay lập tức trên tất cả các phiên bản ngay lập tức, điều này có thể thực hiện được như thế nào. Tôi không nghĩ rằng có 3 bản sao trên 3 trường hợp là rất thực tế.
  3. Nếu tôi sửa đổi trang web, giả sử thay đổi thứ gì đó trong tệp CSS, làm cách nào để đồng bộ hóa các thay đổi cho tất cả các phiên bản.
  4. Làm thế nào để EBS hoặc S3 đóng một vai trò trong tất cả điều này.

Trả lời

7

Tôi có cần phải có cơ sở dữ liệu trên RDS trong đó mọi trường hợp chỉ đơn giản là trỏ đến nó.

Đó là một tùy chọn hoặc bạn có thể khởi động một phiên bản khác để ngồi sau máy chủ ứng dụng, đặt MySQL lên đó và kết nối với tất cả. Một điều cần lưu ý, hãy chắc chắn để kết nối qua mạng nội bộ bằng cách sử dụng ip riêng và đảm bảo rằng tất cả các bảo mật của bạn là chặt chẽ.

Làm thế nào về tệp người dùng. Nếu người dùng tải lên một tệp vào trang web, thì tệp này sẽ có sẵn ngay lập tức trên tất cả các trường hợp ngay lập tức, điều này có thể thực hiện được như thế nào. Tôi không nghĩ rằng có 3 bản sao trên 3 trường hợp là rất thực tế.

Không có điều đó là không thực tế. Bạn có thể tải nó lên phiên bản db phụ trợ mà tất cả chúng đều có quyền truy cập, nhưng thực sự bạn nên tải nó lên S3 trong một thùng mà tất cả các cá thể của bạn có thể sử dụng với s3tools hoặc một cái gì đó.

Nếu tôi sửa đổi trang web, giả sử thay đổi thứ gì đó trong tệp CSS, cách tôi đồng bộ hóa các thay đổi cho tất cả các phiên bản.

Git. (hoặc svn) Nhưng bạn có thể sử dụng cloudfront cho các tệp JS và CSS của bạn .... không phải là một ý tưởng tồi. Và sử dụng một xô S3 làm nguồn của bạn ...

Làm thế nào để EBS hoặc S3 đóng một vai trò trong tất cả điều này.

Cơ sở dữ liệu của bạn phải luôn có khối lượng ebs để bạn không bị mất. S3 có thể được sử dụng để chia sẻ và lưu trữ các tập tin giá rẻ và dễ dàng trên toàn bộ môi trường của bạn.

+0

đây là một vài liên kết để trợ giúp: http://stackoverflow.com/a/8919031/667608 http://stackoverflow.com/a/9133243/667608 – chantheman

+0

Cảm ơn bạn đã tóm tắt. 1. Ý bạn là gì khi bạn nói chắc chắn rằng tất cả an ninh đều chặt chẽ. Bạn có thể giải thích về điều đó không. Có lợi thế để có mysql trên một thể hiện thay vì RDS. 2. Tất cả các tập tin người dùng được lưu trữ trong một directoy gọi là userfiles. Nếu tôi sử dụng S3 những gì nên tập tin đích đến. Tôi có cần gắn S3 làm ổ đĩa không. Làm thế nào được thực hiện. – Hussein

+0

Không, RDS có lợi thế so với một cá thể đơn lẻ. Nó cho phép bạn mở rộng DB của bạn trên các phiên bản. Nhưng bởi vì nó là công khai, bạn cần phải đảm bảo an ninh của nó là chặt chẽ. Tương tự, bạn có thể sử dụng S3 theo cách tương tự như đã đề cập trong câu trả lời. Tất cả phải mất là [một nghiên cứu nhỏ] (https://forums.aws.amazon.com/thread.jspa?threadID=39361) về phía bạn ... –

0

Trong hầu hết các trường hợp, bạn có thể có một phiên bản RDS mà tất cả 3 cá thể ec2 kết nối. Nếu bạn có một ứng dụng cơ sở dữ liệu rất quan hệ đòi hỏi, bạn có thể xem xét sao chép cơ sở dữ liệu.

0

Sử dụng S3 là một cách để đồng bộ hóa tệp của bạn. Bạn phải viết mã mà mọi ảnh tải lên (ví dụ) sẽ được chuyển vào thùng S3 của bạn.Nhưng tất nhiên là trường hợp 3 của bạn sẽ có thể truy cập nó.

Một giải pháp khác là có một hệ thống tệp được chia sẻ, trong đó bạn chia sẻ thư mục với 3 trường hợp. Giải pháp có thể cho điều này là NFS hoặc GlusterFS.

Đối với RDS, tôi nghĩ rằng không có vấn đề gì bạn có thể sử dụng một DB duy nhất cho 3 trường hợp. Hãy cho tôi biết nếu điều này có ích.

Các vấn đề liên quan