10 TIPS giúp bạn giảm chi phí trên AWS
(Bài viết này có sự đóng góp của Shankar Ramachandran – Chuyên gia về SA và tối ưu hóa chi phí)
Giới thiệu
AWS hiện cung cấp các gói dịch vụ đa dạng với các mức giá khác nhau đem đến cho khách hàng sự linh hoạt trong việc quản lý chi phí mà vẫn đảm bảo hiệu suất hoạt động theo nhu cầu của doanh nghiệp. Nhìn chung, quy trình tối ưu hóa chi phí trên AWS đều xuất phát từ việc quản lý chi phí và mức sử dụng trên AWS, phân tích dữ liệu để tìm các phương án tối ưu. Tuy nhiên, bài viết này sẽ đưa ra những cách tiếp cận có tính chiến thuật, giúp bạn tiết kiệm được chi phí một cách hiệu quả.
Chuẩn bị
Trước khi thử nghiệm bất kì sự thay đổi nào, hãy xác định rõ các loại phí mà bạn hiện đang chi trả cho các dịch vụ của AWS. AWS Free Tier cho phép khách hàng sử dụng một số dịch vụ của mình miễn phí trong một giới hạn nhất định. Trước hết, hãy thử làm theo các bước trong video này để biết bạn đã tận dụng tối đa các tính năng miễn phí mà AWS cho phép chưa nhé!
Tiếp theo, sử dụng AWS Cost Explorer để kiểm tra và phân tích các chỉ số về chi phí và mức sử dụng. Công cụ này sẽ cung cấp cho bạn các báo cáo trực quan về chi phí và mức sử dụng ở cấp tổng quát (Ví dụ: các tài khoản AWS, các dịch vụ AWS) hay ở cấp tài nguyên (ví dụ: EC2 instance ID). Trước hết, hãy xác định các tài khoản ngốn nhiều chi phí nhất qua “Báo cáo chi phí theo tài khoản” hàng tháng. Tiếp đến, xác định các dịch vụ tiêu tốn nhiều chi phí trong từng tài khoản này. Bạn có thể lấy thông tin này từ “Báo cáo chi phí theo dịch vụ hàng tháng”. Khi xem chi tiết đến đơn vị giờ, resource và tags, bạn có thể lọc và xác định được các resource tốn nhiều chi phí nhất.
Báo cáo chi tiết của Cost Explorer ở cấp resource
Bây giờ, hẳn bạn đã nắm được tình trạng về chi phí và mức sử dụng trên AWS. Tiếp theo, cùng điểm qua 10 tips bạn có thể ứng dụng ngay hôm nay để giảm thiểu ngân sách chỉ với những tools và dịch vụ có sẵn của AWS.
#1 Xác định các EC2 instances có mức sử dụng thấp và giảm chi phí bằng cách dừng hoặc điều chỉnh lại instances type
AWS Cost Explorer Resource Optimization cung cấp cho bạn một báo cáo về các EC2 instance không hoạt động tạm thời hoặc có mức sử dụng thấp. Bạn sẽ giảm được chi phí nếu dừng hoặc giảm xuống các instances type thấp hơn. Sử dụng AWS Instance Scheduler để thiết lập chế độ tự động dừng các instances trong các trường hợp trên hay AWS Operations Conductors để tự động điều chỉnh số lượng EC2 instances theo trên các đề xuất từ Cost Explorer.
Đề xuất rightsizing của Cost Explorer
Sử dụng AWS Compute Optimizer để xem các đề xuất về giảm instance type trong cùng dòng. AWS Compute Optimizer cũng đưa ra các gợi ý thu hẹp số lượng instance trong cùng hoặc khác dòng, nhân rộng số lượng instance để giảm bớt các tắc nghẽn về hiệu suất cũng như các đề xuất cho các EC2 instance trong nhóm auto scaling.
#2 Xác định Amazon EBS volumes có mức sử dụng thấp và giảm chi phí bằng snapshot sau đó xóa chúng
Các EBS volume có ít hoạt động (dưới 1 IOPS mỗi ngày) trong vòng 7 ngày cho thấy chúng có thể đang không được sử dụng. Xác định các EBS volume này bằng cách sử dụng EBS Volumes Check của Trusted Advisor . Để giảm chi phí, trước tiên hãy lấy snapshot volume (phòng trường hợp bạn cần dùng đến sau này), sau đó xóa chúng. Bạn có thể tự động hóa việc tạo các snapshot bằng trình Amazon Data LifeCycle Manager. Làm theo các hướng dẫn sau để xóa EBS volume.
#3 Phân tích mức sử dụng Amazon S3 và giảm chi phí bằng cách tận dụng các storage tier có mức phí thấp hơn
Sử dụng S3 Analytics để phân tích các dạng truy cập lưu trữ trên object data trong ít nhất 30 ngày. Công cụ này sẽ đưa ra các đề xuất giúp bạn giảm chi phí bằng cách tận dụng S3 Infrequently Accessed (S3 IA). Bạn cũng có thể di chuyển các object này vào tầng lưu trữ với chi phí thấp hơn một cách tự động nếu sử dụng Life Cycle Policies hay S3 Intelligent-Tiering (tự động phân tích và chuyển các objects đến tầng lưu trữ thích hợp).
#4 Xác định Amazon RDS, Amazon Redshift instances với mức sử dụng thấp và giảm chi phí bằng cách dừng (RDS) và tạm dừng (Redshift)
Sử dụng RDS Idle DB instances check trong Trusted Advisor Amazon sẽ giúp bạn xác định các DB instances không có bất kỳ kết nối nào trong vòng 7 ngày qua. Để giảm chi phí, hãy setup chế độ tự động dừng các DB instances này theo các bước được mô tả trong blog này . Đối với Redshift, sử dụng Redshift clusters check trong Trusted Advisor Amazon để xác định các clusters không có kết nối trong 7 ngày qua và nhóm có dưới 5% cluster tận dụng được 99% CPU trong 7 ngày liên tiếp. Việc tạm dừng các cluster này (theo hướng dẫn trong bài blog này) sẽ giúp bạn tiết kiệm chi phí.
Dừng các Redshift clusters có mức sử dụng thấp
#5 Phân tích mức sử dụng Amazon DynamoDB và giảm chi phí bằng Autoscaling hoặc chi trả theo On-demand
Phân tích mức độ sử dụng DynamoDB bằng cách theo dõi 2 chỉ số: ConsumedReadCapacityUnits và ConsumedWriteCapacityUnits trong CloudWatch. Sử dụng AutoScaling để tự động scale (in and out) bảng DynamoDB. Bật chế độ Auto Scaling theo các bước sau. Ngoài ra bạn cũng có thể sử dụng lựa chọn chi trả theo on-demand và trả phí theo từng request read/write. Như vậy, bạn có thể tiết kiệm cũng như dễ dàng cân bằng giữa chi phí và hiệu suất.
#6 Kiểm tra lại networking và giảm chi phí bằng cách xóa các idle load balancer
Sử dụng Load Balancers check trong Trusted Advisor để lấy báo cáo về các load balancer có RequestCount dưới 100 trong 7 ngày liên tiếp. Sau đó, thực hiện theo các bước sau để xóa các load balancers này. Ngoài ra, bạn cũng có thể sử dụng Cost Explorer để xem lại chi phí truyền dữ liệu theo các bước được nêu trong bài blog sau.
Nếu quá trình truyền dữ liệu từ EC2 sang public internet tốn nhiều chi phí, hãy cân nhắc sử dụng Amazon CloudFront. Bất kỳ hình ảnh, video hoặc nội dung web tĩnh nào cũng có thể được cached tại các region của AWS trên toàn thế giới, bằng cách sử dụng Amazon CloudFront Content Delivery Network (CDN). CloudFront loại bỏ sự truy cập không cần thiết và giảm tải cho server.
#7 Sử dụng Amazon EC2 Spot Instances để giảm chi phí EC2
Nếu như workload của bạn có thể chịu lỗi được thì việc sử dụng Spot instances sẽ giúp cho bạn giảm thiểu chi phí lên tới 90%. Các ví dụ về workload có thể sử dụng Spot instances như big data , containerized workload, CI/CD, web servers, điện toán hiệu năng cao (High-performance computing) và công việc phát triển. Với EC2 Auto Scaling, bạn có thể kết hợp cả phiên bản On-Demand và Spot instances để đạt mục tiêu về công suất. Auto scaling sẽ tự động kiểm tra các request đến Spot instance và cố gắng duy trì mục tiêu về hiệu năng ngay cả khi Spot instance gặp sự cố . Bạn có thể tìm hiểu thêm về Spot qua đoạn AWS re:Invent 2019 tại đây.
#8 Kiểm tra và sửa đổi cấu hình EC2 Auto Scaling Groups
Một EC2 Autoscaling group có thể cho phép bạn nhân rộng hoặc thu hẹp số lượng phiên bản EC2 theo nhu cầu. Kiểm tra lại các hoạt động scaling bằng lệnh CLI hoặc trên console dựa theo các bước sau. Từ đó phân tích các kết quả để đảm bảo chính sách nhân rộng – scaling policy có thể điều chỉnh để thêm các instances thích hợp và tối ưu tài nguyên nhất. Check lại phần cài đặt, cố gắng đáp ứng được yêu cầu từ end user với số lượng phiên bản EC2 tối thiểu.
#9 Sử dụng Reserved Instances (RI) để giảm chi phí RDS, Redshift, ElastiCache và Elasticsearch
Đăng ký sử dụng trong một năm mà không phải trả trước phí RIs để được giảm giá tới 42% so với giá theo nhu cầu. Tận dụng các đề xuất dựa trên mức sử dụng RDS, Redshift, ElastiCache và Elasticsearch từ AWS Cost Explorer. Đừng quên điều chỉnh các thông số – parameter lên một năm và không trả phí trước. AWS yêu cầu cam kết sử dụng dịch vụ trong một năm tuy nhiên điểm hòa vốn thường rơi vào tháng thứ 7 tới tháng thứ 9. Do vậy bạn nên thực hiện điều số 4 trước điều số 9 này.
# 10 Sử dụng Compute Savings Plans để giảm chi phí EC2, Fargate và Lambda
Compute Savings Plans tự động áp dụng nếu bạn sử dụng EC2 instance bất kể dòng biên bản, kích thước, AZ, khu vực, hệ điều hành hay hình thức thuê và cũng áp dụng cho việc sử dụng Fargate và Lambda. Đăng ký sử dụng trong một năm mà không cần trả trước để được giảm giá tới 54% so với giá theo nhu cầu . Tận dụng các đề xuất từ AWS Cost Explorer và đảm bảo rằng bạn đã chọn điện toán, thời gian một năm và không trả trước. Khi đăng ký Saving Plans, mọi loại sử dụng điện toán sẽ được tự động tính theo giá Savings Plans. Mọi hoạt động sử dụng vượt trên cam kết sẽ được tính phí theo mức giá Theo nhu cầu thông thường. Do vậy hãy làm điều số 1 trước điều số 10.
Đề xuất Savings Plans
Với 10 bước này, bạn có thể tiết kiệm chi phí trên EC2, Fargate, Lambda, EBS, S3, ELB, RDS, Redshift, DynamoDB, ElastiCache và Elasticsearch. Bạn có thể xây dựng budget bằng AWS Budget để được thông báo khi có sự thay đổi trong chi phí và mức sử dụng
Thiết lập cảnh báo về chi phí
Sử dụng AWS Budget, bạn cũng có thể thiết lập các cảnh báo về chi phí dự báo trong tương lai (ngoài dự kiến thực tế). Điều này giúp bạn chủ động trong việc giảm chi phí và đoán trước các vấn đề phát sinh.
Kết luận
Để tìm hiểu thêm các kỹ thuật tối ưu hóa chi phí, hãy tham khảo thêm tại on-demand webinar – Nine Ways to Reduce Your AWS Bill.
Tác giả: Roshni Pary
Bài viết gốc: tại đây
Người dịch: Vân Phạm, Hoàng Lân
Like và follow fanpage của Pixta Việt Nam để cập nhật các thông tin công nghệ hữu ích nhé!