  Amazon EC2 provides two most popular pricing schemes--i) the {\em costly}
on-demand instance where the job is guaranteed to be completed, and ii) the
{\em cheap} spot instance where a job may be interrupted. We consider a user
can select a combination of on-demand and spot instances to finish a task. Thus
he needs to find the optimal bidding price for the spot-instance, and the
portion of the job to be run on the on-demand instance. We formulate the
problem as an optimization problem and seek to find the optimal solution. We
consider three bidding strategies: one-time requests with expected guarantee
and one-time requests with penalty for incomplete job and violating the
deadline, and persistent requests. Even without a penalty on incomplete jobs,
the optimization problem turns out to be non-convex. Nevertheless, we show that
the portion of the job to be run on the on-demand instance is at most half. If
the job has a higher execution time or smaller deadline, the bidding price is
higher and vice versa. Additionally, the user never selects the on-demand
instance if the execution time is smaller than the deadline.
  The numerical results illustrate the sensitivity of the effective portfolio
to several of the parameters involved in the model. Our empirical analysis on
the Amazon EC2 data shows that our strategies can be employed on the real
instances, where the expected total cost of the proposed scheme decreases over
45\% compared to the baseline strategy.
