EC2 Tự động mở rộng với các trường hợp tại chỗ và theo yêu cầu?


11

Tôi đang tìm cách tối ưu hóa chi phí của các nhóm EC2 tự động mở rộng bằng cách cho họ khởi chạy các thể hiện tại chỗ thay vì các thể hiện theo yêu cầu.

Điều tôi thực sự muốn là có thể giữ một số máy chủ trong nhóm dưới dạng phiên bản theo yêu cầu, bất kể điều gì xảy ra với thị trường định giá tại chỗ. Sau đó, tôi muốn bất kỳ máy chủ bổ sung nào trong nhóm, trên mức tối thiểu được cấu hình của tôi, là các thể hiện tại chỗ. Tôi nói chung là ổn với sự chậm trễ trong việc thêm máy chủ thông qua các yêu cầu tại chỗ.

Tôi dường như không thể tìm thấy bất kỳ cách nào để làm điều này và tôi đã cố gắng tìm kiếm tài liệu AWS. Dường như ASG có thể theo yêu cầu hoặc tại chỗ, nhưng không phải là hybrid.

Tôi có thể tự thêm một thể hiện theo yêu cầu vào Bộ cân bằng tải đàn hồi được gán cho nhóm tự động điều chỉnh tỷ lệ, nhưng sau đó tải của máy chủ đó sẽ không được tính vào các phép đo và kích hoạt tự động mở rộng.

Tôi cho rằng tôi có thể nhập giá thầu cao một cách lố bịch để đảm bảo rằng tôi luôn có được các máy chủ tôi cần, nhưng sau đó tôi nhìn vào lịch sử định giá và thấy các đột biến lớn thường xuyên.

Tài liệu AWS tự mâu thuẫn, vì ở một nơi, nó nói rằng nếu bạn nhập tối thiểu máy chủ, con số đó được "đảm bảo" ở đó. Nhưng sau đó khi bạn đọc về các trường hợp tại chỗ, không có sự đảm bảo nào. Sự khác biệt về giá tại chỗ rất hấp dẫn, vì vậy tôi muốn tận dụng nó nhiều nhất có thể trong khi vẫn duy trì đường cơ sở luôn luôn bật. Điều này có thể không?

Câu trả lời:


1

Tại thời điểm này, bạn có thể kết hợp các trường hợp ondemand và spot trên ASG duy nhất

Amazon EC2 Auto Scaling hiện cho phép bạn cung cấp và tự động chia tỷ lệ các trường hợp qua các tùy chọn mua, Vùng sẵn có (AZ) và các họ đối tượng trong một nhóm Tự động mở rộng (ASG), để tối ưu hóa quy mô, hiệu suất và chi phí. Giờ đây, bạn có thể bao gồm các Spot Spot với On-Request và RIs trong một ASG duy nhất , để tiết kiệm tới 90% khi tính toán.


Có - cảm ơn vì đã cập nhật câu hỏi này. Tôi đã đánh dấu của bạn là câu trả lời kinh điển mới cho điều này.
nền tảng

15

Cách tiếp cận được thảo luận ở trên sẽ hơi lộn xộn và không linh hoạt. Cách tiếp cận kinh điển hơn là chỉ cần tạo 2 ASG (một cho tại chỗ, một cho theo yêu cầu) và sau đó đăng ký cả hai với cùng ELB (thảo luận tại đây ). Điều này cung cấp cho bạn khả năng kiểm soát từng độc lập thay vì cố gắng thực hiện các giao dịch hoán đổi LC trong một ASG duy nhất.


7

Đây lai Auto Scaling phương pháp dường như không được cung cấp ra khỏi hộp thực sự, không may.

Tuy nhiên, bạn có thể có thể giải quyết giới hạn này như sau (chưa được kiểm tra, chỉ là một thiết kế hệ thống mà tôi đã tung hứng một lúc):

Giải pháp tiềm năng

Như được phác thảo trong Sử dụng tự động nhân rộng để khởi chạy các trường hợp tại chỗ, giá thầu giao ngay là một tham số của Cấu hình khởi chạy đang sử dụng. Như bạn đã chỉ ra, không có cấu hình khởi chạy lai có sẵn, thay vào đó phải là theo yêu cầu hoặc tại chỗ, điều đó có nghĩa là trường hợp sử dụng yêu cầu hai cấu hình khởi chạy khác nhau.

Điều này dường như không giúp ích ngay lập tức, bởi vì bạn chỉ có thể đính kèm một cấu hình khởi chạy vào nhóm Tự động mở rộng quy mô , với các ràng buộc (lỗi thời một phần) sau (xem Cấu hình khởi chạy ):

Khi bạn đính kèm cấu hình khởi chạy mới hoặc cập nhật vào nhóm Tự động mở rộng, mọi trường hợp mới sẽ được khởi chạy bằng các tham số cấu hình mới. Các trường hợp hiện tại không bị ảnh hưởng . Khi Tự động nhân rộng cần thu nhỏ lại, trước tiên , nó chấm dứt các trường hợp có cấu hình khởi chạy cũ hơn . [nhấn mạnh của tôi]

Mặc dù vậy, các phần được nhấn mạnh là chìa khóa, với yêu cầu duy trì các trường hợp theo yêu cầu chạy sau khi thay đổi từ cấu hình khởi chạy theo yêu cầu ban đầu tương ứng sang cấu hình khởi chạy tại chỗ bổ sung, và sau này không nhất thiết phải là trường hợp nữa do Chính sách chấm dứt tự động mở rộng được giới thiệu gần đây (đối với thay đổi thường không có sự phô trương thông qua bài đăng trên blog AWS kèm theo), được ghi lại trong Chính sách chấm dứt sơ thẩm cho nhóm tự động mở rộng quy mô của bạn :

Trước khi Tự động nhân rộng chọn một thể hiện để chấm dứt, trước tiên, nó xác định Vùng sẵn có có nhiều phiên bản hơn các Vùng sẵn có khác được sử dụng bởi nhóm. Nếu tất cả các Vùng sẵn có có cùng số lượng phiên bản, thì nó sẽ xác định Vùng sẵn có ngẫu nhiên. Trong Vùng sẵn có được xác định, Tự động nhân rộng sử dụng chính sách chấm dứt để chọn trường hợp chấm dứt . [nhấn mạnh của tôi]

Như được nêu trong Cách Chính sách chấm dứt của bạn hoạt động , giờ đây bạn có thể chỉ định RecentInstance , nếu bạn muốn phiên bản khởi chạy cuối cùng bị chấm dứt , đây sẽ là một trong những trường hợp được phát hành gần đây:

Auto Scaling sử dụng thời gian khởi chạy thể hiện để xác định thể hiện được khởi chạy lần trước.

Rõ ràng có thể có thêm một chút về điều này, ví dụ: bạn có thể chỉ định bất kỳ một trong các chính sách nào dưới dạng chính sách độc lập hoặc bạn có thể liệt kê nhiều chính sách trong danh sách được sắp xếp , nhưng cách tiếp cận này sẽ đảm bảo tải tất cả các trường hợp được đưa vào đo lường tự động mở rộng và kích hoạt ; một cảnh báo vẫn còn:

Hãy cẩn thận

Nếu bộ cân bằng tải chấm dứt một trong các trường hợp theo yêu cầu vì bất kỳ lý do nào khác (ví dụ vì bản thân nó trở nên không lành mạnh), nó sẽ không tự động được thay thế bằng một trường hợp theo yêu cầu. Vì vậy, bạn cần theo dõi và tính toán riêng cho sự kiện này, ví dụ: bằng cách kích hoạt tạm thời cấu hình khởi chạy theo yêu cầu.

Chúc may mắn!


2
Điều này có ý nghĩa - công việc thám tử tuyệt vời. Vẫn còn rủi ro ngừng hoạt động, nhưng có vẻ như bạn đã phát hiện ra một số cách mới để giảm rủi ro đó. Hy vọng một ngày nào đó chúng ta sẽ có một hộp kiểm đơn giản cho các ASG, "Các trường hợp ở mức hoặc dưới mức tối thiểu của máy chủ là các trường hợp theo yêu cầu." Cảm ơn!
nền tảng

1

Tôi lấy cảm hứng từ các câu trả lời ở đây để đưa ra https://github.com/ashwanthkumar/matsya

Nó giúp bạn làm như sau

  • Bạn luôn cần một đội máy cho các yêu cầu cụm Hadoop / Mesos / YARN của bạn
  • Bạn muốn tiết kiệm tiền bằng cách sử dụng Spot nhưng cũng dự phòng OD vì bạn cần sức mạnh xử lý để đáp ứng SLA của bạn
  • Chuyển về Spot một lần trên OD để tiết kiệm tiền một lần nữa.

1
Xin lưu ý chính sách của chúng tôi về tự quảng cáo
HBruijn

Câu trả lời đã được chia sẻ với mục đích tốt rằng nó có thể hữu ích. Nếu bạn thấy nó là một quảng cáo tự, tôi có thể xóa câu trả lời.
ashwanthkumar

Nếu tôi nghĩ rằng câu trả lời của bạn là thư rác thực sự thì tôi đã đánh dấu nó như vậy rồi, vì vậy bạn không cần phải xóa bài đăng của mình. Liên kết quảng cáo sản phẩm được ưu tiên hơn rằng mặc dù câu trả lời như vậy có thể có giá trị, có một sự cân bằng tốt mà những người dùng tương đối mới như bạn thường không nhận ra. Và với tư cách là người điều hành, tôi muốn giáo dục bạn ngay bây giờ, trước khi bạn vượt qua bất kỳ dòng nào bạn không biết đã tồn tại (đó là một mô hình định kỳ đáng tiếc)
HBruijn

Có ý nghĩa. Cảm ơn những người đứng đầu về chính sách.
ashwanthkumar

1

Trong trường hợp bạn chỉ muốn 1 ASG với số lượng phiên bản theo yêu cầu tĩnh, thì những điều sau đây sẽ hoạt động:

  • Tạo nhóm tự động mở rộng dựa trên cấu hình Khởi động sơ thẩm.

  • Tạm dừng tự động nhân rộng trên ASG

  • Thêm thủ công theo yêu cầu (tải cơ sở tĩnh) vào ASG và bật bảo vệ cá thể cho các phiên bản đó.

  • Tiếp tục tự động hóa trên ASG

  • Chính sách mở rộng tự động mặc định bây giờ sẽ bỏ qua các phiên bản theo yêu cầu (do bảo vệ) và chấm dứt cùng số lượng phiên bản tại chỗ như phiên bản theo yêu cầu để đạt được số lượng mong muốn của nhóm. Bất kỳ hoạt động mở rộng hoặc ra quy mô nào sẽ chỉ khởi chạy hoặc chấm dứt các trường hợp tại chỗ.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.