[AWS] EC2 Public IP 접근

yedi·2024년 11월 17일

EC2 인스턴스 생성
https://velog.io/@yedi/AWS-EC2-%EC%9D%B8%EC%8A%A4%ED%84%B4%EC%8A%A4-%EC%83%9D%EC%84%B1

EC2 인스턴스 생성 후 Public IP로 접근을 시도했더니 사이트를 연결할 수 없다는 화면만 띄어졌다.
해당 문제를 해결하기 위해 다음과 같은 방법들을 시도해보았다.


1. EC2 인스턴스 상태 확인

  1. EC2 인스턴스가 실행 중인지 확인하세요. "Running" 상태여야 합니다.
  2. 퍼블릭 IP 주소가 정확히 기재되었는지 확인하세요.
    동적 IP라면 인스턴스를 재부팅하면 IP가 변경될 수 있습니다. 고정 IP를 사용하려면 Elastic IP를 할당하세요.

2. EC2 보안 그룹 설정 확인

  1. EC2 인스턴스의 보안 그룹을 선택하세요.

  2. 보안 그룹의 인바운드 규칙 편집을 선택하세요.

  3. 인바운드 규칙을 설정 후, 규칙 저장을 선택하세요.

    인바운드 규칙
    HTTP (포트 80) : 퍼블릭 웹 서비스에 접근할 경우
    HTTPS (포트 443) : HTTPS로 서비스 접근 시
    SSH (포트 22) : SSH 접속이 필요한 경우 (단, 특정 IP만 허용 권장)

    IP 범위
    0.0.0.0/0 : 모든 IP에서 접근 허용 (테스트용으로만 권장)
    내 IP만 허용 : 보안성을 위해 Mac의 IP로 제한.


3. SSH 연결 확인

SSH를 사용하여 EC2에 접근할 수 있는지 확인하세요.

EC2 SSH 연결 확인
https://velog.io/@yedi/AWS-EC2-SSH-%EC%A0%91%EC%86%8D


4. 웹 서버 확인

EC2 인스턴스 내에서 웹 서버가 올바르게 설정되어 있는지 확인하기 위해, SSH로 EC2 인스턴스 접속 후 아래 명령어를 입력하세요.

curl http://localhost

입력 후, 정상적인 HTML 응답이 출력되면 웹 서버가 올바르게 실행 중인 것입니다.
반대로, curl: (7) Failed to connect to localhost port 80 after 0 ms: Couldn't connect to server 와 같은 에러는 EC2 인스턴스에서 HTTP 서버(Apache/Nginx 등)가 실행되지 않거나 올바르게 설정되지 않았음을 의미합니다.

웹 서버 Apache를 기준으로 설치해보도록 합시다.

웹 서버 설치 종류 ApacheNginx 차이점
: Apache는 동적 컨텐츠 처리와 복잡한 설정이 필요한 경우에 적합
: Nginx는 고성능의 정적 컨텐츠 제공과 트래픽이 많은 환경에서 효율적으로 작동

  1. 웹 서버 설치 여부 확인
    EC2 인스턴스에 SSH로 접속한 뒤 다음 명령어로 Apache가 설치되었는지 확인합니다.

    sudo systemctl status httpd     # Amazon Linux, CentOS, RHEL

    결과가 "not found" 또는 "Unit ... could not be found"라면 웹 서버가 설치되지 않은 것입니다.

  2. 웹 서버 설치

    # Amazon Linux/CentOS/RHEL
    sudo yum update
    sudo yum install httpd -y
  3. 웹 서버 시작 및 상태 확인
    웹 서버를 시작하고 부팅 시 자동으로 실행되도록 설정합니다.

    # Apache
    sudo systemctl start httpd      # Amazon Linux, CentOS, RHEL
    sudo systemctl enable httpd     # Amazon Linux, CentOS, RHEL
  4. 웹 서버 테스트
    서버에서 HTTP 요청을 테스트합니다.

    curl http://localhost

    정상적인 HTML 응답이 출력되면 웹 서버가 올바르게 실행 중인 것입니다.



위 과정을 다 진행 후, Public IP를 통해 사이트를 연결할 수 있었다.

0개의 댓글