8:22am Today is price history. So basically Amazon regularly offers price change. Some temporary changes like the inbout data transfer that is free to June 30th and more often than not it reduces the price. For example starting February 1st Amazon lowers outbound data transfer pricing by $0.02 across all of our services, in all usage tiers, and in all Regions
The new outbound data transfer pricing will be:
- First 10 TB per Month: $0.15 per GB
- Next 40 TB per Month: $0.11 per GB
- Next 100 TB per Month: $0.09 per GB
- Over 150 TB per Month: $0.08 per GB
Currently I created the price structure manually (programmatically) and have a structure for each services that list all the price points for each aspect of the service across all regions. Ultimately I want to be able to just download any price from the Amazon websites and create this structure automatically, but I’ll leave that for version 1.1. Additionally the application should have a pricing tab that visuallize this pricing structure, but that will also wait for version 1.1. Also as mentioned in a previous blog entry I don’t have the price structure for historical periods so you can download usage data for any of your period but currently the aggregation calculation would be wrong as based on the wrong pricing data. I’m not sure where I can find all the historical prices. I’ll check further on Amazon website and on my bills to see if I can rebuilt a consistent historical pricing structure. If you know where to find historical prices for Amazon’s Web services, please let me know?
Ok, my MiFi battery ran out, time to move from Perkins to my InLaws office.
9:56am All right, I just integrated my new quarters. First thing let’s update to Flex 3.5a which supposedly fixes the auto update issue I encountered a few weeks ago. I just installed the new SDK and remove the work around and the auto update seems to work.
Now back onto the historical price structure. I may have 30 minutes before I switch to another project for a little while, as I have Cameron coming by to my InLaws office to work on that other project.
I have the impression that Amazon always does a price change on the end of a month. I will need to verify this, but assuming that’s true I could just determine the price structure before running the aggregation. Currently the aggregator asks for the pricing structure based on the service: this.pricing = BasePricing.pricingForService(service, “usa”); The service being ‘ec2’, ‘s3’ and so on. Now I could just pass the start of the period to the pricingForService method. Note the usage aggregator doesn’t currently know what period it is aggregating as it just passed the usage data from that period. So this is another change. The Pricing class now needs to return a proper structure based on the time. So I may just start by adding delta’s (price changes) to each Pricing class. If there are more substantial price changes I may have a dedicated pricing instance per service for each price change. If I look at my current pricing objects this change affects the DataTransfer-Out-Bytes for ec2, rds, sdb, and sqs. Clearly I missed to implement the proper pricing for S3. I’ll fix that next week.
5:45pm After a good coding session with Cameron, I’m now back at Panera to code the historical pricing.
7:12pm I now can register simple price changes for one usage type and chain for multiple price changes:
var februar2010Change:BasePricing = base.withPriceChange(‘RunInstances*DataTransfer-Out-Bytes’,
[GIGA, [{unit:TB10, price:0.15}, {unit:TB40, price:0.11}, {unit:TB100, price:0.09} , 0.08]])
.withPriceChange(‘RunInstances*USW1-DataTransfer-Out-Bytes’,
[GIGA, [{unit:TB10, price:0.15}, {unit:TB40, price:0.11}, {unit:TB100, price:0.09} , 0.08]])
.withPriceChange(‘RunInstances*EU-DataTransfer-Out-Bytes’,
[GIGA, [{unit:TB10, price:0.15}, {unit:TB40, price:0.11}, {unit:TB100, price:0.09} , 0.08]]);
Also if you note I don’t have my price ranges correct yet TB10, TB40, TB100 should be TB10, TB50, TB150 to reflect the progressive pricing. All right, let me fix that. Fortunately it was just a matter or replacing two constants and running the tests to ensure everything works properly. Done!
All in all the progress is good, but now I need to determine region codes for s3 and sdb and fix the sdb pricing structure. I need to do that on a fresh day, but then I should be good to start a beta. For the beta I’ll assume I start using Shibuya even thought I consider it too rough to use at the moment. The other vendor I was considering using is http://e-junkie.com that besides an unfortunate name seems to offer a good service to sell electronic goods online (like software for example). I checked them out after reading this blog entry from Balsmiq (http://www.balsamiq.com/blog/2009/10/30/tools/). So I’ll may give Shibuya a chance but they are currently not very responsive on their forums and time is running out.
8:15pm I’m doing some research on Marketing…or how to find people who might be interested in getting the application. I’m checking out “The Business of Software” forum run on the Joel on Software website. Phil mentioned he found a great community over there to discuss these kind of issues. I’ll poke around the forum and get familiar with it. Later I may ask what people think of my idea of a Log Analyzer.
Some interesting posts (in no specific order and not even necessarily relevant to my product):
- Help me name my product
- Software cracked! Now what?
- Desktop Apps vs. Web Apps by Bill and Steve
- Trial to Sales Conversion Tracking
- Interesting site about big software companies and revenue
I should post a specific message on the forum. Also it’s gonna be interesting to see how people will react to an AIR application. It didn’t hinder sales for Balsamiq, but Peldi did an awesome marketing job besides having a great product.
All right one more bug fix before going home…The time of the usage is displayed in charts and in datagrids and used just to contain the plain hour of the day, i.e. 14, so it’s wasn’t obvious what the user was looking at. I changed that everywhere (2 places) and now the time is displayed including the minutes as in 14:00. In fact the minutes are always :00 as Amazon aggregates by the hour but this makes the whole UI easier to read.
8:5pm Moving home, I started my day at 5am with 90 minutes of Yoga followed by some abs exercises at my Chyro’s gym…so time to relax!
Stay tuned!