Maybe this will be helpful: I couldn't get my collector application to work on AWS Elastic Beanstalk (autoscaling) until I exposed port 8080 in my collector config (and also in my dockerfile). I'm not sure if the collector jar is hard-coding 8080 as the listening port somewhere or if I missed something related to nginx or docker, but other ports did not work for me.
As I understand it, the load balancer listens on 80 (http) and 443 (https) by default, then forwards to the instances via port 80 which the nginx proxy should be listening to. Ultimately, I didn't need to change these default inbound/outbound rules on the ELB or ec2 security groups. It was just a matter of changing the exposed port of the application specifically to 8080 in my configs.
There's cryptic references to this issue in a few places around the Snowplow discourse, but no clear answers. Maybe the Snowplow team can help shed some light.