Composite cloud services based on the methodologies of Software as a Service and Service-Oriented Architecture are transforming how people develop and use software. Cloud service providers are confronting the service selection problem when composing composite cloud services. This paper deals with an important type of service selection problem, minimizing the total cost of providing a composite cloud service with respect to the constraints of service level agreement (SLA). Two types of SLA are considered in the study: per-request-based SLA and ratio-based SLA. We present three service selection approaches for dynamic cloud environments where services’ performance might vary with time. The first two are iterative compound approaches for per-request-based SLA and the third approach is a one-step method for ratio-based SLA based on the Chebyshev’s theorem and nonlinear programming. Experimental results show that our approaches outperform the previous method significantly in terms of total cost reduction.