Kod wygląda dobrze.
Sprawdź, czy grupa zabezpieczeń Twojego ec2 zezwala na 3306 ruch wychodzący, a grupa zabezpieczeń Twojej bazy danych zezwala na 3306 ruch przychodzący. Jeśli znajdują się w różnych podsieciach, być może będziesz musiał również sprawdzić NACL.