Công cụ ước tính chi phí Amazon EMR Serverless

Công cụ ước tính chi phí Amazon EMR Serverless

Nút nguồn: 1776349

Amazon EMR không có máy chủ là một tùy chọn không có máy chủ trong Amazon EMR giúp các nhà phân tích dữ liệu và kỹ sư dễ dàng chạy các ứng dụng bằng cách sử dụng các khung phân tích dữ liệu lớn nguồn mở như Apache Spark và Hive mà không cần định cấu hình, quản lý và thay đổi quy mô cụm hoặc máy chủ. Bạn nhận được tất cả các tính năng của khung nguồn mở mới nhất với thời gian chạy được tối ưu hóa hiệu suất của Amazon EMR mà không cần phải lập kế hoạch cũng như vận hành các phiên bản và cụm.

Với Amazon EMR, bạn có thể chạy các ứng dụng phân tích của mình trên các cụm EMR chuyên dụng, trên các Dịch vụ Kubernetes đàn hồi của Amazon (Amazon EKS) hoặc sử dụng tùy chọn triển khai EMR Serverless mới mà bạn không phải quản lý các cụm hoặc phiên bản. Khi bạn xây dựng ứng dụng Spark hoặc Hive bằng bản phát hành Amazon EMR, chẳng hạn như Amazon EMR 6.8, bạn có thể chạy ứng dụng trên các cụm EMR, trên các cụm EKS bằng cách sử dụng Amazon EMR trên EKShoặc sử dụng EMR Serverless mà không phải thay đổi ứng dụng.

Để tìm hiểu về lợi ích của từng tùy chọn triển khai trong Máy chủ EMR, tham khảo Một số khác biệt về tính năng giữa EMR Serverless và Amazon EMR trên EC2 là gì? trong Câu hỏi thường gặp về Amazon EMR. Bạn cũng có thể tìm hiểu về giá cho các tùy chọn này từ Trang định giá Amazon EMR. Nhiều khách hàng đã chạy các ứng dụng phân tích dữ liệu trên các cụm EMR và nhận thấy rằng tùy chọn không có máy chủ mới đơn giản hơn và ít tốn kém hơn.

Trong bài đăng này, chúng tôi thảo luận về cách bạn có thể ước tính chi phí để chạy một ứng dụng hiện đang chạy trên các cụm EMR bằng cách sử dụng tùy chọn serverless mới và thực hiện phân tích này đơn giản bằng cách sử dụng các chỉ số ứng dụng hiện tại của bạn. Cách tiếp cận này giúp bạn đánh giá và áp dụng tùy chọn triển khai hiệu quả nhất về chi phí cho ứng dụng. Tuy nhiên, trang định giá Amazon EMR không cho bạn biết cách bạn có thể dễ dàng ước tính chi phí chạy các ứng dụng cụm EMR hiện tại của mình trên EMR Serverless. Trong các phần sau, chúng tôi mô tả một cách tiếp cận cho phép bạn làm điều đó.

Mặc dù ví dụ trong bài đăng này thảo luận về cách bạn có thể ước tính chi phí cho các ứng dụng chạy trên cụm EMR, nhưng bạn cũng có thể sử dụng phương pháp này nếu bạn đang chạy ứng dụng Spark hoặc Hive ở nơi khác và muốn ước tính chi phí chạy ứng dụng đó trên EMR Không có máy chủ. Ví dụ: nếu bạn chạy các ứng dụng Spark hoặc Hive tự quản lý trên Đám mây điện toán đàn hồi Amazon (Amazon EC2) hoặc nếu bạn chạy công việc Spark trên Keo AWS, chúng tôi chỉ cho bạn cách bạn có thể sử dụng phương pháp này để ước tính chi phí chạy ứng dụng trên EMR Serverless.

Ước tính chi phí chạy các ứng dụng trên cụm EMR của bạn

Khi bạn chạy các ứng dụng trên các cụm Amazon EMR, bạn sẽ bị tính phí riêng cho những điều sau:

  1. Giá Amazon EC2 của các phiên bản cụm đang chạy (giá cho các máy chủ cơ bản)
  2. Giá cho Cửa hàng đàn hồi Amazon (Amazon EBS), nếu bạn chọn đính kèm ổ đĩa EBS
  3. Giá Amazon EMR cho các phiên bản cụm

Tổng chi phí vận hành cụm bao gồm cả ba. Có nhiều tùy chọn giá Amazon EC2 mà bạn có thể chọn, bao gồm Phiên bản theo yêu cầu, Phiên bản dự trữ 1 năm và 3 năm, Gói tiết kiệm dung lượng và Phiên bản Spot. Tùy chọn định giá Amazon EC2 mà bạn chọn xác định (a), giá Amazon EC2. Chi phí chạy ứng dụng trên các cụm EMR là tổng của (a), (b) và (c). Bạn có thể tính toán chi phí này trong suốt thời gian chạy cụm (từ khi cụm bắt đầu đến khi cụm kết thúc) hoặc trong một khoảng thời gian cụ thể trong khi cụm đang chạy. Chúng tôi khuyên bạn nên chạy cái trước, nghĩa là tính toán (a), (b) và (c) từ thời điểm bắt đầu cụm cho đến khi cụm kết thúc. Nếu bạn đã thiết lập thẻ cho cụm Amazon EMR của mình, bạn có thể dễ dàng lấy báo cáo chi phí chi tiết cho cụm EMR của bạn bằng AWS Cost Explorer.

Ước tính chi phí chạy các ứng dụng tương tự bằng EMR Serverless

Khi bạn chạy các ứng dụng tương tự bằng cách sử dụng EMR Serverless, bạn sẽ trả tiền cho số lượng vCPU, bộ nhớ và tài nguyên lưu trữ mà các ứng dụng của bạn sử dụng. Không tính phí riêng cho các phiên bản EC2 hoặc ổ đĩa EBS. Và, bạn chỉ trả tiền cho các tài nguyên mà ứng dụng thực sự sử dụng chứ không phải cho các phiên bản EC2 được cung cấp. Ví dụ: khi chạy ứng dụng trên cụm EMR, khi phiên bản EC2 trong cụm được sử dụng một phần (ví dụ: bộ nhớ 16 GB được sử dụng trong tổng số 64 GB khả dụng trên phiên bản hoặc 4 VCPU được sử dụng trong số 16 VCPU khả dụng trên phiên bản ) hoặc khi phiên bản EC2 không hoạt động (ví dụ: khi phiên bản đang khởi tạo hoặc đang chờ ứng dụng khởi động), bạn vẫn phải trả phí Amazon EC2, Amazon EMR và Amazon EBS cho phiên bản EC2 đầy đủ và trong khoảng thời gian đó phiên bản đang hoạt động trong cụm EMR. Với EMR Serverless, bạn chỉ phải trả tiền cho vCPU, bộ nhớ và tài nguyên lưu trữ được sử dụng từ khi nhân viên bắt đầu chạy công việc Spark hoặc Hive của bạn cho đến khi họ dừng lại.

Để ước tính chi phí chạy ứng dụng EMR Spark hoặc Hive của bạn trên EMR Serverless, trước tiên, bạn cần tổng hợp tổng vCore-giây điện toán, MB-giây bộ nhớ và GB-giây lưu trữ được sử dụng bởi mỗi ứng dụng YARN chạy trên cụm EMR của bạn, từ thời điểm bộ chứa SỢI được bắt đầu cho đến thời điểm bộ chứa SỢI kết thúc. Bạn có thể lấy các số liệu này từ nhật ký trình quản lý tài nguyên YARN có thể truy cập được từ máy chủ dòng thời gian YARN hoặc công cụ YARN CLI. Bạn có thể truy xuất thời gian chạy, vCore-giây và bộ nhớ MB-giây được sử dụng bởi mỗi ứng dụng YARN.

Nếu cụm của bạn chỉ chạy các ứng dụng Spark, thì có một cách tiếp cận đơn giản hơn để ước tính. Thay vì lấy vCore-giây, MB-giây bộ nhớ và GB-giây lưu trữ từ nhật ký trình quản lý tài nguyên YARN, bạn có thể lấy các chỉ số này từ nhật ký sự kiện Spark. Chúng tôi đã cung cấp công cụ Công cụ ước tính không cần máy chủ EMR, có thể phân tích cú pháp nhật ký sự kiện Spark cho ứng dụng của bạn và cung cấp số liệu tổng hợp cho ước tính chi phí của bạn.

Sau khi bạn nhận được số liệu sử dụng cho ứng dụng của mình, bạn có thể tính toán chi phí EMR Serverless ước tính bằng cách sử dụng Giá EMR Serverless. Chỉ cần nhân số vCore-giây tổng hợp của bạn với giá vCPU EMR Serverless mỗi giây, nhân MB-giây bộ nhớ tổng hợp với giá bộ nhớ EMR Serverless mỗi giây và nhân GB-giây dung lượng lưu trữ với giá bộ nhớ EMR Serverless mỗi giây (chỉ khi yêu cầu lưu trữ vượt quá 20 GB mỗi nhân viên). Bằng cách cộng các chi phí này cho vCPU, bộ nhớ và dung lượng lưu trữ, bạn có thể so sánh chi phí chạy các ứng dụng giống nhau trên EMR Serverless.

Trong cách tiếp cận này, chúng tôi giả định rằng hiệu năng của ứng dụng là tương đương nhau. Nói cách khác, kích thước (vCPU, bộ nhớ) và thời lượng thời gian chạy cho mỗi bộ chứa YARN trên cụm EMR giống với số lượng, kích thước và thời lượng thời gian chạy của các công nhân cần thiết để chạy ứng dụng trên EMR Serverless. Chúng tôi đưa ra giả định này vì thời gian chạy EMR cho một bản phát hành EMR là như nhau bất kể ứng dụng được chạy trên cụm EMR hay trên EMR Serverless.

Ví dụ

Hãy so sánh chi phí mẫu của Amazon EMR trên EC2 và EMR Serverless bằng cách sử dụng một cụm duy nhất.

Chúng tôi đã chạy ứng dụng Spark trên cụm EMR có năm nút (một nút chính, hai lõi và hai tác vụ và thu thập các chỉ số YARN bằng cách sử dụng YARN CLI. Đoạn mã sau hiển thị phân bổ tài nguyên tổng hợp của chúng tôi.

phân bổ nguồn lực tổng hợp

Chúng tôi đã tính toán Amazon EMR trên chi phí EC2 như sau:

  • Phiên bản cụm
    • Chính: m5.2xlarge:1
    • Lõi: r5.2xlarge:2
    • Nhiệm vụ: r5.2xlarge:2
  • Thời gian chạy cụm = 18 phút
  • Chi phí phiên bản theo yêu cầu
    • m5.2xlarge (8 vCPU, bộ nhớ 32 GiB)
      • Amazon EC2: 0.384 USD/giờ
      • Amazon EMR gia tăng: 0.096 USD/giờ
    • r5.2xlarge (8 vCPU, bộ nhớ 64 GiB)
      • Amazon EC2: 0.504 USD/giờ
      • Amazon EMR gia tăng: 0.126 USD/giờ

Sau đây là EMR khi tính toán chi phí EC2:

  • Chi phí Amazon EMR = ((1 nút chính x 0.096 USD/giờ) + (2 nút lõi x 0.126 USD/giờ) + (2 nút tác vụ x 0.126 USD/giờ)) = 0.60 USD
  • Chi phí Amazon EC2 = ((1 nút chính x 0.384 USD/giờ ) + (2 nút lõi x 0.504 USD/giờ) + (2 nút tác vụ x 0.504 USD/giờ)) = 2.40 USD
  • Chi phí/giờ của cụm Amazon EMR trên EC2 = 0.6 USD + 2.40 USD = 3 USD/giờ * 8/60 giờ (thời gian chạy tính bằng giờ)

Tổng chi phí Amazon EMR trên Amazon EC2 là 0.40 USD/giờ.

Để tính toán chi phí EMR Serverless, hãy tổng hợp vCore-giây và MB-giây bộ nhớ cho cùng một ứng dụng mà bạn đã chạy trước đây trên cụm EMR. Sau đó, nhân những con số đó với vCPU EMR Serverless và giá bộ nhớ. Kết quả tính toán của chúng tôi như sau:

  • Tổng_vcore_giây = 5737
  • Tổng_bộ nhớ_mb_giây = 120156631
  • Chuyển đổi thành vCPU/giờ và bộ nhớ-GB/giờ:
    • vCPU tổng hợp/giờ: 5737/(60*60)=1.59
    • Aggregated memory/hr: 120156631/(60*60*1024)=32.5
  • Tổng chi phí vCPU-giờ = 33 vCPU * 0.052624 VCPU/giờ * 8/60 = 0.23 USD
  • Tổng chi phí GB bộ nhớ = 1.59 MB * 0.0057785 bộ nhớ/giờ * 8/60 = 0.00122 USD

Trong ví dụ này, tổng chi phí EMR Serverless là 0.231 USD, giảm 42%.

Kết luận

Amazon EMR Serverless là một tùy chọn serverless mới ra mắt gần đây trong Amazon EMR, giúp dễ dàng chạy các khung nguồn mở như Spark và Hive mà không cần cấu hình, quản lý và thay đổi quy mô cụm. Những khách hàng đã sử dụng các cụm EMR muốn hiểu cách họ có thể ước tính chi phí chạy các ứng dụng EMR của mình bằng EMR Serverless. Chúng tôi đã trình bày một phương pháp mà bạn có thể sử dụng để tiến hành phân tích chi phí dựa trên việc phân tích các chỉ số ứng dụng từ các cụm EMR của bạn.

Chúng tôi hy vọng bạn dùng thử và chia sẻ phản hồi của bạn với chúng tôi!


Giới thiệu về tác giả

Radhika Ravirala là Giám đốc sản phẩm chính tại AWS.

Matthêu Liêm là Giám đốc kiến ​​trúc giải pháp cấp cao tại AWS.

Dấu thời gian:

Thêm từ Dữ liệu lớn AWS