Gần đây tôi đã trải qua một lũ lưu lượng trên một ứng dụng Facebook Tôi tạo ra (chủ yếu là vì lợi ích của giáo dục, không phải với bất kỳ mục đích tiếp thị)Kiến trúc của một ứng dụng PHP trên Amazon EC2
Không cần phải nói, tôi đã không suy nghĩ về khả năng mở rộng khi tôi tạo ứng dụng. Tôi hiện đang ở một vị trí mà máy chủ ảo ít ỏi của tôi được MediaTemple lưu trữ không hề cắt nó, và nó thực sự đi xuống đến I/O thô của máy. Kể từ khi dự án này đã được giáo dục với tôi cho đến nay, tôi figured tôi muốn lấy điều này như là một cơ hội để hiểu nền tảng Amazon EC2.
Bản thân ứng dụng được tạo bằng PHP (sử dụng Zend Framework) với chương trình phụ trợ MySQL. Tôi sử dụng ứng dụng bộ nhớ đệm bất cứ nơi nào có thể với memcached. Tôi đã dành cuối tuần chơi xung quanh với EC2, quay lên trường hợp, cài đặt các gói tôi muốn, và gắn một khối lượng EBS cho một ví dụ.
Nhưng bước hợp lý tiếp theo sẽ mang lại kết quả tốt cho khả năng mở rộng là gì? Tôi có kích hoạt một cá thể AMI cho MySQL và một cho dịch vụ Apache không? Hay tôi chỉ cần sao chép các trường hợp ra nhiều lần như tôi cần chúng và sau đó làm một số loại cân bằng tải trên mặt trước? Lý tưởng nhất, tôi muốn có một cơ sở dữ liệu tập trung vì tôi làm thống kê tổng hợp trên tất cả các hàng cơ sở dữ liệu, tuy nhiên, đây không phải là một yêu cầu khó khăn (có thể là một số giải pháp cụ thể của ứng dụng mà tôi có thể giải quyết)
Tôi biết điều này có lẽ không phải là một câu trả lời thẳng về phía trước, vì vậy các ý kiến và đề xuất được hoan nghênh.
Điều này nghe giống như các bước đầu tiên chính xác của tôi để thực hiện. Câu hỏi: có thể kết nối với một số phiên bản EBS không? Tôi nghĩ tôi có thể lưu trữ thư mục/var/www trên máy chủ apache trên EBS và dữ liệu mysql trên máy chủ mysql trên EBS. –
Thật không may là không. Hãy nghĩ về một EBS như một đĩa cứng, nó chỉ có thể được gắn vào một cá thể tại một thời điểm. Bạn có thể sao chép chúng, nhưng EBS nhân bản không nhận được bất kỳ thay đổi hoặc dữ liệu mới nào. Nhiệm vụ của bạn là viết một kịch bản tự động thiết lập các cá thể mới - kiểm tra mã của bạn từ lật đổ, thiết lập apache, thông báo cho bộ cân bằng tải sẵn sàng nhận các yêu cầu. Các dịch vụ như RightScale làm cho phần này dễ dàng hơn, tôi tin. –