Every time I try and connect to a remote SQLServer Express instance on my AWS server I get a network or instance specific error.
What I have tried so far:
I ensured that the Security Group applied to the instance has an inbound rule for Port 1433 for all source connections (0.0.0.0/0)
I initially added an exception to the Windows Firewall for TCP 1433 and eventually disabled Windows Firewall altogether to take that out of the equation. Currently it is still disabled.
I assumed I would need a public IP address so I assigned an Elastic IP to the instance. I can RDP into the server using this Elastic IP so I know the association is good.
I enabled TCP as a client connection protocol for the SQL Server instance.
When I RDP into the server and do an IPCONFIG /ALL I assumed I would see the IP address to to be the same as the Elastic IP assigned but that is not the case, I still see the private internal IP address, I'm not sure if this is part of my problem as you see from my local connection tests below.
When remoted into the server I can successfully connect to SQL Server Management Studio uwing the local loopback address + instance name: 127.0.0.1\SQLEXPRESS. I can also successfully connect to SSMS using the private IP + instance name: xxx.xxx.xxx.xxx\SQLEXPRESS. This would seem to indicate that the TCP client protocol for SQLServer is enabled and working normally. However when I try and connect SSMS locally but using my Elastic IP address + instance name I get the same network connectivity error I get when I attempt to connect from my local PC remotely.
So even though I can establish an RDP connection to the server using my Elastic IP address it appears the Elastic IP isn't being associated internally or with SQL Server.