ABOUT ME

Today
Yesterday
Total
  • AWS : ELB를 이용한 HTTPS 구현
    Problem-Solving 2022. 3. 28. 17:51

    < 문제상황 >

    1. AWS의 Route53에서 도메인 구입
    2. AWS Certificate Manager(ACM)을 이용해 인증서 발급 후 도메인과 연결
    3. EC2콘솔에서 로드밸런서 설정
    => 이후 서버에 접속을 해보니 HTTPS 연결은 잘 되었지만, 503에러 출력과 함께 오류 발생

     

    : 서버의 플로우가 Browser(Client) <- HTTPS -> ELB <- HTTP -> EC2 Server 이기 때문에 HTTPS연결이 잘 되었다는 것은 ELB까지의 통신은 잘 되지만, ELB에서 나의 EC2 Server까지의 통신에 오류가 있다고 판단함.

     

     


    < 접근1 >

    '503 Service Temporarily Unavailable' 에러코드가 정확히 무엇인지 파악하기 위해 AWS의 공식 문서에서 관련 에러 메세지를 찾아보았다.

     

    참고 문서:

     

    Classic Load Balancing 사용 시 HTTP 5xx 오류 문제 해결

    결제 또는 기술 지원이 필요하세요?

    aws.amazon.com

    : 503에러가 뜨는 경우는 여러가지가 있지만, 그중

    • 클라이언트 요청을 처리하는 데 사용할 수 있는 웹 서버 또는 백엔드 애플리케이션 서버 인스턴스 리소스가 부족합니다.

    부분을 보고 현재 내 서버가 ELB와 잘 연결이 되어있는지 확인해 보았다.

     

    : 생성한 로드밸런서의 대상그룹에 들어가보니 원래라면 대상그룹 안에 나의 EC2 Server 인스턴스가 포함되어있어야 하는데 포함되어 있지 않았다.

     

    그래서 'Register targets'를 눌러 내 인스턴스를 추가해주었다.

    : 추가 후 확인해보니 이번에는 Unused에 내 서버가 표시되면서 역시 '503 Service Temporarily Unavailable'에러와 함께 연결이 되지 않았다.

     

     


    < 접근2 >

    혹시 Unused로 뜨는 게 현재 작동중인 서버라서 안되는가? 싶어서 서버를 재부팅 해보았다.

     

    : 그러나 이 역시 '503 Service Temporarily Unavailable' 에러와 함께 여전히 작동하지 않았다.

     

     


    < 접근3 >

    내 추측으로 생각하지 말고, 에러 코드를 따라가면서 해결해보자고 생각해서 Unused메시지가 나타난 로드밸런서의 대상그룹으로 이동해 확인해보았다.

     

    : Unused 에러메시지를 확인해보니 현재 내 인스턴스가 속해있는 곳이 ap-northeast-2c 인데 내가 설정한 로드밸런서에서는 해당 zone을 이용하지 않는다는 메시지였다.

     

    : 그래서 로드밸런서 설정에 들어가 ap-northeast-2c 구역을 사용하도록 설정해주었다.

     

    : 이후 다시 들어가 접속해보니 이번에는 503 에러가 아니라 사이트에 접속할 수 없다고 나와있었다.

     

     


    < 접근4 >

    < 접근2 > 에서 EC2 인스턴스를 재부팅하면서 가동중이던 node.js 서버 꺼졌고 그 때문에 사이트주소를 입력해도 아무 반응이 없는 것이라고 판단해서, 인스턴스에 접속해 새로 서버를 가동시켜주었다.

     

    하지만, EC2 인스턴스를 재부팅시키면서 IP도 변경이 되어 내 mongoDB데이터베이스에 접근할 수 있는 ip 리스트도 변경해 주어야 했다.

     

    관련 게시글:

     

    AWS : EC2 서버실행 오류

    < 문제상황 > EC2 서버에서 만들어놓은 서버(깃허브 리파지토리) clone 후 npm install 및 .env 파일 설정 후 서버 실행하니 서버가 실행되지 않는 문제 : 깃허브 리파지토리 가져오고 필요 라이브러리

    begin-to-end-project.tistory.com

     

    : 이후 다시 접속해 보니 정상적으로 잘 접속 되고, Postman으로 서버 API도 잘 작동하는 것을 확인할 수 있었다.

     

     


    < 해결 과정 >

    1. 503에러 : 로드밸런서의 대상그룹 확인

    2. 503에러 : 로드밸런서의 가용영역(서브넷) 확인

    3. EC2 재부팅하면서 IP도 바뀌니 mongoDB에 해당 IP추가

     

     

     

     

    댓글

Designed by Tistory.