Gerenciamento de Containers Docker

Primeiro gostaria de agradecer pelo livro de Docker e do livro de DevOps que me apresentou o Docker e o Ansible.

Achei o Docker realmente incrível e já implantei um processo de deploy utilizando ele como Ansible. A ideia é sempre que um código for enviado para a develop ele faz o executa o script que cria um Dockerfile pré configurado e sobe o container na maquina de desenvolvimento.

Hoje temos isso em um sistema só e em um host só, mas como gostamos deve crescer bastante e logo ficara dificil de gerenciar muitos containers e fazer cluster.

No livro eu vi sobre o Rancher e vou tentar utilizar assim que possível, porém a AWS tem o ECS que é o serviço de containers da Amazon.

A minha dúvida é se eles são concorrentes ou trabalham juntos de alguma forma.

Se o Rancher faz cluster e load balance.

Nos exemplos também vi os containers de aplicação web e de banco de dados se comunicando diretamente, o de aplicação web não poderia simplesmente acessar pelo ip do host, como se estivesse em outro computador ou vm?