Computação em nuvem é um estilo de computação no qual os provedores de recursos podem oferecer serviços sob demanda de forma transparente e os clientes geralmente pagam de acordo com o uso. A nuvem introduz um novo nível de flexibilidade e escalabilidade para usuários abordando desafios como a rápida alteração em cenários de Tecnologia de Informação (TI) e a necessidade de reduzir custos e tempo no gerenciamento de infraestrutura. No entanto, para ser capaz de oferecer garantias de qualidade de serviço (QoS) sem limitar o número de requisições aceitas, os provedores devem ser capazes de escalonar de forma dinâmica e eficiente as requisições de serviços para serem executadas nos recursos disponíveis. O balanceamento de carga não é uma tarefa trivial, envolvendo desafios relacionados à demanda de serviço, a qual pode mudar instantaneamente, à modelagem de desempenho, e implantação e monitoramento de aplicações em recursos de TI virtualizados. Dessa forma, o objetivo deste artigo é desenvolver e avaliar algoritmos de balanceamento de carga para um ambiente em nuvem de forma a estabelecer um mapeamento mais eficiente entre as requisições de serviços e as máquinas virtuais que as executarão, garantindo a qualidade do serviço conforme definido no acordo de níveis de serviço. Nos experimentos verificou-se que o algoritmo proposto permitiu uma redução no tempo de execução das requisições, aumentando a quantidade de requisições atendidas durante o tempo de observação.