The idea behind the t2 instance type was really cool and was really the need for several small use-cases like
- corporate website for an small enterprise might run drupal - the traffic to the site would generally be minimal
- personal blogs - would get occasional higher number of hits while publishing a new post and posting it in the social networks
- Daily / scheduled data load jobs
The way I feel this type of instance would help you out is like during the situations of " increasing your credit card's limit little bit when your are maxed out ". It completely makes sense for you to have little bit of additional breathing space of credit limit and time to think of the funds to pay the credit card company; rather than cutting you off to abrupt stop with out any options.
All along, the EC2 instance were more like T-Shirt sizes ranging from micro, small, medium, larger, extra-large; Suddenly t2 instance type was a unique creature all together in the ecosystem of EC2 instances. Accumulating the credits during off-time and redeeming the those again when there is a need is really worth every single compute cycle.
- Since EC2's launch we have been relating the term scalability in the context of number of instance count via. auto scaling or manual scaling
- Changing the instance size from Large to X-Large etc.
- Adding additional EBS volumes to the instances
There would several situation where you just a need a slight push / bonus to make the job done, increasing the instance count or upgrading the instance size would be a overkill; during that time t2 instances would just be perfect.
Instance sizing measured against socks not t-shirts
We generally specify whether we need a Large or X-Large but where as when we need a socks there would be possibly 2 size viz. children and adults. Socks are good candidates in illustrating the elasticity rather than forcing the the point of one-size fits all more appropriately - FREE SIZE.
Going forward, In my opinion there would be several t2 based instances which help in elasticity scenario by trying to expand itself little bit and only then reporting - I am maxed out.
So today, it is completely worth while to make all the single instance - application to be handled by the t2 based instance and get the good use of it both in terms of performance and cost i.e. move m1.small to t2.small, m1.medium to t2.medium
IMHO, just like in PaaS you generally deploy your app and forget the rest and the PaaS provides takes care of the rest, Amazon EC2 t2 family would PaaS-ify the same way in its IaaS style; your instance would burst out a little by its own to certain extent.