Trong blog “Kiểm soát chi phí #1: Cơ chế kiểm soát chi phí hiệu quả” chúng tôi đã nêu bật bốn thành tố kiểm soát chi phí, trong đó quyền truy cập được chú ý hàng đầu. Quyền truy cập thích hợp thiết lập bức tường chắn ngay tại nơi các hành động diễn ra. Khách hàng cho chúng tôi biết rằng họ muốn có khả năng quản lý chi tiêu tự động, tự nhiên tại điểm cung cấp tài nguyên tự phục vụ. AWS Service Catalog cho phép bạn phê duyệt trước các dịch vụ cho người dùng của mình. Khi tích hợp với AWS Budgets, bạn có thể tạo và liên kết ngân sách với các danh mục đầu tư và sản phẩm, đồng thời thông báo cho đội ngũ phát triển của bạn về chi phí cho tài nguyên để họ vận hành các khối lượng workloads có kế hoạch chi phí rõ ràng.
Trong blog này, chúng tôi sẽ hướng dẫn bạn cách thiết lập quy trình làm việc tự động sử dụng nền tảng serverless để phân phối chi phí cho danh mục AWS Service Catalog của bạn.
Giới thiệu về quy trình làm việc
Chúng tôi sẽ xây dựng kế hoạch chi tiết quản lý chi phí tự động serverless để tự động hóa việc quản lý ngân sách cho một danh mục nhất định và thiết lập rào cản kiểm soát chi phí cho môi trường AWS phi sản xuất của bạn.
Giả sử nhóm phát triển có quyền khởi chạy Amazon SageMaker vào đầu tháng, lúc này chúng ta có ngân sách đủ để sử dụng trong một tháng. Tuy nhiên, khi chi phí dự báo ở mức 60% ngân sách hàng tháng, tính năng tự động hóa quản lý chi tiêu sẽ phát huy tác dụng. Nhà phát triển vẫn được phép khởi chạy SageMaker, tuy nhiên, họ bị hạn chế chỉ có thể khởi chạy kích thước phiên bản và nhóm nhỏ hơn. Ví dụ: người dùng sẽ mất quyền khởi chạy các phiên bản GPU mới và bị giới hạn ở kích thước phiên bản nhỏ và gia đình trong thời gian còn lại của tháng. Khi chi phí dự báo đạt đến 95% ngân sách hàng tháng được phép, tự động hóa quản lý chi tiêu sẽ ngăn nhà phát triển khởi chạy SageMaker. Tính năng tự động hóa này giúp loại bỏ mọi khả năng vượt quá ngân sách hàng tháng và cung cấp cho quản trị viên khả năng kiểm soát ngân sách hiệu quả.
Giải pháp xây dựng hệ thống
Dưới đây là các bước cho thấy cách quản lý chi tiêu tự động này hoạt động hiệu quả như thế nào. Số thứ tự của mỗi bước được gắn nhãn trong sơ đồ trên.
Ngân sách cho AWS Service Catalog Product “SageMaker Project” – đã được thiết lập. Với tính năng này, bạn có thể tạo, liên kết ngân sách với Service Catalog và sản phẩm, từ đó theo dõi chi tiêu của mình.
Thiết lập ngân sách cũng bao gồm cài đặt để gửi thông báo về một chủ đề SNS khi việc chi tiêu gần như vượt quá ngân sách ban đầu.
Lambda function đóng vai trò điều phối, nhận SNS notification và kích hoạt Step Function
Nó kích hoạt thực thi trạng thái Step Functions với các tham số để hoàn thành hành động theo cấu hình đã định
Lambda Function được kích hoạt như một tác vụ trong máy trạng thái. Chức năng tương tác với IAM để loại bỏ hiệu quả quyền của người dùng để chạy danh mục sản phẩm hoặc xoay vòng các tài nguyên AWS SageMaker mới.
Thiết kế mô-đun tách rời này có thể mở rộng và có thể thêm các hành động mới nối tiếp hoặc song song với các bước bổ sung.
Thực hiện quy trình làm việc
CloudFormation stack bao gồm việc tạo các tài nguyên sau:
AWS Service Catalog Portfolio và sản phẩm
Hai AWS Lambda Function
Một Amazon SNS topic
Amazon IAM Group
Amazon IAM User để thử nghiệm giải pháp
Amazon IAM policies khi cần thiết
AWS Budget
Liên kết giữa ngân sách với AWS Service Catalog Product
Để tạo giải pháp quản lý chi phí cho hệ thống của bạn, hãy đăng nhập vào AWS console và truy cập CloudFormation. Sử dụng liên kết bên dưới để khởi chạy stack. Sẽ mất vài phút để spin stack. Bạn có thể theo dõi tiến trình trong CloudFormation console.
Các mẫu AWS CloudFormation cần những thông tin đầu vào sau:
Tổng ngân sách
Toán tử so sánh ngân sách (Cho phép bạn đặt các điểm giá trị để so sánh với ‘GREATER_THAN | LESS_THAN | EQUAL_TO’. So sánh này có thể là phần trăm hoặc giá trị của hóa đơn AWS thực tế hoặc dự báo của bạn)
Budget Notification
Thông tin tag
Tên môi trường của dự án
Figure 1: Khởi chạy AWS CloudFormation Template
Figure 2: Cung cấp Parameter Inputs
Khi thấy trạng thái CREATE_COMPLETE cho stack đã tạo, chọn Outputs. Sao chép 3 giá trị sau để xác minh quyền của người dùng.
UserName
SignInURL
Password
Figure 3: kết quả đưa ra sau khi các tài nguyên được tạo
Xác định the stack
Khởi chạy sản phẩm trong danh mục danh mục dịch vụ và các tài nguyên cần thiết cho Project Beta, đồng thời gắn thẻ các tài nguyên cần thiết cho Project Beta với “Project, Beta”.
Duyệt đến SignInURL và đăng nhập bằng giá trị Tên người dùng và Mật khẩu được sao chép từ đầu ra ngăn xếp.
Trong bảng điều khiển AWS Service Catalog console, chọn danh mục đã tạo và khởi chạy sản phẩm.
Sẽ mất vài phút để spin stack. Bạn có thể theo dõi tiến trình trong CloudFormation console.
Xác định giải pháp
Đầu tiên, xác định nhóm IAM thử nghiệm đã được tạo trong phần trước. Nhóm phải có “projectBeta” trong tên, được thêm vào trước tên CloudFormation stack và được thêm vào bằng một chuỗi chữ và số. Xác minh xem chính sách được quản lý được liên kết có phải là: “Administrator” hay không, cho biết rằng người dùng trong nhóm này có quyền truy cập vào Service Catalog và có thể khởi chạy sản phẩm. Đăng nhập thông qua thông tin đăng nhập người dùng và truy cập bảng điều khiển danh mục dịch vụ. Bạn sẽ có thể xem danh mục đầu tư và sản phẩm cũng như khởi chạy sản phẩm.
Có hai cách xác minh cho giải pháp kiểm soát chi tiêu tự động serverless này: mô phỏng thông báo hoặc chờ vi phạm. Vì phải mất ít nhất vài giờ để tổng chi phí của các tài nguyên đang chạy đáp ứng ngưỡng ngân sách của chúng tôi, bạn có thể xác minh giải pháp bằng cách mô phỏng thông báo từ Budgets.
Thông báo mô phỏng
Đăng nhập vào bảng điều khiển SNS (sử dụng thông tin đăng nhập AWS thông thường của bạn).
Xuất bản một thông báo về chủ đề SNS có tên “BudgetNotificationTopic”. Tên đầy đủ được thêm vào bởi mã định danh CloudFormation stack.
Sao chép văn bản sau làm nội dung của thông báo: “This is a mock notification”.
Chọn Publish.
Mở bảng điều khiển IAM console để xác minh rằng chính sách cho nhóm thử nghiệm đã được chuyển thành “SageMakerReadOnly”. Điều này ngăn người dùng khởi chạy sản phẩm và thay đổi quyền của họ đối với danh mục dịch vụ.
Kết luận
Chúng tôi hy vọng rằng bạn thấy quy trình làm việc này hữu ích trong việc quản lý và thực hiện các cơ chế kiểm soát chi phí cho tổ chức của bạn. Tìm hiểu thêm về AWS Cost Management and AWS Budgets và cho chúng tôi biết những giải pháp bạn muốn chúng tôi đề cập tiếp theo.