Solution 1:

You can change the instance size, but if you have a 32bit instance you can't scale it to a 64bit (if my memory serves me right). And you can always create some other instances and load balance between them.

In general, the latter is the preferred method since scaling with your instance type only helps you so much. After that your only option is adding instances so if you expect large amounts of traffic, than that would be your best option.

As for the load balancing part, Amazon offers a service for that these days: http://aws.amazon.com/elasticloadbalancing/

And automatically starting new instances as needed can be done with the Auto Scaling feature of Cloudwatch: http://aws.amazon.com/autoscaling/