EC2 인스턴스에서 웹사이트를 호스팅합니다. 사용자가 HTTP(80) 또는 HTTPS(443)에서 연결하도록 허용하려면 어떻게 해야 하나요?

4분 분량
0

Amazon Elastic Compute Cloud (Amazon EC2) 인스턴스에서 웹사이트를 호스팅합니다. 사용자가 HTTP(포트 80) 또는 HTTPS(포트 443)를 통해 내 웹사이트에 연결하기를 원합니다.

해결 방법

포트 80 및 443에서 트래픽을 허용하려면, 관련 보안 그룹 및 네트워크 액세스 제어 목록(네트워크 ACL)을 구성해야 합니다.

보안 그룹 규칙

HTTP 트래픽의 경우, 소스 주소 0.0.0.0/0의 포트 80에 인바운드 규칙을 추가합니다.

HTTPS 트래픽의 경우, 소스 주소 0.0.0.0/0의 포트 443에 인바운드 규칙을 추가합니다.

이러한 인바운드 규칙은 IPv4 주소로부터의 트래픽을 허용합니다. IPv6 트래픽을 허용하려면, 소스 주소 ::/0의 동일한 포트에 인바운드 규칙을 추가합니다. 보안 그룹 생성 또는 수정에 대한 자세한 내용은 보안 그룹을 사용한 리소스에 대한 트래픽 제어를 참조하세요.

보안 그룹은 스테이트풀(Stateful)이므로 인스턴스에서 사용자로의 반환 트래픽이 자동으로 허용됩니다. 보안 그룹의 아웃바운드 규칙은 수정할 필요가 없습니다.

참고: 다음 예에서는 TCP 포트 80(HTTP) 및 443(HTTPS)에서 IPv4 및 IPv6 트래픽을 허용하기 위한 보안 그룹 규칙을 보여줍니다. 사용 사례에 따라 인스턴스에 로그인하기 위한 SSH 또는 RDP와 같은 다른 트래픽 소스를 허용해야 하는지 결정하세요. 그런 다음, SG에 필요한 트래픽을 허용하는 관련 인바운드 규칙이 있는지 확인하세요.

인바운드 규칙

유형프로토콜포트 범위원본
HTTP (80)TCP (6)800.0.0.0/0
HTTP (80)TCP (6)80::/0
HTTPS (443)TCP (6)4430.0.0.0/0
HTTPS (443)TCP (6)443::/0

네트워크 ACL

기본 네트워크 ACL은 모든 인바운드 및 아웃바운드 IPv4 트래픽을 허용합니다. 사용자가 IPv6을 통해 연결하고 Amazon 가상 프라이빗 클라우드(Amazon VPC)에 연결된 IPv6 CIDR 블록이 있는 경우 기본 네트워크 ACL에 모든 인바운드 및 아웃바운드 IPv6 트래픽을 허용하는 규칙도 자동으로 추가됩니다. 하지만 규칙이 더 제한적인 사용자 지정 네트워크 ACL을 사용하는 경우, 포트 80 및 443에서 트래픽을 명시적으로 허용해야 합니다.

네트워크 ACL은 스테이트리스(stateless)이므로 웹사이트 연결을 허용하려면 인바운드 규칙과 아웃바운드 규칙을 모두 추가해야 합니다. 네트워크 ACL 규칙 수정에 대한 자세한 내용은 네트워크 ACL을 사용하여 서브넷에 대한 트래픽 제어를 참조하세요.

참고: 다음 예에서는 TCP 포트 80(HTTP) 및 443(HTTPS)에서 트래픽을 허용하는 사용자 지정 네트워크 ACL을 보여줍니다. 네트워크 ACL은 단일 EC2 인스턴스뿐만 아니라 전체 서브넷의 모든 리소스에 적용됩니다. 예제 구성에서는 대상 포트 80과 443을 제외하고 동일한 서브넷의 리소스와 주고받는 모든 트래픽이 차단됩니다. 사용 사례에 따라 인스턴스에 로그인하기 위한 SSH 또는 RDP와 같은 다른 트래픽 소스를 허용해야 하는지 결정하세요. 그런 다음, 필요한 트래픽을 허용하는 관련 인바운드 규칙이 있는지 확인하세요.

인바운드 규칙

규칙 #유형프로토콜포트 범위원본허용/거부
100HTTP (80)TCP (6)800.0.0.0/0허용
101HTTPS (443)TCP (6)4430.0.0.0/0허용
102HTTP (80)TCP (6)80::/0허용
103HTTPS (443)TCP (6)443::/0허용
*전체 트래픽모두모두::/0거부
*전체 트래픽모두모두0.0.0.0/0거부

아웃바운드 규칙

규칙 #유형프로토콜포트 범위대상허용/거부
100사용자 지정 TCP 규칙TCP (6)1024~655350.0.0.0/0허용
101사용자 지정 TCP 규칙TCP (6)1024~65535::/0허용
*전체 트래픽모두모두::/0거부
*전체 트래픽모두모두0.0.0.0/0거부

연결 거부 오류 문제 해결

연결 거부 오류는 연결 요청이 인스턴스로 라우팅되지만 지정된 포트의 서비스로부터 수신되지 않았음을 의미합니다. 호스트 A가 호스트 B에 대한 TCP 연결을 시작하고 연결 거부 오류를 수신한 경우, 해당 오류는 다음을 의미합니다.

  • 먼저 호스트 A가 TCP SYN 패킷을 호스트 B로 보냈습니다.
  • 그런 다음, 호스트 B는 호스트 A에 대한 응답으로 TCP RST 패킷을 보냈습니다.

보안 그룹 및 네트워크 ACL에서 TCP 포트 80 및 443을 허용한 후에도 이 오류가 발생하면 다음 문제를 해결하세요.

  • httpd(Apache)와 같은 서비스 데몬이 실행 중이 아니거나 중지된 상태입니다.

문제를 해결하려면, 서비스가 EC2 인스턴스에서 실행 상태인지 확인하세요.

  • 서비스가 잘못된 포트에서 수신 중입니다.

문제를 해결하려면, EC2 인스턴스가 필수 TCP 포트(80/443)에서 수신 대기하고 있는지 확인하세요.

  • 포트가 방화벽에 의해 차단되었습니다.

문제를 해결하려면, EC2 인스턴스의 OS 수준 방화벽이 필요한 포트에서 들어오는 TCP 트래픽을 차단하고 있는지 확인하세요.

AWS 공식
AWS 공식업데이트됨 2년 전
댓글 없음

관련 콘텐츠