This document discusses adaptive provisioning of stream processing systems in the cloud. It first explores the suitability of cloud infrastructures for stream processing by measuring network and processing latencies, jitter and throughput on Amazon EC2. It then presents an adaptive algorithm to allocate cloud resources on-demand based on the incoming data stream load. The algorithm is evaluated by deploying it as part of a data stream processing system on Amazon EC2 and analyzing the results. The contributions of the work are adapting cloud resources for stream processing workloads and evaluating the approach through experiments on Amazon EC2.