인터넷 게이트웨이를 사용하여 내 EC2 인스턴스를 인터넷에 연결할 수 없는 이유는 무엇인가요?

최종 업데이트 날짜: 2021년 2월 19일

내 Amazon EC2(Amazon Elastic Compute Cloud) 인스턴스에 퍼블릭 IP 주소가 있지만, 인터넷에 액세스할 수 없습니다. 해결하려면 어떻게 해야 하나요?

해결 방법

인스턴스가 모든 사전 조건을 충족하는지 확인

인스턴스는 다음 조건을 충족해야 합니다.

인스턴스에 퍼블릭 IP 주소가 있는지 확인

인스턴스에 퍼블릭 IP 주소가 없지만 인터넷 게이트웨이가 있는 경우 인스턴스가 상주하는 Virtual Private Cloud(VPC) 외부에서 해당 인스턴스에 액세스할 수 없습니다.

인터넷과의 인스턴스 연결을 허용하려면 탄력적인 IP 주소를 할당하고 해당 주소를 인스턴스와 연결합니다.

또는 서브넷에서의 퍼블릭 IPv4 주소 지정 속성을 활성화합니다. IPv4 주소 지정 속성을 활성화하면 서브넷에서 인스턴스를 시작할 때 퍼블릭 IP 주소가 부여됩니다.

방화벽이 액세스를 차단하고 있지 않은지 확인

인스턴스가 위의 조건을 충족하는데도 인터넷 연결 문제가 지속되면 다음을 시도해 보세요.

1. ping 또는 curl 도구를 사용하여 알려진 작업 인스턴스 또는 디바이스에서 사이트 또는 위치의 액세스 가능성을 테스트합니다.

2. 방화벽 디바이스 또는 소프트웨어가 HTTP 또는 HTTPS를 통한 트래픽을 허용하는지 확인합니다.

다음 명령을 실행하여 트래픽을 차단하는 규칙이 없는지 확인합니다.

$ sudo iptables -L
$ sudo iptables -L -t nat

앞의 명령이 차단된 트래픽을 나타내는 경우 해당 규칙을 제거하거나 특정 포트에 대한 트래픽을 허용하는 규칙을 추가합니다. 다음 예에서 examplerule을 새 규칙으로 바꾸고 port 80을 특정 포트 번호로 바꿉니다.

$ sudo iptables -D examplerule
$ sudo iptables -A INPUT -p tcp --destination-port 80 -j ACCEPT

Windows Server:

Windows Server 기본 방화벽의 경우 다음 명령을 실행합니다.

netsh advfirewall firewall show rule name=all

앞의 명령이 차단된 트래픽을 나타내는 경우 이전 규칙을 제거하거나 해당 포트에 대한 트래픽을 허용하는 새 규칙을 추가합니다. 다음 예에서 port 80을 특정 포트 번호로 바꿉니다.

netsh advfirewall firewall add rule name="Open Port 80" dir=in action=allow protocol=TCP localport=80