내용으로 건너뛰기

Amazon EC2 인스턴스가 인터넷 게이트웨이를 통해 인터넷에 액세스할 수 없는 이유는 무엇입니까?

3분 분량
0

퍼블릭 서브넷의 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스에 퍼블릭 IP 주소 또는 인터넷 게이트웨이가 있지만 인터넷에 액세스할 수 없습니다.

해결 방법

사전 요구 사항:

  • 인터넷 게이트웨이에 대한 기본 경로(0.0.0.0/0)가 있는 인스턴스의 서브넷과 라우팅 테이블을 연결합니다.
  • 경로와 연결된 인터넷 게이트웨이를 삭제하지 않았는지 확인하십시오.
  • 포트 및 프로토콜에 대한 아웃바운드 인터넷 트래픽(0.0.0.0/0)을 허용하는 규칙을 사용하여 인스턴스의 탄력적 네트워크 인터페이스에 연결된 보안 그룹을 구성합니다.
  • 인스턴스의 서브넷과 연결된 네트워크 액세스 제어 목록(ACL)에 인터넷으로의 아웃바운드 트래픽과 인바운드 트래픽을 모두 허용하는 규칙이 있는지 확인합니다.

퍼블릭 서브넷에 있는 인스턴스에 퍼블릭 IP 주소가 없는 경우 가상 프라이빗 클라우드(VPC) 외부에서 해당 인스턴스에 액세스할 수 없습니다. 이는 인스턴스에 인터넷 게이트웨이가 있는 경우에도 마찬가지입니다.

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

퍼블릭 IP 주소가 있는 인스턴스의 경우 인터넷 액세스를 차단하는 방화벽 규칙이 있는지 확인한 다음 규칙을 제거하십시오. 또는 방화벽을 비활성화하십시오.

액세스를 차단하는 방화벽 규칙 제거

운영 체제(OS)에서 실행되는 로컬 방화벽은 특정 포트 또는 IP 주소에 대한 아웃바운드 액세스를 차단할 수 있습니다. 이 문제를 해결하려면 방화벽 규칙을 나열한 다음 액세스를 차단하는 규칙을 삭제하십시오.

참고: 규칙을 삭제하기 전에 규칙을 파일에 백업하십시오.

Linux 배포

방화벽 규칙을 나열하려면 인스턴스에 구성된 방화벽을 기반으로 다음 명령 중 하나를 실행합니다.

복잡하지 않은 방화벽

sudo ufw status numbered

firewalld

sudo firewall-cmd --list-all-zones

iptables

sudo iptables -L --line-numbers

방화벽 규칙을 삭제하려면 인스턴스에 구성한 방화벽을 기반으로 다음 명령 중 하나를 실행합니다.

복잡하지 않은 방화벽

sudo ufw delete rule_number

참고: rule_number를 삭제하려는 방화벽 규칙으로 바꾸십시오.

firewalld

sudo firewall-cmd --zone=zone --remove-rich-rule=rule --permanent
sudo firewall-cmd --reload

참고: --permanent 규칙을 제거한 후 방화벽을 다시 로드해야 변경 사항이 런타임 구성에 즉시 적용됩니다.

iptables

sudo iptables-save > iptables_backup.txt
sudo iptables -D chain rule_number

Windows Server

Windows Server 기본 방화벽의 방화벽 규칙을 나열하려면 다음 명령을 실행합니다.

netsh advfirewall firewall show rule name=all

위 명령 출력의 규칙 중에 차단된 트래픽을 표시하는 규칙이 하나라도 있다면 다음 명령을 실행하여 방화벽 규칙을 제거합니다.

netsh advfirewall firewall delete rule name=rule_name

참고: rule_name을 트래픽을 차단하는 방화벽 규칙의 이름으로 바꾸십시오.

자세한 내용은 Microsoft Learn 웹 사이트에서 Windows 방화벽 도구를 참조하십시오.

방화벽 비활성화

Linux 배포

로컬 방화벽을 비활성화하고 대신 ](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-security-groups.html)보안 그룹을 사용[할 수도 있습니다.

참고: 방화벽 비활성화는 워크로드에 영향을 미칠 수 있습니다.

방화벽을 비활성화하려면 다음 명령 중 하나를 실행합니다.

복잡하지 않은 방화벽

sudo ufw disable

firewalld

sudo systemctl disable firewalld --now

iptables

sudo systemctl disable iptables

방화벽을 사용해야 하는 경우 다음 명령 중 하나를 실행하여 발신 트래픽을 허용하십시오.

복잡하지 않은 방화벽

sudo ufw default allow outgoing

iptables

sudo iptables P OUTPUT ACCEPT
sudo iptables I OUTPUT j ACCEPT

참고: 기본적으로 firewalld는 리치 규칙이 없는 한 모든 영역의 시스템에서 모든 발신 트래픽을 허용합니다.

Windows Server

기본 방화벽인 Windows Server용 Windows 방화벽을 비활성화하려면 다음 명령을 실행합니다.

netsh advfirewall set allprofiles state off

자세한 내용은 Microsoft Learn 웹 사이트에서 Windows 방화벽 도구를 참조하십시오.

관련 정보

인터넷 게이트웨이를 사용하여 VPC의 인터넷 액세스 활성화

프라이빗 서브넷의 EC2 인스턴스를 인터넷에 연결하는 데 NAT를 사용할 수 없는 이유는 무엇입니까?

AWS 공식업데이트됨 9달 전