É difícil responder qual é o melhor para você, o ELB ou a sua própria solução.
Assim como vários serviços da Amazon, o ELB é simplesmente um serviço gerenciado e não precisa configurar e manter seu próprio ELB. Isso pode ser muito atraente, particularmente se você não tiver tempo ou recursos para fazer tudo sozinho.
Por trás do ELB da Amazon da cena há apenas um ou mais EC2s (configurados para agir como um balanceador de carga) que são dimensionados automaticamente para lidar com qualquer quantidade de tráfego (embora, digamos escala, seja mais uma escala linear, -imperme os balanceadores de carga através de um ticket de suporte).
A ELB já trabalha na VPC há alguns anos:
The popular AWS Elastic Load Balancing Feature is now available within the Virtual Private Cloud (VPC). Features such as SSL termination, health checks, sticky sessions and CloudWatch monitoring can be configured from the AWS Management Console, the command line, or through the Elastic Load Balancing APIs.
Se você estiver interessado em ter acesso ao funcionamento interno de seu balanceador de carga e quiser fazer algo acima do balanceamento de carga padrão, não terá alternativa a não ser fazer o seu próprio movimento.
Pessoalmente, gosto da ideia de ter o balanceador de carga gerenciado para mim. É fácil de configurar para que você possa testá-lo por si mesmo e ver se ele atende às suas necessidades.