AWS: Serve up website from private subnet

amazon-web-servicessubnet

I'm unable to get from the internet to a web page hosted on my server in a private subnet.

Using this: How can I place a Webserver in a private subnet in AWS and open it to the world on port 80 as a guide, I've got the following configuration in place:

  • VPC w/ 1 public and private subnet (both are in same AZ).
  • Public subnet has route table with local and IGW routes
  • Private subnet has route table with local and NAT Gateway routes
  • EC2 Instance deployed in private subnet serving up static HTML pages
  • Confirmed EC2 instance can get out to internet
  • ELB pointing (ports 80/443) to EC2 private instance
  • (For testing) ELB security group and EC2 SG are set to allow all inbound/outbound traffic
  • ELB health check is good
  • R53 (A record) for testing subdomain which points to my ELB

With everything supposedly operational and open, I can't determine why the page isn't served back to the user. Chrome just spins and Firefox says the connection was reset. Any advice on how to troubleshoot this?

Best Answer

Following this: http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/elb-security-groups.html#elb-vpc-security-groups , specifically the section: Internet-facing Load Balancer: Recommended Rules

I needed to update the outbound rules of my ELB to use my instance security group.