Многопользовательский биллинг в Amazon Web Sevices

от автора

Привет хабрасообщество! image

Есть большие проекты с отдельными аккаунтами и множеством IAM пользователями. Но чаще встречаются более мелкие клиенты, и тут хотелось бы собрать всех вместе, но биллить их отдельно. Как же это сделать? Как выставлять счёт разным клиентам под одним аккаунтом AWS? Я сейчас об этом и расскажу.

Тегирование

Для разделения ресурсов и многопользовательского биллинга в AWS используются теги. Тегирование можно приладить ко всему, что угодно. Разного рода трафик, операции ввода-вывода, RDS, SQS, S3 и т.д. можно считать отдельно по тегами. Итак, возьмём главным тег PROJECT и применим его ко всем серивсам, например:

S3 Bucket

Отчёты от Amazon будут приходить в отдельный S3 бакет, который нужно создать и подготовить. Создаём бакет и приставляем к нему следующий Bucket Policy:

Bucket Policy

{ 	"Version": "2008-10-17", 	"Id": "Policy1335892530063", 	"Statement": [ 		{ 			"Sid": "Stmt1335892150622", 			"Effect": "Allow", 			"Principal": { 				"AWS": "arn:aws:iam::386209384616:root" 			}, 			"Action": [ 				"s3:GetBucketAcl", 				"s3:GetBucketPolicy" 			], 			"Resource": "arn:aws:s3:::epm-cit_fin_reports" 		}, 		{ 			"Sid": "Stmt1335892526596", 			"Effect": "Allow", 			"Principal": { 				"AWS": "arn:aws:iam::386209384616:root" 			}, 			"Action": "s3:PutObject", 			"Resource": "arn:aws:s3:::epm-cit_fin_reports/*" 		} 	] }  

Эта политика даёт сервису биллинга AWS доступ к вашему бакету, чтоб складывать в него отчёты.

Billing Preferences

Далее идём на страницу Billing Preferences и включаем все сервисы, указав нужный бакет с уже установленной политикой:

Cost Allocation Report

Перейдя на страницу настроек отчёта, мы выберем теги, по которым мы будем выставлять счёт нашим клиентам:

Отчёты

Итак, со временем в выбранном бакете появятся файлы отчётов в формате CSV. В них будут присутствовать все айтемы, за которые AWS снимает деньги с карты. Те айтемы, которые исходят от сервисов, которые были тегированы, будут помечены. В Excel/OO Calc можно отфильтровать строки по тегам и вывести сумму, которую накрутил отдельный клиент на вашем аккаунте.

Можно сделать что-то такое, чтоб красиво оформлять отчёты:
image

Выводы

В этом небольшом рассказе я дал основные моменты многопользовательского биллинга в AWS. Так легко и просто разделить сервисы между разными пользователями и выставлять им оправданные счета. К сожалению, сейчас нельзя разграничить права доступа между клиентами, чтобы они сами менеджили свои ресурсы под одним аккаунтом, но я думаю, когда-нибудь это станет возможно и обязательно напишу на Хабре как это сделать!

ссылка на оригинал статьи http://habrahabr.ru/company/epam_systems/blog/160545/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *