Keyword: Build CUDOS, KPI, CID for infra multi Organization to cost optimization AWS
Tình cờ gần đây mình được người sếp cũ giao cho một task khá thú vị, đó là tìm hiểu và xây dựng Dashboard để theo dõi và tối ưu hóa chi phí cho hạ tầng Cloud AWS nghe thì cũng thấy bình thường đúng không, vì vấn đề tối ưu chi phí này phía DevOps chúng mình chẳng còn xa lạ gì nữa, nhưng nó sẽ trở nên thú vị là vì vấn đề này sẽ hỗ trợ tốt cho môi trường AWS với nhiều Account ID (Multi Organization).
Trong hạ tầng AWS nếu chỉ với một Account ID thì chúng ta phải settings tag có name của các phòng ban để đến lúc tiền bạc cũng dễ phân chia và biết được nơi nào dùng nhiều và nơi nào sử dụng ít, v.v... Nhưng nếu như chúng ta chia ra nhiều Account ID thì nó sẽ còn rõ ràng hơn nữa, vì vậy việc sử dụng Multi Account cũng khá phổ biến và khi với nhiều Account ID như vậy thì việc để tối ưu hóa nó thì lại càng cần thiết, thành ra giờ đây mình mới có bài viết ngày hôm nay cho các bạn, chúng ta sẽ xây dựng một hệ thống Dashboard của CUDOS, KPI, CID để có thể theo dõi cho điều đó, thật ra thì nó cũng không khác gì Grafana gì mấy đâu nhưng nó là một Dashboard dành cho tiền bạc tài chính cũng như là bên phía AWS tài trợ luôn
Để thực hiện cài đặt các quá trình này một cách tự động hóa chúng ta sẽ sử dụng CloudFromation với 3 bước chính
Bước 1: Xây dựng S3 Bucket và auto script cho tài khoản Destination (đây sẽ là tài khoản chính để nhận tất cả report từ các tài khoản Souce gửi đến)Với tài khoản này thì nó khá là quan trọng vì nó sẽ là nơi nhận toàn bộ report về billing & cost từ các account AWS, bây giờ chúng ta sẽ thực hiện đăng nhập vào tài khoản AWS Destination cần cài đặt sau đó thực hiện install với CloudFormation đơn giản bằng cách click vào link sau.
https://console.aws.amazon.com/cloudformation/home#/stacks/create/review?&templateURL=https://aws-managed-cost-intelligence-dashboards.s3.amazonaws.com/cfn/cur-aggregation.yaml&stackName=CID-CUR-Destination¶m_CreateCUR=False¶m_DestinationAccountId=REPLACE%20WITH%20THE%20CURRENT%20ACCOUNT%20ID¶m_SourceAccountIds=PUT%20HERE%20PAYER%20ACCOUNT%20ID
Sau khi đã click vào rồi thì chúng ta sẽ cần chú ý những trường sau đây
- Destination Account Id: Nơi để chúng ta đặt "Account ID" của tài khoản main cũng như là tài khoản Destination.
- CreateCUR: Phần này sẽ là mặc định "False" nếu như chúng ta có 2 tài khoản nghĩa là một tài khoản Destination và một tài khoản Source, nhưng nếu như các bạn chỉ có một tài khoản Destination và các bạn muốn lấy report về Bill & Cost tại tài khoản Destination này luôn thì làm sao? chúng ta sẽ thực hiện bật nó lên thành "True" nếu các bạn muốn thế nhé.
- Source Account Ids: Còn ở đây đúng như cái tên của nó thì nó sẽ là nơi điền vào các tài khoản ID mà nó sẽ thực hiện lấy report của bill, ví dụ như mình có 2 tài khoản là Destination và Source đi thì mình sẽ điền vào như thế với `,` phân cách ở giữa (Ví dụ: 123456789,987654321) kiểu vậy, để mình lấy vài ví dụ cho dể hiểu hơn nhé
Tài khoản Destination cũng là tài khoản Source:
Ở đây các bạn có thể thấy, CreateCUR được chuyển thành "True" vì tôi muốn lấy theo dõi luôn tài khoản DestinationNhưng giờ tôi có thêm một tài khoản Source khác, cùng với tài khoản Destination để lấy report thì sao?
Cứ thế bạn sẽ cứ "," và thêm các Source Account ID vào bên trong Source Account Ids của CID-CUR-Destination để nhận, sau này nếu các bạn muốn update các Source Account mới thì thực hiện update bằng CloudFormation luôn, chỉnh sửa tại đây
Mà quên, mình quên mất nếu như các bạn không muốn lấy report các thông tin billing & cost từ tài khoản Destination cũng như tài khoản ID main thì các bạn để CreateCUR theo mặc định của nó là "False" nhé, như vậy nó sẽ là như sau
Vì lúc này tài khoản main chúng ta không dùng để lấy bill nữa nên thành ra cũng không cần điền vào "Source Account Ids" với Account ID của Destination nữa
Sau khi đã lựa chọn và setting đúng như những gì bạn muốn rồi thì thực hiện run bằng cách click "Create stack" nào
I acknowledge that AWS CloudFormation might create IAM resources.
Chú ý nhớ phải click vào chữ màu đen trên nhé để cho phép nó tạo IAM
Bước 2: Xây dựng S3 Bucket cho tài khoản Source (Tại đây nó khá giống với lại bước 1 nhưng chỗ CreateCUR chúng ta sẽ là True và Destination Account Id chính là ID ở trên bước 1 chúng ta đã điền) điều này giúp cho nó tạo ra folder CUR và lấy data về Destination
Các bạn có thể click vào link sau.
CID-CUR-Replication Backend:
https://console.aws.amazon.com/cloudformation/home#/stacks/create/review?&templateURL=https://aws-managed-cost-intelligence-dashboards.s3.amazonaws.com/cfn/cur-aggregation.yaml&stackName=CID-CUR-Replication¶m_CreateCUR=True¶m_DestinationAccountId=REPLACE%20WITH%20DATA%20COLLECTION%20ACCOUNT%20ID¶m_SourceAccountIds=
Thật ra 2 link CloudFormation này theo mình biết thì tụi nó hoàn toàn giống nhau chỉ khác với nhau một điều đó là ở chỗ Stack name và CreateCUR, điều này cũng đủ để chúng ta hiểu ra vấn đề rồi đúng không nào
Còn khi config để connect thì bên CID-CUR-Replication khác với CID-CUR-Destination là chỗ Source Account ID ở phía Source Account chúng ta không cần điền gì thêm cả vì điều này chỉ làm ở Destination Account
Sau đó chúng ta cũng thực hiện "I acknowledge that AWS CloudFormation might create IAM resources. " và chọn Create stack
Bước 3: Xây dựng dashboard CUDOS, KPI, CID cho Quicksight service
Chúng ta thực hiện tạo tài khoản cho Quicksight, sau khi đã có tài khoản thì chúng ta thực hiện click vào link CloudFormation sau để cài đặt dashboard nhé
Install Cloud-Intelligence-Dashboards
Cloud-Intelligence-Dashboards Backend:
https://console.aws.amazon.com/cloudformation/home#/stacks/create/review?templateURL=https://aws-managed-cost-intelligence-dashboards.s3.amazonaws.com/cfn/cid-cfn.yml&stackName=Cloud-Intelligence-Dashboards¶m_DeployCUDOSv5=yes¶m_DeployKPIDashboard=yes¶m_DeployCostIntelligenceDashboard=yes
Khi đã truy cập vào CloudFormation của việc tạo dashboard rồi thì chúng ta thực hiện lấy username của Quicksight để điền vào nhé
Tại CloudFormationChúng ta sẽ cần chú ý những vấn đề sau
s3://cid-{account_id}-shared/cur/ với cái này chúng ta sẽ cần thay thế account_id chính là ID của Account Destination
Lựa chọn các dashboard để dựng, mình thì cứ để mặc định nghĩa là nó sẽ cài hết toàn bộ CUDOS, KPI, CID luôn, sau đó vẫn chọn "I acknowledge that AWS CloudFormation might create IAM resources with custom names." và Create stack đợi chờ cho CloudFormation chạy.
Trong quá trình chờ đợi CloudFormation chạy chúng ta sẽ thực hiện click chọn Manage QuickSight để cài đặt một số vấn đề cần như là S3 Security v.v
Tiếp đến chọn "
Click chọn all với tất cả s3 bucket hiện có cho vấn đề CUDOS, KPI, CID được tạo từ CloudFormation của chúng ta
Xong thì giờ chỉ việc chờ đợi 24h để cho nó cập nhật nhé, mình thật ra là phải đợi 2 ngày liên tục để có thể nhìn nhận nó một cách khả quang hơn, chứ nếu mà chỉ 24h thì nó chỉ hiển thị đúng cái vấn để tiền đang sử dụng là chỗ này
Và sau vài ngày thì nó được cao thăm hơn xíu nhưng vẫn còn no data khá nhiều, thôi để vài bữa mình sẽ tìm Source Account xịn hơn rồi đập vô coi nó ra sao, nhưng tạm thời thì nó cũng khá ổn
Mình đã tham khảo bài viết tại đây để có thể thực hiện được những điều này, chú ý kiểm tra các troubleshoot của nó hoặc kéo data về bằng tay nếu như auto hoạt động chậm bằng cách truy cập vào refesh tại Datasets nhé, chúc các bạn thành công.
0 Comments
Vài lời muốn nói:
* Không được nhận xét thô tục bởi mình biết các bạn là những người văn minh.
* Pass giải nén mặt định là itblognote hoặc itblognote.com nếu có Pass khác thì mình sẽ ghim trong bài viết.
* Click vào quảng cáo và chia sẻ bài viết để mình có thêm động lực viết bài nhé.