Using Cost Allocation Report on Amazon Web Services (AWS)
AWS offers web services like compute instances. Lately, I have been using one cc2.8xlarge instance for 3 hours on a weekly basis to give training sessions. My 14 students connect to orion.cloud.raytrek.com (a canonical name to my AWS instance) during every training session.The instance has one additional 300 GiB EBS volume attached to it so that my students keep their data for the whole duration of the training program.
On AWS, I can tag anything I use: EC2 instances, EC2 EBS volumes, S3 buckets, and so on. A tag is a key and a value (key=value), for example Project=Ray-Cloud-Browser-public-demo. On AWS, it's possible to activate a feature called Cost Allocation Report. This feature deposits detailed usage reports in one S3 bucket that I own. These reports include costs.
I tagged my Cost Allocation Report S3 bucket with Project=Billing to get a grasp on on much it costs to use the Cost Allocation Report feature. The cost of getting my Cost Allocation Report reports is only $ 0.02.
I wrote a Ruby script that generates pivot tables for my projects. Below is my Cost Allocation Report tables with some confidential information redacted. Things under Project=not-classified are things that were not tagged.
Project=ray-in-cloud-cc2.8xlarge-CLI | ||||
Product Code | Usage Type | Units | Usage Quantity | Total Cost ($) |
---|---|---|---|---|
AWSDataTransfer | DataTransfer-Regional-Bytes | GB | 2.8E-7 | 0.0 |
AWSDataTransfer | DataTransfer-In-Bytes | GB | 0.00006033 | 0.0 |
AmazonEC2 | SpotUsage:cc2.8xlarge | instance-hours | 10.00000000 | 2.7 |
AWSDataTransfer | DataTransfer-Out-Bytes | GB | 0.00002029 | 0.0 |
AWSDataTransfer | DataTransfer-Out-Bytes | GB | 0.00004414 | 5.0e-06 |
Total= | 2.700005 | |||
Project=Ray-Cloud-Browser-############## | ||||
Product Code | Usage Type | Units | Usage Quantity | Total Cost ($) |
AWSDataTransfer | DataTransfer-Regional-Bytes | GB | 0.00004765 | 6.0e-06 |
AWSDataTransfer | DataTransfer-In-Bytes | GB | 0.00000286 | 0.0 |
AWSDataTransfer | DataTransfer-In-Bytes | GB | 8.65691169 | 0.0 |
AmazonEC2 | SpotUsage:t1.micro | instance-hours | 338.75138122 | 1.017348 |
AmazonEC2 | EBS:VolumeUsage | GB-months | 36.33402209 | 3.633367 |
AmazonEC2 | EBS:VolumeIOUsage | I/O requests | 3861215.84788799 | 0.385104 |
AWSDataTransfer | DataTransfer-Out-Bytes | GB | 0.00000230 | 0.0 |
AWSDataTransfer | DataTransfer-Out-Bytes | GB | 0.18180145 | 0.0 |
AWSDataTransfer | DataTransfer-Out-Bytes | GB | 0.00000500 | 1.0e-06 |
AWSDataTransfer | DataTransfer-Out-Bytes | GB | 0.39561271 | 0.047268 |
Total= | 5.083094 | |||
Project=formation-#############-bioinformatique-hiver-2013 | ||||
Product Code | Usage Type | Units | Usage Quantity | Total Cost ($) |
AWSDataTransfer | DataTransfer-Regional-Bytes | GB | 0.00045277 | 6.0e-05 |
AWSDataTransfer | DataTransfer-In-Bytes | GB | 3.90998689 | 0.0 |
AmazonEC2 | BoxUsage:cc2.8xlarge | instance-hours | 10.00000000 | 24.0 |
AmazonEC2 | EBS:VolumeUsage | GB-months | 145.47762856 | 14.547622 |
AmazonEC2 | EBS:VolumeIOUsage | I/O requests | 267824.57214411 | 0.026712 |
AWSDataTransfer | DataTransfer-Out-Bytes | GB | 0.10216341 | 0.0 |
AWSDataTransfer | DataTransfer-Out-Bytes | GB | 0.22231474 | 0.026562 |
Total= | 38.600956000000004 | |||
Project=not-classified | ||||
Product Code | Usage Type | Units | Usage Quantity | Total Cost ($) |
AWSDataTransfer | DataTransfer-Regional-Bytes | GB | 0.07435498 | 0.009904 |
AWSDataTransfer | DataTransfer-Regional-Bytes | GB | 0.00000645 | 1.0e-06 |
AWSDataTransfer | DataTransfer-In-Bytes | GB | 0.00165190 | 0.0 |
AWSDataTransfer | DataTransfer-In-Bytes | GB | 0.04349139 | 0.0 |
AWSDataTransfer | DataTransfer-In-Bytes | GB | 0.04270176 | 0.0 |
AWSDataTransfer | DataTransfer-In-Bytes | GB | 0.04325174 | 0.0 |
AWSDataTransfer | DataTransfer-In-Bytes | GB | 5.47499061 | 0.0 |
AWSDataTransfer | DataTransfer-In-Bytes | GB | 0.00000197 | 0.0 |
AWSDataTransfer | DataTransfer-In-Bytes | GB | 0.00018585 | 0.0 |
AmazonS3 | Requests-Tier1 | HTTP requests | 26.42622951 | 0.001066 |
AmazonEC2 | BoxUsage:cc2.8xlarge | instance-hours | 1.00000000 | 2.4 |
AmazonEC2 | SpotUsage:t1.micro | instance-hours | 1.02651934 | 0.003083 |
AmazonEC2 | SpotUsage:t1.micro | instance-hours | 250.47071823 | 0.752221 |
AmazonEC2 | EBS:VolumeUsage | GB-months | 28.04440006 | 2.804413 |
AmazonEC2 | DataProcessing-Bytes | 0.00146411 | 0.01 | |
AmazonSNS | Requests-Tier1 | HTTP requests | 459.00000000 | 0.0 |
AmazonEC2 | EBS:VolumeIOUsage | I/O requests | 3051481.50818382 | 0.304344 |
AmazonEC2 | SpotUsage:cr1.8xlarge | instance-hours | 9.00000000 | 3.09 |
AmazonEC2 | LoadBalancerUsage | 1.00000000 | 0.03 | |
AmazonEC2 | SpotUsage:cc2.8xlarge | instance-hours | 10.00000000 | 2.7 |
AWSDataTransfer | DataTransfer-Out-Bytes | GB | 0.00025260 | 0.0 |
AWSDataTransfer | DataTransfer-Out-Bytes | GB | 0.00293550 | 0.0 |
AWSDataTransfer | DataTransfer-Out-Bytes | GB | 0.00102118 | 0.0 |
AWSDataTransfer | DataTransfer-Out-Bytes | GB | 0.00026375 | 0.0 |
AWSDataTransfer | DataTransfer-Out-Bytes | GB | 0.14774928 | 0.0 |
AWSDataTransfer | DataTransfer-Out-Bytes | GB | 4.3E-7 | 0.0 |
AWSDataTransfer | DataTransfer-Out-Bytes | GB | 0.00040591 | 0.0 |
AWSDataTransfer | DataTransfer-Out-Bytes | GB | 0.00054968 | 6.6e-05 |
AWSDataTransfer | DataTransfer-Out-Bytes | GB | 0.00638785 | 0.000763 |
AWSDataTransfer | DataTransfer-Out-Bytes | GB | 0.00222216 | 0.000266 |
AWSDataTransfer | DataTransfer-Out-Bytes | GB | 0.00057394 | 6.9e-05 |
AWSDataTransfer | DataTransfer-Out-Bytes | GB | 0.32151280 | 0.038415 |
AWSDataTransfer | DataTransfer-Out-Bytes | GB | 9.4E-7 | 0.0 |
AWSDataTransfer | DataTransfer-Out-Bytes | GB | 0.00088329 | 0.000106 |
AmazonEC2 | SpotUsage:cr1.8xlarge | instance-hours | 3.00000000 | 1.03 |
AmazonEC2 | SpotUsage:cc2.8xlarge | instance-hours | 1.00000000 | 0.27 |
Total= | 13.444717 | |||
Project=Ray-Cloud-Browser-public-demo | ||||
Product Code | Usage Type | Units | Usage Quantity | Total Cost ($) |
AWSDataTransfer | DataTransfer-Regional-Bytes | GB | 0.00021335 | 2.8e-05 |
AWSDataTransfer | DataTransfer-In-Bytes | GB | 0.00002007 | 0.0 |
AWSDataTransfer | DataTransfer-In-Bytes | GB | 0.22613437 | 0.0 |
AmazonEC2 | SpotUsage:t1.micro | instance-hours | 338.75138122 | 1.017348 |
AmazonEC2 | EBS:VolumeUsage | GB-months | 36.33402209 | 3.633367 |
AmazonEC2 | EBS:VolumeIOUsage | I/O requests | 3726756.78467940 | 0.371693 |
AWSDataTransfer | DataTransfer-Out-Bytes | GB | 0.00001613 | 0.0 |
AWSDataTransfer | DataTransfer-Out-Bytes | GB | 0.56092834 | 0.0 |
AWSDataTransfer | DataTransfer-Out-Bytes | GB | 0.00003510 | 4.0e-06 |
AWSDataTransfer | DataTransfer-Out-Bytes | GB | 1.22061940 | 0.145841 |
Total= | 5.168280999999999 | |||
Project=ray-in-cloud-cc2.8xlarge | ||||
Product Code | Usage Type | Units | Usage Quantity | Total Cost ($) |
AWSDataTransfer | DataTransfer-In-Bytes | GB | 0.04343685 | 0.0 |
AmazonEC2 | SpotUsage:cc2.8xlarge | instance-hours | 10.00000000 | 2.7 |
AWSDataTransfer | DataTransfer-Out-Bytes | GB | 0.00232737 | 0.0 |
AWSDataTransfer | DataTransfer-Out-Bytes | GB | 0.00506452 | 0.000605 |
Total= | 2.7006050000000004 | |||
Project=Billing | ||||
Product Code | Usage Type | Units | Usage Quantity | Total Cost ($) |
AWSDataTransfer | DataTransfer-In-Bytes | GB | 0.00301682 | 0.0 |
AmazonS3 | Requests-Tier1 | HTTP requests | 221.57377049 | 0.008934 |
AmazonS3 | Requests-Tier2 | HTTP requests | 362.00000000 | 0.01 |
AmazonS3 | TimedStorage-ByteHrs | GB | 0.00004882 | 0.01 |
AWSDataTransfer | DataTransfer-Out-Bytes | GB | 0.00011206 | 0.0 |
AWSDataTransfer | DataTransfer-Out-Bytes | GB | 0.00024386 | 2.9e-05 |
Total= | 0.028963000000000003 | |||
Project=Ray-TestSuite | ||||
Product Code | Usage Type | Units | Usage Quantity | Total Cost ($) |
AmazonEC2 | EBS:VolumeUsage | GB-months | 0.01230827 | 0.001231 |
AmazonEC2 | EBS:VolumeIOUsage | I/O requests | 21529.28710468 | 0.002147 |
Total= | 0.003378 | |||
Project=###############-instance-testing | ||||
Product Code | Usage Type | Units | Usage Quantity | Total Cost ($) |
AmazonEC2 | BoxUsage:hs1.8xlarge | instance-hours | 1.00000000 | 4.6 |
Total= | 4.6 |
People at Amazon.com, Inc. always say that they are obsessed by theirs customers. I am a happy customer of Amazon Web Services, Inc. (AWS), and I can confirm that AWS is really easy for the customer for many reasons, like the Cost Allocation Report.
Cost Allocation Report is really a feature for the customer that allows a better understanding of costs in the cloud. AWS could have charged a lot for that kind of feature -- banks charge their customers a lot for getting account statements from 3 years ago.
p.s.: I have no financial or commercial links with AWS, I am really just one happy AWS customer. I really think that AWS is giving me a great service for the money I give them. It's a win-win situation.
Comments
Bucket Tagging is very helpful to segment our s3 bill according to the tag added on the buckets.
Regards
Ronak Jain
Bucket Explorer
Bucket Explorer is graphical user interface (GUI) to manage data on Amazon S3 in an efficient and user friendly way.
> Hi Sébastien, I'm interested in
> using AWS for genome assemblies.
> I'm looking at the super large
> memory instances but some of the
> new terminology is hard to
> translate into terms I'm used to.
>
> Could you comment a bit on the
> pricing and time costs of doing,
> say a 50Mb genome using AWS?
You can use the spot market -- it is cheap and you can have access to nice machines.
The cr1.8xlarge has 32 vCPUs, 244 GiB memory and even SSDs !
(see http://aws.amazon.com/ec2/instance-types/instance-details/ )
cr1.8xlarge is around 0.35 $ per hour in the spot market.
>
> Is transferring/reading data from
> EBS just as fast as reading from
> local disk?
EBS is tunable. Regular EBS is probably slower, but you can provision a number of operations per second or use EBS-optimized instances which uses a dedicated network channel for EBS.
Since cr1.8xlarge has SSD disks, you can also use these (but they are ephemeral).
But Ray only need disks to load input data and store results. All computation is in-memory.
>
> Thanks,