Categories: Azure Posted by mheydt on 11/17/2009 3:26 AM | Comments (0)
Azure pricing is more simple than Amazon
  • 10c/GB in and 15c/GB out, regardless of service
  • Data withing data center is unmetered
  • Between data centers is at full rate
Compute
  • 12c/h deployed instances (ready state+)
  • Same charge regardless of
    • Instance is actually running
    • In staging or production
Storage
  • 15c/GB/m
  • 1c per 10,000 REST Calls
  • CDN charges (TBD)
  • Storage is pro-rated by average daily amount
  • Blocks cost money even if not PUT (don't orphan blocks)
  • Overhead can be expensive in tables
    • Entity pairs, name / values, names also take space
Storage
  • 1c / 10000 REST calls
  • Appears inconsequential, but hand add up
    • Using a queue is at least 3 transactions (enqueue, deque, delete)
  • Batch transactions to reduce cost
SQL Azure
  • $9.99 / m for 1GB
  • $99.99 / m for 10GB
SQL Azure - Instance Based
  • Prorated by time (midnight UTC)
  • CPU like other roles
  • No transaction charge, but beware of throttle
SQL Azure - Accounting
  • Included in cac: shema/objects
  • ... missed rest too fast
SQL Azure - Determining Usage
  • sys.bandwidth_usage, ...
Session State
  • Cheaper in SQL Azure than in tables due to transactions
Pricing Tips
  • Bandwidth: compress response, minify/optimize (aptimize.com)
  • Reduce resource size: compress data in blog storage
  • User affinity groups to geolocate services
Compute
  • Add or remove instances as required
  • start same number of instances in staging
  • warm up instances
  • swap deployments
  • more (went too fast)
Storage
  • Batch requests
  • Model usage
  • Compress blog data
  • Set content-encoding when putting blob
  • use caching to reduce request transaction count
  • use CSS sprites and Data URIs to reduce transaction count
Where do static resources live:
  • In web role?  incurs additional free but resource consuming requests
  • Blob: storage cost and transaction cost
Use CSS sprites
  • Can massively reduce round-trips and transaction counts in Azure
SQL Azure
  • Vertically partition out large data columns
  • Support dynamic partitioning if possible
  • Consider just-in-time partitioning
  • Pull archive data out of the cloud to cheaper on premise storage or to azure storage
  • Manipulate db from cloud using System.Data.SqlClient.SqlBulkCopy

Comments