Làm cách nào tôi có thể theo dõi chi tiêu hàng ngày cho AWS?


26

Cơ sở hạ tầng của chúng tôi là trên AWS. Tôi muốn nhận được một báo cáo hàng ngày về số tiền chi tiêu vào ngày hôm trước. Cách tốt nhất để làm điều đó là gì?

Câu trả lời:


20

Cập nhật

AWS vừa công bố tính khả dụng chung của chức năng để Giám sát các khoản phí ước tính bằng cách sử dụng Cảnh báo thanh toán qua Amazon CloudWatch (dường như đã có sẵn cho các tài khoản cao cấp AWS kể từ cuối năm 2011, hãy xem câu trả lời của Daniel Lopez về Có cách nào để đặt Amazon AWS không giới hạn thanh toán? ):

Chúng tôi thường xuyên ước tính tổng phí hàng tháng cho mỗi dịch vụ AWS mà bạn sử dụng. Khi bạn bật theo dõi tài khoản của mình, chúng tôi sẽ bắt đầu lưu trữ các ước tính dưới dạng số liệu CloudWatch, nơi chúng sẽ có sẵn trong khoảng thời gian 14 ngày thông thường. [...]

Như được nêu trong bài đăng trên blog giới thiệu, Bạn có thể bắt đầu bằng cách sử dụng các cảnh báo thanh toán để cho bạn biết khi nào hóa đơn AWS của bạn sẽ cao hơn dự kiến , hãy xem Giám sát các khoản phí ước tính của bạn bằng Amazon CloudWatch để biết thêm chi tiết về chức năng này.

Điều này đã khá hữu ích cho nhiều nhu cầu cơ bản, tuy nhiên, sử dụng API CloudWatch để tự lấy các số liệu được lưu trữ (xem GetMetricStatistic ) thực sự cho phép bạn điều khiển các luồng công việc và logic kinh doanh tùy ý dựa trên dữ liệu này và tất nhiên bạn có thể tạo báo cáo hàng ngày cũng đã chi bao nhiêu cho ngày hôm trước .

Về sau này, phạm vi của đề nghị này cũng được nhấn mạnh:

Điều quan trọng cần lưu ý rằng đây là những ước tính, không phải dự đoán . Ước tính gần đúng chi phí sử dụng AWS của bạn cho đến nay trong chu kỳ thanh toán hiện tại và sẽ tăng lên khi bạn tiếp tục tiêu thụ tài nguyên . [...] Không tính đến các xu hướng hoặc thay đổi tiềm năng trong mẫu sử dụng AWS của bạn. [nhấn mạnh của tôi]

Đó là, mức độ chi tiết của các số liệu được báo cáo vẫn chưa được phân tích (tôi thấy các điểm dữ liệu cứ sau 4 đến 8 giờ, nhưng không nhất thiết phải cập nhật giá trị mỗi lần, như người ta mong đợi thực sự), do đó, để có được một báo cáo hàng ngày đủ chính xác có thể yêu cầu một số xử lý bài thống kê.


Trả lời ban đầu

Thật không may, điều này ít đi thẳng hơn người ta nghĩ, đặc biệt là khi dữ liệu mong muốn có thể được kiểm tra thủ công thông qua tài khoản của bạn. Có hai tùy chọn giám sát mà người ta mong đợi:

  • thông báo qua email / RSS / vv.
  • API truy cập dữ liệu

Cả AWS và bất kỳ nhà cung cấp IaaS / PaaS / SaaS nào khác mà tôi biết hiện không cung cấp quyền truy cập API vào dữ liệu kế toán của họ (có thể do ý nghĩa tài chính / pháp lý tiềm năng), tạo ra bất kỳ hình thức tích hợp bên thứ 3 nào (có thể dễ dàng làm ngay bây giờ) tốt nhất là cồng kềnh, trong trường hợp bạn cần phải sử dụng công cụ quét web để lấy dữ liệu ngay từ đầu.

May mắn là một ưu đãi mới từ Cloudability [liên kết đã bị xóa sau khi ngừng cấp miễn phí] đã bước vào giai đoạn gần đây để làm điều này cho bạn theo cách không chuyên nghiệp và nhà cung cấp, chúng tôi đang sử dụng nó rất thành công cho AWS - hiện tại bạn sẽ mặc dù chỉ nhận được báo cáo hàng ngày (hoặc ít thường xuyên hơn) về chi tiêu hàng tháng của bạn , tức là chưa được chia nhỏ thành chi tiêu hàng ngày của bạn. Tất nhiên, việc tăng thêm hàng ngày sẽ là chuyện nhỏ, vì vậy tôi hy vọng và hy vọng họ sẽ cung cấp thêm thông tin như thế này theo thời gian.

Cách tiếp cận của họ về giá [liên kết đã bị xóa sau khi ngừng cấp miễn phí] cũng được làm mới (mặc dù rõ ràng) và chỉ đơn giản gắn với chi tiêu trên đám mây của bạn, do đó, bạn nên tự trả tiền ngay khi bạn nhận ra tiềm năng tiết kiệm tương ứng (họ không tính phí bất cứ điều gì nếu bạn chi dưới 2,5 nghìn đô la / tháng).
Cập nhật 20121016 : Thật không may, Cloudability đã thay đổi mô hình định giá của họ thành một mô hình phổ biến hơn, vẫn bao gồm một cấp miễn phí (và có giá hợp lý nói chung), nhưng loại bỏ quyền truy cập vào các tính năng nâng cao trong đó, tôi coi đó là cách tiếp cận thông minh và công bằng cho người dùng với ngân sách nhỏ, những người vẫn có thể là số nhân ở nơi khác hoặc nâng cấp một khi đã phát triển thành nó.

Cập nhật 20150115: Thật không may, Cloudability đã chọn con đường của nhiều nhà cung cấp SaemS freemium và cuối cùng đã ngừng hoàn toàn tầng miễn phí: Từ ngày 1 tháng 2, chúng tôi sẽ không còn cung cấp phiên bản Cloudability Free mà bạn đang sử dụng ngày hôm nay .

Cập nhật 20120427

Thông báo trước (được lưu để tham khảo bên dưới) về việc yêu cầu thông tin xác thực AWS chính của bạn không áp dụng nữa - AWS mới giới thiệu Các tính năng IAM mới: Quản lý mật khẩu và truy cập vào các trang báo cáo sử dụng và hoạt động tài khoản :

Tính năng mới này cho phép bạn tạo người dùng IAM riêng biệt và khác biệt cho mục đích kinh doanh và kỹ thuật. Bạn có thể cấp cho người dùng doanh nghiệp của bạn quyền truy cập vào các trang Hoạt động tài khoản và / hoặc Báo cáo sử dụng của trang web AWS để cho phép họ truy cập dữ liệu thanh toán và sử dụng mà không cho họ quyền truy cập vào các tài nguyên AWS khác như các phiên bản EC2 hoặc tệp trong S3

Hiện tại, Cloudability cũng đã tích hợp tính năng này, do đó bạn không cần phải cung cấp cho họ thông tin xác thực AWS chính của bạn nữa hoặc dành thêm nỗ lực để thiết lập Thanh toán hợp nhất chỉ để hiểu rõ hơn về chi tiêu trên đám mây của bạn, hãy xem Cách thiết lập Amazon IAM (Quản lý tài khoản nhận dạng ) để biết chi tiết.

Caveat cũ

Có một cảnh báo người ta cần lưu ý về việc trả trước mặc dù:

Để truy cập dữ liệu của bạn, bạn cần phải cung cấp cho họ thông tin xác thực AWS chính của bạn, vì nếu không, họ rõ ràng không thể cạo tài khoản của bạn. Đối với AWS nói riêng, bạn vẫn có thể tránh điều này bằng cách hỗ trợ Thanh toán hợp nhất , nơi bạn hợp nhất thanh toán cho nhiều tài khoản AWS của Amazon [...] bằng cách chỉ định một tài khoản thanh toán , do đó không có quyền truy cập vào tài nguyên và dữ liệu máy tính của bạn.


Tôi vừa đăng ký Cloudability nhưng trong thư của họ, tôi không thể tìm thấy chúng tôi đã chi bao nhiêu ngày hôm qua (hoặc trong 24 giờ qua). Họ chỉ đưa ra ước tính hàng tháng và chi tiêu bao nhiêu cho đến bây giờ.
Sabya

2
@sabya - tất nhiên bạn đúng, tôi chỉ nhận ra báo cáo hàng ngày và bỏ lỡ yêu cầu bổ sung này, xin lỗi (tôi đã cập nhật câu trả lời để phản ánh điều này)! Rõ ràng việc bạn tự mình làm toán sau ngày thứ 2 sẽ là chuyện nhỏ, mặc dù việc có sẵn ngay trong thư sẽ là một sự cải thiện rõ ràng và tất nhiên sẽ thuận tiện hơn nhiều.
Steffen Opel

12

Sử dụng các công cụ awscli , bạn có thể nhận được tổng số hàng tháng của mình:

$ aws --region us-east-1 cloudwatch get-metric-statistics \
    --namespace "AWS/Billing" \
    --metric-name "EstimatedCharges" \
    --dimension "Name=Currency,Value=USD" \
    --start-time $(date +"%Y-%m-%dT%H:%M:00" --date="-12 hours") \
    --end-time $(date +"%Y-%m-%dT%H:%M:00") \
    --statistic Maximum \
    --period 60 \
    --output text | sort -r -k 3 | head -n 1 | cut -f 2

2494.47

Tổng cộng từ hai ngày khác nhau có thể được trừ để có được đồng bằng hàng ngày. Hoặc, ước tính có thể đạt được trong một lần bằng cách tăng cửa sổ thời gian ( end-time- start-time) lên 24h và trừ điểm dữ liệu sớm nhất từ ​​điểm mới nhất.

Ghi chú:

  • giả sử bạn đã cho phép theo dõi các khoản phí ước tính của mình
  • giả sử bạn có GNU date(đối với các dates khác , ví dụ: trên OSX, date -v-12Hcó thể hoạt động)
  • Tiền tệ của bạn có thể thay đổi
  • Amazon cập nhật số liệu CloudWatch mỗi ~ 4h, do đó, truy vấn cho cửa sổ thời gian nhỏ hơn 4h có thể không trả về bất kỳ điểm dữ liệu nào. Tôi đã sử dụng cửa sổ 12h để an toàn hơn.
  • Tôi muốn bao gồm một liên kết đến bài đăng trên blog mà câu trả lời của tôi được dựa trên, nhưng rõ ràng tôi cần 10 điểm danh tiếng để đăng nhiều hơn 2 liên kết. :)

1
Điều quan trọng cần lưu ý là khu vực duy nhất hoạt động cho không gian tên 'AWS / Billing' là us-East-1. Tôi xé tóc nhiều tự hỏi tại sao tài khoản của tôi có quyền truy cập vào thanh toán lại nhận được kết quả trống thông qua CLI.
Corey Cole

Chỉ cần một lưu ý, đó là việc sử dụng awscli botocore và những thuộc tính này xuất hiện để có thể truy cập thông qua boto3.readthedocs.io/en/latest/reference/services/...
monkut

Vì vậy, có cách nào để làm cho công việc này cho các khu vực khác?
nh2

4

Nếu bạn thực sự cần báo cáo chi phí hàng ngày, bạn sẽ cần sử dụng công cụ " Báo cáo sử dụng " trong tài khoản AWS của mình. Bạn có thể yêu cầu báo cáo cho từng dịch vụ bạn sử dụng, vào bất kỳ khoảng thời gian nào bạn muốn, ở mức độ chi tiết từ giờ đến tháng. Sau đó, nó tải xuống một CSV.

Bạn sẽ cần thực hiện một số xử lý hậu kỳ trên CSV đó (vì nó không phải là chi phí, mà là về cách sử dụng, v.v.), nhưng nó sẽ cung cấp cho bạn dữ liệu bạn cần để có chi phí hàng ngày.


+1 Có, tôi hiểu. Tôi chỉ tìm kiếm một phương pháp dễ dàng hơn.
Sabya

3

Amazon cung cấp các khoản phí hàng tháng hiện tại của bạn tại đây:

http://aws-portal.amazon.com/gp/aws/developer/account/index.html?ie=UTF8&action=activity-summary

Về phía trên cùng của trang, nó cho biết mức độ hiện tại của dữ liệu. Tôi thấy nó có xu hướng trễ một vài giờ.

Đây là bản ghi chính xác và cập nhật nhất mà bạn có thể nhận được từ Amazon hoặc bất kỳ ai khác tại thời điểm này.


2

Có lẽ mô-đun Python này trên Github có thể giúp bạn bắt đầu: pyec2costs (đối với các trường hợp dành riêng hoặc ondemand).


2

Có một công cụ khá mới có nguồn gốc từ Netflix có tên Ice: https://github.com/Netflix/ice cho phép trực quan hóa các chi tiết thanh toán khi được truy xuất thông qua các báo cáo AWS được tạo trong các thùng S3 của bạn.


1

Hãy nhìn vào Xervmon. Họ cung cấp chi tiêu hàng ngày và sử dụng trong các phân tích bổ sung về lịch sử. Họ là nhà cung cấp dịch vụ sắp tới với sự tích hợp chi tiết với Amazon AWS được lên kế hoạch trong 3 tháng tới.

Một số ảnh chụp màn hình từ tài khoản hiện tại của tôi như dưới đây. http://cloudmaya.net/~develop/demo/Slide1.jpg http://cloudmaya.net/~develop/demo/Slide2.jpg

Bunch của các chuyên gia đã xây dựng và nó khá gọn gàng.


1

Dưới đây là một tập lệnh đơn giản thể hiện cách phân tích và phân tích tệp CSV thanh toán AWS chi tiết của bạn:

Nên đủ dễ dàng để bạn có thể xây dựng phân tích của riêng bạn!


1

Sử dụng lệnh AWS CLI của CostExplorer Có thể truy xuất lại các số liệu chi phí và mức sử dụng cho Tài khoản

Ví dụ: Nếu bạn cần lấy lại chi phí từ đầu tháng đến ngày hôm nay, bạn có thể sử dụng lệnh dưới đây.

aws ce get-cost-and-usage --time-period Start=$(date -u -d "$TODAY" '+%Y-%m-01'),End=$(date -u +"%Y-%m-%d" --date="+1 day") --granularity MONTHLY --metrics UnblendedCost --output text | sort -r -k 3 | head -n 1 | cut -f 2

Đầu ra: 615.6129260967

Nếu bạn cần lấy chi phí trên cơ sở HÀNG NGÀY, hãy sử dụng GRANULARITY là HÀNG NGÀY như dưới đây:

aws ce get-cost-and-usage --time-period Start=$(date -u -d "$TODAY" '+%Y-%m-01'),End=$(date -u +"%Y-%m-%d" --date="+1 day") --granularity DAILY --metrics UnblendedCost

0

Tôi đã thấy các công ty xây dựng các công cụ nội bộ của riêng họ cho việc này - về cơ bản họ loại bỏ trang thanh toán AWS và trên bảng điều khiển của riêng họ, hiển thị chi phí hiện tại và trong một ví dụ, họ chia nó cho các ngày trong tháng đã qua và nhiều số đó để có được tổng chi phí ước tính trong tháng.

AWS chưa cung cấp API thanh toán (tôi chắc chắn rằng chúng sẽ có trong tương lai), nhưng có một vài dịch vụ bên ngoài có thể trợ giúp. Một là CloudV vertical (tiết lộ: Tôi làm việc ở đây), nơi bạn có thể nhận chi phí hàng ngày, hàng tháng và hàng giờ, được chia nhỏ theo dịch vụ và cho nhiều tài khoản.

Chén thánh thực sự cho một dịch vụ như AWS mặc dù không chỉ để theo dõi chi tiêu hàng ngày, mà còn thể hiện sự hiểu biết sâu sắc về hiệu quả (chi phí + sử dụng = hiệu quả) và cũng làm nổi bật các cơ hội tiết kiệm (ví dụ: thời gian sử dụng các trường hợp dành riêng hoặc tại chỗ)


Ed Byme là chính xác. Có một số nhà cung cấp. Cloudability là một trong số đó là CloudV vertical. Tuy nhiên, tất cả chúng đều có trọng lượng rất nặng và các giải pháp đắt tiền với rất nhiều tính năng mà bạn có thể sẽ không bao giờ sử dụng. Thay vào đó, hãy xem xét BillGist.com (tiết lộ: tôi làm việc ở đây) với giá siêu rẻ và email bạn báo cáo ngay trong hộp thư đến của mình.


0

Bây giờ bạn có thể làm điều này với API Cost Explorer. Bạn có thể truy cập rất dễ dàng thông qua awscli / boto3 chẳng hạn, nhưng vấn đề là nó dễ dàng hơn trước rất nhiều.

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.