Đây là câu chuyện về cách chúng tôi cắt giảm 80% chi phí AWS chỉ trong chưa đầy hai tuần. AWS là một cửa hàng kẹo cho các nhà phát triển Tôi cần bắt đầu với phần giới thiệu. Chúng tôi đã sử dụng AWS từ năm 2018 cho tất cả các dự án của mình và nó đã mang lại hiệu quả kỳ diệu cho chúng tôi. Chúng tôi là một nhóm được phân phối đầy đủ và việc có trung tâm dữ liệu của riêng chúng tôi ở đâu đó trên thế giới sẽ là một vấn đề. Việc thuê tài nguyên từ AWS sẽ dễ dàng hơn nhiều và bỏ qua tất cả các chi phí vốn. Vấn đề với AWS là về cơ bản, các nhà phát triển có thể tạo bất kỳ tài nguyên nào mà không cần phải phê duyệt chúng với bộ phận tài chính của chúng tôi. Với các trung tâm dữ liệu truyền thống, đây không phải là trường hợp — việc mua thêm một máy chủ sẽ cần lấy hóa đơn từ cửa hàng và yêu cầu bộ phận tài chính thanh toán. Vì vậy, về cơ bản, cơ sở của vấn đề là với AWS, các nhà phát triển chỉ có thể mua tài nguyên với số lượng họ muốn và vào thời điểm họ muốn. Chúng tôi đã làm gì để cắt giảm chi phí AWS? Chúng tôi không phải là một công ty lớn và chi phí AWS của chúng tôi chỉ cao hơn 7 nghìn đô la một tháng một chút trên tất cả các tài khoản AWS. Ngoài ra, điều đáng nói là chúng tôi chỉ lưu trữ các gian hàng DEV và QA, vì các gian hàng SẢN PHẨM được trả tiền bởi khách hàng của chúng tôi. Tài nguyên của chúng tôi chủ yếu là các máy phát triển riêng lẻ, cơ sở dữ liệu thử nghiệm và nhiều tài nguyên tùy chỉnh khác nhau cho các dự án nghiên cứu như Kinesis Firehose, Sage Maker, v.v. Vì vậy, chúng tôi có rất nhiều tài nguyên ngẫu nhiên khó phân loại, cấu trúc, dự đoán và kiểm soát. Vậy chúng tôi đã giải quyết vấn đề giảm chi phí AWS như thế nào? , chúng tôi bắt đầu xem xét Trình khám phá chi phí và xác định những mặt hàng đắt nhất: Đầu tiên Chúng tôi đã tìm thấy một Nút Bitcoin đã chạy trong bốn tháng qua và tiêu tốn của chúng tôi 600 đô la/tháng vì nó yêu cầu một ổ SSD lớn với tốc độ được cung cấp bổ sung. Chúng tôi đã có một nghiên cứu nhỏ về Bitcoin Ordinals và không tháo máy. Giải pháp: chúng tôi đã lưu trữ ổ đĩa (chi phí $6/tháng) và chấm dứt VM. Tiết kiệm: $594/tháng Chúng tôi đã tìm thấy một máy GPU Nvidia Tesla có giá 531 USD/tháng. Chúng tôi sử dụng nó cho đến ngày nay cho các thử nghiệm AI tổng quát. Chúng tôi đang nghĩ đến việc xây dựng ứng dụng của riêng mình để tạo văn bản thành video, vì vậy chúng tôi cần chiếc máy này. Độ phân giải: đã chuyển âm lượng sang phiên bản tại chỗ. Tiết kiệm: $360/tháng Không phải là đắt nhất, nhưng phát hiện đáng kinh ngạc nhất là chúng tôi đã quên xóa giá đỡ SẢN PHẨM demo ở một trong những khu vực không sử dụng nơi chúng tôi triển khai các tập lệnh địa hình của mình để kiểm tra việc triển khai PROD “từ đầu”. Tiết kiệm: $340/tháng. Nhiều mặt hàng nhỏ hơn. Độ phân giải: khác nhau. Tiết kiệm: $1700/tháng , chúng tôi bắt đầu di chuyển mọi thứ có thể để phát hiện các trường hợp. Đây là một thủ tục đơn giản. Đối với từng máy riêng lẻ, bạn cần tắt máy, tháo ổ đĩa (nhớ ghi lại đường dẫn gắn kết), sau đó tắt máy. Sau đó, bạn tạo một phiên bản spot mới (bất kể AMI là gì, chỉ cần đảm bảo rằng kiến trúc CPU tương thích với ổ đĩa trước đó của bạn). Sau khi phiên bản spot được tạo, hãy tách (và đừng quên xóa!) ổ đĩa mới và đính kèm ổ đĩa trước đó trên cùng một đường dẫn gắn như trên máy ban đầu. Đối với môi trường Beanstalk, việc này đơn giản hơn — chúng tôi chỉ thay đổi cài đặt dung lượng để chỉ sử dụng các phiên bản spot. Thứ hai Tiết kiệm: $1000/tháng , chúng tôi đã xóa các bộ chứa S3 không sử dụng (chúng tôi đã thực hiện một số bot giao dịch tự động tích lũy nhiều dữ liệu phát trực tuyến). Và thiết lập tính năng tự động xóa dữ liệu trong nhiều vùng lưu trữ S3 để chúng tôi không lưu trữ dữ liệu giao dịch trong hơn một năm vì dữ liệu đó đã trở nên hoàn toàn lỗi thời và không còn hữu ích. Thứ ba Tiết kiệm: $300/tháng , chúng tôi thu hẹp một số tài nguyên. Đó là vấn đề kiểm tra CPU và RAM đã tiêu thụ và nếu chúng tôi thấy mức sử dụng liên tục dưới 50%, chúng tôi sẽ hạ bậc. Thứ tư Tiết kiệm: $300/tháng (sẽ gấp 3 lần trong các trường hợp theo yêu cầu) , chúng tôi thiết lập tự động tắt máy trên từng máy. Chúng tôi đã tạo nhiều hàm lambda cho các loại tác vụ khác nhau: tắt máy ảo SageMaker Jupyter sau 1 giờ không hoạt động, tắt máy ảo riêng lẻ, DEV và QA là viết tắt của khoảng thời gian ban đêm khi không có ai làm việc. Các hàm lambda này được chạy trên các sự kiện của cloudwatch hàng ngày. Có lambdas để kích hoạt DEV và QA cũng như để tạo thuận lợi cho quá trình. Thứ năm Tiết kiệm: $500/tháng Ngoài ra, chúng tôi đã triển khai một số giải pháp nhỏ hơn để tiết kiệm hơn nữa, nhưng chúng không được đề cập trong bài viết này. Cho đến nay, chúng tôi đã tiết kiệm được khoảng 5500 đô la trong hóa đơn hàng tháng trị giá 7000 đô la, chiếm khoảng 80% tổng chi phí! Tôi biết rằng chúng tôi đã chi quá tay cho AWS, nhưng không bao giờ biết rằng nó lại nhiều đến thế. Trong suốt cả năm, điều đó có nghĩa là tiết kiệm được khoảng 66.000 đô la. Làm thế nào để các tổ chức tiếp cận tối ưu hóa chi phí đám mây? Sau khi có kinh nghiệm riêng về tối ưu hóa chi phí đám mây, tôi đã hiểu tầm quan trọng của việc theo dõi cẩn thận chi phí đám mây. Về cơ bản, tối ưu hóa chi phí đám mây có thể tiết kiệm đủ để thúc đẩy doanh nghiệp nếu bạn đưa số tiền tiết kiệm được vào hoạt động tiếp thị. Hoặc bạn có thể lấy nó làm cổ tức và mua một chiếc ô tô mới. Số tiền là tuyệt vời và có rất nhiều thứ có thể được thực hiện với nó. Vì việc tối ưu hóa chi phí trên đám mây là một nỗ lực hết sức cần thiết, vậy các công ty tiếp cận nó như thế nào? Hãy nghĩ về các cách triển khai quản lý chất thải trên đám mây, từ đơn giản nhất đến tiên tiến nhất. 1. Chỉ mua máy ảo Bạn có thể tiếp cận vấn đề theo cách truyền thống nhất có thể. Từ chối vô số khả năng do AWS cung cấp và chỉ hạn chế nhà phát triển của bạn mua máy EC2. SQS? Không. DynamoDB? Không. Chỉ cần sử dụng máy ảo EC2 và cài đặt mọi thứ trên đó. Ưu điểm: Bạn có thể dự đoán chi tiêu rất chính xác vì có một tỷ lệ cố định cho từng loại máy ảo EC2 Các nhà phát triển sẽ nhồi vào các máy có sẵn phần mềm mà họ cần. Giống như trong một trung tâm dữ liệu tại chỗ vật lý truyền thống, do đó làm tăng hiệu quả của việc chi tiêu tiền bạc Nhược điểm: Bạn bỏ lỡ những lợi ích của tự động mở rộng quy mô Các nhà phát triển của bạn lãng phí thời gian để triển khai những thứ đã có sẵn Bạn bỏ lỡ các bản cập nhật tự động của phần mềm sẽ được áp dụng tự động Nhìn chung, không phải là một chiến lược tốt khi làm việc với đám mây như thể bạn chỉ thuê dịch vụ lưu trữ trên GoDaddy. 2. Xem xét mọi yêu cầu Điều gì sẽ xảy ra nếu bạn cho phép các nhà phát triển sử dụng và mở rộng quy mô bất kỳ tài nguyên nào, nhưng họ phải thương lượng chúng với bộ phận đặc biệt kiểm soát chi phí? Các nhà phát triển không có quyền riêng để mua/mở rộng quy mô tài nguyên, nhưng họ có thể yêu cầu một người đặc biệt mua/mở rộng quy mô tài nguyên cho họ. Giả sử một nhà phát triển cần điểm cuối Kinesis Firehose (vâng, tôi có đề cập đến một dịch vụ mà có lẽ bạn chưa từng nghe đến). Nó có phải là một nhiệm vụ đơn giản đối với nhà phát triển để giải thích những gì anh ấy/cô ấy muốn với bộ điều khiển không? Và sau đó, nhà phát triển cũng nên giải thích lý do đằng sau việc mở rộng quy mô và thậm chí có thể chứng minh rằng lựa chọn kiến trúc là tốt và không lãng phí về mặt quản lý chi phí. Khi cung cấp một ví dụ cụ thể, người ta có thể thấy rằng nó không hoạt động theo cách này. Nó chỉ có thể hoạt động nếu nhóm quản lý chi phí bao gồm các chuyên gia. Và đó chỉ là phần nổi của tảng băng chìm. Bây giờ hãy xem xét: Một tài nguyên trở nên không cần thiết do thay đổi kiến trúc Một nhà phát triển rời bỏ công việc và không xóa các tài nguyên mà họ đã sử dụng cho mục đích phát triển cá nhân của họ Trường hợp khẩn cấp khi tài nguyên cần được thay đổi quy mô nhanh chóng để tránh sự cố kinh doanh Ưu điểm: Các nhà phát triển được phép tận dụng lợi ích tối đa của tài nguyên do AWS quản lý Chi tiêu được kiểm soát tốt Nhược điểm: Lãng phí trên đám mây vẫn có thể đến từ các tài nguyên không cần thiết chưa được loại bỏ Nhóm quản lý chi phí cần có kiến thức AWS ở mức độ cao Cấp độ quan liêu có thể gây thiệt hại cho doanh nghiệp 3. Thuê một nhóm FinOps Một cách nâng cao hơn là thực sự tìm và thuê các chuyên gia trong AWS để kiểm soát chi tiêu. Họ có thể sử dụng các công cụ mà AWS cung cấp để kiểm soát chi tiêu ngay lập tức. Nó có: một nhà thám hiểm chi phí một hệ thống con gắn thẻ phiên bản dành riêng kế hoạch tiết kiệm chi phí bất thường nhiều hơn nữa Những công cụ này không thân thiện với người dùng và yêu cầu nhân viên được đào tạo bài bản để biết phải làm gì với chúng. Tuy nhiên, bạn thực sự có thể bắt đầu kiểm soát chi phí đám mây của mình. Cách tiếp cận này không chỉ yêu cầu các công cụ và công nhân có tay nghề cao mà còn cả một khuôn khổ mà nhóm làm việc: kiểm tra định kỳ các tài nguyên không được sử dụng đúng mức, quy trình thu nhỏ và làm sạch, v.v. Một nhóm về cơ bản là DevOps với cách tiếp cận có ý thức về tài chính được gọi là FinOps. Ưu điểm: Các nhà phát triển có toàn bộ sức mạnh của AWS Chi phí hành chính nhỏ cho các nhà phát triển Nhóm tài chính có toàn quyền kiểm soát chi tiêu ở nhiều khía cạnh khác nhau: theo dự án, theo nhóm, v.v. Các nhà phát triển sử dụng tài nguyên một cách có ý thức Nhược điểm: Yêu cầu nhân viên có trình độ học vấn cao mà hầu hết chưa tồn tại, vì vậy bạn cần đào tạo một Dễ bị tổn thương bởi yếu tố con người Thời gian phản hồi nhanh như khoảng thời gian giữa các lần kiểm tra — một máy EC2 chưa sử dụng có thể hoạt động trong 1–2 tuần trở lên 4. Sử dụng phần mềm quản lý chất thải đám mây Sau khi bạn suy nghĩ nghiêm túc về việc tuyển dụng (hoặc phát triển nhóm FinOps của riêng mình), bạn cũng nên cân nhắc sử dụng phần mềm tối ưu hóa chi phí đám mây của bên thứ ba, chẳng hạn như Infinops. Đó là thành viên nhóm FinOps tự động của bạn hoạt động 24/7 và không dễ bị ảnh hưởng bởi lỗi của con người. Phần mềm như vậy sẽ tự động kiểm soát đám mây của bạn đối với các tài nguyên chưa sử dụng hết và các cách tiết kiệm đã biết khác, chẳng hạn như: Sử dụng các phiên bản spot Sử dụng các phiên bản dành riêng Giảm số lượng cụm OpenSearch trong môi trường QA Vô hiệu hóa máy ảo cá nhân trong đêm Tự động tắt máy ảo SageMaker đắt tiền bằng Jupyter vân vân Tất cả các mẹo đó đều tự động đến vì hệ thống của bạn liên tục được quét để tìm các thay đổi. Và những lời khuyên như vậy có thể . Điều này thường có nghĩa là tiết kiệm ít nhất hàng chục nghìn đô la trong suốt cả năm. giúp bạn tiết kiệm tới 80% hóa đơn hàng tháng Ưu điểm: Công cụ tuyệt vời cho nhóm FinOps Giúp người mới bắt đầu FinOps với các kỹ thuật tối ưu hóa Giảm yếu tố con người Thực thi các đánh giá định kỳ về mức tiêu thụ tài nguyên Thực thi thẻ, quản lý vòng đời, v.v. Cho phép theo dõi nhiều tài khoản AWS cùng lúc Nhược điểm: Có chi phí riêng (thường ít hơn nhiều so với tiết kiệm) , tôi muốn nói rằng việc quản lý chi phí AWS có thể phức tạp. Khoản tiết kiệm 80% của công ty cho thấy có thể chi tiêu ít hơn nếu có những bước đi đúng đắn. Cho dù bạn đang đặt giới hạn cho tài nguyên, xin phê duyệt, sử dụng nhóm chuyên gia hay công cụ tự động, thì điều cần thiết là phải theo dõi chặt chẽ chi phí. Xét cho cùng, việc sử dụng đám mây sẽ giúp mọi thứ trở nên dễ dàng hơn chứ không phải đắt đỏ hơn. Tóm lại