2010-01-08 36 views
6

Trên máy chủ ứng dụng trong đó một vài tệp nguồn thay đổi thường xuyên, Phương pháp sau có được đề xuất không?AWS EC2- Đồng bộ hóa các tệp mã nguồn với S3 - đây có phải là phương pháp thích hợp không?

Sử dụng lệnh cron với S3tools để đồng bộ hóa tệp nguồn với thùng riêng tư S3 (mỗi 15 phút chẳng hạn).

Khi khởi động máy chủ - Sử dụng tập lệnh dữ liệu người dùng để đồng bộ hóa với nhóm nguồn để truy xuất các nguồn mới nhất.

Ưu điểm: 1. Không cần đính kèm EBS cho máy chủ ứng dụng chỉ để lưu một vài tệp 2. Thiết lập tương tự cho tất cả máy chủ ứng dụng 3. Nguồn tự động sao lưu. 4. Là sản phẩm phụ, tự động phân phối mã cho nhiều máy chủ ứng dụng.

Nhược điểm: giữ mã nguồn trên S3 khác?

Bạn nghĩ gì về phương pháp này? Đây có phải là cách thích hợp để sử dụng EC2 khi mã nguồn thay đổi thường xuyên (một vài lần trong ngày), vui lòng giới thiệu phương pháp tốt nhất để chạy các phiên bản EC2 nơi các nguồn thay đổi thường xuyên.

Trả lời

2

Nếu bạn sắp chạy một số lượng lớn phiên bản EC2, thì sẽ ít nỗ lực hơn để chúng tự đồng bộ hóa với vị trí trung tâm (tức là bạn đồng bộ hóa với nhóm riêng tư, đồng bộ hóa ứng dụng từ máy chủ đó).

HÃY BAO GIỜ, nhận ra rằng bản cập nhật cho thùng S3 chỉ nguyên tử ở cấp đối tượng và quan trọng hơn là không được đảm bảo ngay lập tức (mặc dù tôi nhớ lại một ghi chú gần đây rằng điểm cuối phía tây của chúng tôi cung cấp read- tính nhất quán sau khi ghi).

Điều này có nghĩa là máy chủ ứng dụng của bạn có thể tải một tập hợp các tệp mới không nhất quán trong nội bộ - một số sẽ cũ, một số sẽ là mới. Nếu đây là vấn đề đối với bạn, thì bạn nên triển khai sơ đồ tải trực tiếp lên máy chủ ứng dụng và đảm bảo tính nhất quán của changeset (có thể bằng cách tải lên thư mục tạm thời sau đó được đổi tên).

+0

Cảm ơn, tôi không quan tâm vì đã đọc sau khi viết tính nhất quán. ghi vào S3 sẽ chỉ xảy ra sau khi thay đổi tập tin mã trong khi chạy cron sao cho nó không phải cái gì đó sẽ xảy ra trong cùng thời gian máy chủ khởi động lại và yêu cầu phải đồng bộ các nguồn trở lại máy chủ. Thực tiễn tốt nhất để đạt được sự tồn tại của mã nguồn trong máy chủ ứng dụng trên EC2 là gì? – Nir

4

Tôi nghĩ bạn nên sử dụng kho lưu trữ mã nguồn thích hợp, như Subversion hoặc Git, thay vì lưu trữ các tệp nguồn trên S3. Bằng cách đó bạn có thể có một vị trí trung tâm cho các tập tin nguồn trong khi tránh các vấn đề nhất quán cập nhật mà kdgregory đã đề cập.

Bạn có thể đặt kho lưu trữ nguồn trên một trong các máy chủ của riêng bạn bên ngoài EC2 hoặc lưu trữ nó trên phiên bản EC2 (đảm bảo tệp kho lưu trữ trên ổ EBS trong trường hợp sau).

+0

Tôi không muốn liên quan đến máy chủ bên ngoài trong quá trình thiết lập. Tôi muốn có một thiết lập đáng tin cậy đơn giản, trong đó hệ thống sẽ tự động lấy lại hình dạng nếu có điều gì đó xảy ra. Việc thêm một máy chủ bên ngoài sẽ mất đi sự quyến rũ của sự đơn giản và làm cho hệ thống bị thất bại bởi một nhà cung cấp khác. – Nir

+0

+1 để sử dụng kiểm soát nguồn, thay vì chỉ ghi đè lên các tệp trong S3. Điều gì sẽ xảy ra nếu bạn muốn quay lại phiên bản trước? Cá nhân, tôi không nghĩ rằng việc lưu trữ mã nguồn trong kho lưu trữ git riêng (được lưu trữ trên github, nói) có nhiều khả năng thất bại hơn so với lưu trữ nó trong một thùng s3. Cả dịch vụ sẽ không xuống sớm bất cứ lúc nào, và nếu có, bạn chắc chắn sẽ biết về nó. –

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