Điểm:1

Lời khuyên về kiến ​​trúc AWS - nhiều phiên bản EC2 với hệ thống tệp/cơ sở dữ liệu dùng chung với khởi động và dừng động

lá cờ cn

Tôi rất mới về kiến ​​trúc đám mây nhưng có kinh nghiệm phát triển ứng dụng tốt. Hiện tại, tôi đang trong quá trình tạo ra một quy trình tính toán lớn có thể truy cập dễ dàng hơn đối với 5-10 người dùng thông qua một ứng dụng web và tôi đang thiết lập tất cả điều này trong AWS.

Triển khai hiện tại của tôi là một ứng dụng web React nhẹ sử dụng hai API và phụ trợ MySQL cho phép người dùng xếp hàng công việc với các tham số và truy cập kết quả cuối cùng thông qua ứng dụng web hoặc từ email được gửi cho người dùng sau khi chạy xong.

Ở giữa quy trình này là sự phụ thuộc vào một phần mềm độc quyền cần một cỗ máy rất nặng để tính toán các bước này (ram 64GB, 16 lõi, ổ cứng 1TB) và có thể chạy trong tối đa 1,5 ngày chỉ với một bước này. Đây là cổ chai lớn nhất của tôi trong toàn bộ đường ống.

Để tiết kiệm chi phí nhiều nhất có thể, tôi đang cố gắng làm cho nút cổ chai/phần dịch vụ có thể mở rộng/hiệu quả về chi phí bằng cách bật nhiều "tác nhân" phiên bản EC2, chạy các bước, gửi email, viết thư lên web cơ sở dữ liệu ứng dụng, sau đó dừng phiên bản thông qua các hàm lambda AWS sẽ được kích hoạt bởi một hành động từ ứng dụng web.

Tôi đang lên kế hoạch lưu trữ một phiên bản EC2 cho ứng dụng web, 2 API và máy chủ MySQL vì tính đồng thời/khả năng mở rộng trên phần này rất nhỏ. Tôi cũng sẽ có 1-3 trường hợp khác cho các dịch vụ thắt cổ chai để chia sẻ các lần chạy đồng thời từ 5-10 người dùng, điều này có thể cho phép tối đa 3 lần chạy bước nặng diễn ra cùng một lúc.

Vì các dịch vụ nút cổ chai yêu cầu các tệp tương tự để chạy chương trình và đầu vào cho các bước này đôi khi có thể có kích thước tệp là 150 GB, tôi đang nghĩ đến việc sử dụng bộ lưu trữ EFS hoặc S3 để giữ đầu vào để tôi chỉ phải lo lắng về việc chuyển đầu vào các tệp vào một nơi có thể được chia sẻ trên các phiên bản EC2 và tôi không cần đảm bảo rằng chúng đã bắt đầu thực hiện bước chuyển. Đây là một phần thủ công mà tôi cũng chưa tìm ra cách tốt để tự động hóa hơn vì kích thước tệp quá lớn.

Câu hỏi của tôi là thiết lập của tôi có hợp lý không và bạn có thấy bất kỳ lỗ hổng nào trong ý tưởng triển khai của tôi không? Hiện tại, tôi đang sử dụng bộ lưu trữ EBS cho các phiên bản dịch vụ nhưng tôi muốn giảm thiểu vị trí đầu vào cho 150GB chuyển/bảo trì. Tôi cũng không chắc về sự khác biệt giữa S3 và EFS vì dường như cả hai đều có thể gắn đa phiên bản, nhưng tôi nên sử dụng phiên bản nào? Và có hợp lý không khi giữ ứng dụng web, api và cơ sở dữ liệu trên một phiên bản EC2 nếu tôi cần các dịch vụ có thể ghi vào cơ sở dữ liệu sau khi hoàn thành? Trường hợp đó sẽ luôn luôn diễn ra.

Cảm ơn sự giúp đỡ của bạn và tha thứ cho tôi nếu tôi đã nói bất cứ điều gì ngây thơ.

Điểm:0
lá cờ la

Thiết lập của bạn nghe có vẻ hợp lý. Tôi có thể khuyên bạn nên xem xét việc có một Cổng API để "lưu trữ" API của bạn và suy nghĩ kỹ xem nó có phù hợp với bạn không. Bạn cũng có thể cân nhắc để các phiên bản EC2 tải nặng của mình trong Nhóm Tự động thay đổi quy mô và để Lambda kiểm soát của bạn tương tác với phiên bản đó thay vì trực tiếp với các phiên bản.

S3 và EFS là các giải pháp lưu trữ dữ liệu khác nhau. S3 là lưu trữ đối tượng trong khi EFS là lưu trữ tệp. S3 không thể gắn kết chính xác mặc dù nó có thể được trình bày như thể nó thông qua các tiện ích khác nhau. Cho dù đó là Chính xác để sử dụng S3 hoặc EFS tùy thuộc vào cách bạn đang sử dụng các tệp bạn có trên đó.

Đối với cơ sở dữ liệu của mình, bạn có thể cân nhắc chuyển sang RDS, có thể bằng cách sử dụng lớp phiên bản có thể bùng nổ hoặc một trong các tùy chọn không có máy chủ. Nhưng điều này sẽ phụ thuộc vào ngân sách và trường hợp sử dụng của bạn.

Nonchalahnt avatar
lá cờ cn
Cảm ơn bạn rất nhiều vì điều này, đây là tất cả những ý tưởng hay để tôi khám phá thêm và làm rõ. Về sự khác biệt của S3/EFS, tôi đã nghiên cứu một chút về những điều này và hiểu biết hiện tại của tôi là lưu trữ đối tượng rất tốt cho các trang web lớn hơn để chứa các loại tài nguyên như ảnh/video. Các tệp đầu vào của tôi thực sự chỉ là các tệp văn bản có định dạng rất lớn (~ 60 GB) và các chương trình tải nặng đang đọc những tệp này để thực hiện công việc của chúng. Điều đó khiến tôi nghĩ rằng EFS được ưa thích hơn do chia sẻ không gian đó, tuy nhiên một số bài viết nói rằng lưu trữ đối tượng tốt hơn với các tệp lớn hơn? Cảm ơn!
Điểm:0
lá cờ gp
Tim

Nói chung, trên đám mây, bạn nên thử sử dụng các dịch vụ thay vì máy chủ. Bạn phải để mắt đến chi phí, nhưng nó có thể làm cho các giải pháp trở nên mạnh mẽ hơn, nhanh hơn và tuân thủ hơn.

Tôi có một vài suy nghĩ về khối lượng công việc của bạn:

  • Bạn có thể sử dụng một trình điều phối như các hàm AWS Step gọi nhiều hàm lambda AWS để thực hiện tính toán không? Tôi lưu ý rằng lambda có lẽ là thời gian tính toán đắt nhất trên AWS, vì vậy có thể không lý tưởng. Với các giới hạn được đặt đúng và khối lượng công việc phù hợp, bạn có thể bắt đầu 10.000 lambda và thực hiện công việc song song trong 15 phút.
  • Thay vì EFS/S3, làm thế nào về việc tạo một hình ảnh EC2 vàng/AMI sau đó cho mỗi công việc tạo ra một phiên bản EC2 tại chỗ/động đủ lớn để thực hiện xử lý cho một công việc đó ngừng hoạt động khi hoàn thành? Lambda có thể sắp xếp công việc dựa trên một số loại sự kiện không? Điều đó sẽ tránh được phí truyền dữ liệu - mặc dù không chắc liệu chúng có được tính cho EBS/S3 hay không. Điện toán Spot khá rẻ và nếu bạn chọn kích thước khu vực/AZ/phiên bản chính xác thì sẽ hiếm khi xảy ra gián đoạn. Các phiên bản bị gián đoạn sẽ bị tắt và ổ đĩa EBS được giữ lại, vì vậy, điều này sẽ hoạt động tốt hơn nếu công việc của bạn được ghi vào đĩa thường xuyên và có thể được khởi động lại.

Có lẽ tôi cũng sẽ dành thời gian để tối ưu hóa công việc to lớn đó.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.