EC2 를 https로 연결하기

LJM·2023년 5월 14일
0

미니프로젝트(FE+BE)

목록 보기
9/12

갑작스레 http 에서 https 로 바꿔달라고 요청이와서 2:30 동안 엄청 헤매면서 간신히 해결하였다.
도메인을 구매 해놓은걸 사용해서 세팅하였다
도메인은 AWS에서 구매하지 않아도 연결되더라..
나는 https://www.hosting.kr/ 에서 구매한 도메인을 사용하였다.
도메인과 EC2의 탄력적IP 연결 부터 해놔야 한다. 참고(https://velog.io/@carrot1st/%EB%8F%84%EB%A9%94%EC%9D%B8%EC%97%B0%EA%B2%B0)

EC2 를 https 연결하는건
https://popawaw.tistory.com/269
여기 자료를 참고 하였다. 보고 찬찬히 따라하면 된다. 물론 나의 경우는 좀 달라서 헤맸지만
나는 타겟그룹(HTTP: 5000), 타겟(HTTP: 5000) 세팅을 하였다.왜냐면
백엔드 서버가 5000 포트를 사용해서 그렇다. 근데 생각해보니 80으로 해도 되겠다
어차피 EC2우분투에서 포트포워딩을 80 >> 5000 으로 해놨으니..

그리고

404 에러 반환받아서 unhealthy 라고 뜨는데 접속은 잘된다
404를 받았다는거 자체가 연결된거라서 그런거 같다

연결관계가 궁금해서 질문을 던졌다 GPT에게

내질문: https://lupintech.co.kr  >> route53 >> 로드밸런서의 리스너(HTTPS:443)
>> 타겟그룹(HTTP: 5000) >> 타겟(HTTP: 5000) >> EC2  순서대로 처리되는게 맞아?
GPT4 닫변:

네, 그렇습니다. 사용자가 브라우저에서 "https://lupintech.co.kr"에 접속하면
다음의 순서로 요청이 처리됩니다:

브라우저는 해당 도메인 이름의 IP 주소를 찾기 위해 DNS 조회를 수행합니다. 이때
AWS Route 53이 DNS 서버 역할을 하며, 이 도메인에 대한 A 레코드(별칭 레코드)를
확인하여 연결해야 하는 로드 밸런서의 주소를 찾습니다.

브라우저는 찾아낸 로드 밸런서의 주소로 HTTPS 요청을 보냅니다. 이때 로드 밸런서의
리스너가 443 포트에서 이 요청을 받아들입니다. SSL/TLS 인증서가 사용되어 통신이 암호화됩니다.

로드 밸런서는 받아들인 요청을 처리하기 위한 규칙을 확인하고, 해당 규칙에 따라 요청을
적절한 타겟 그룹으로 라우팅합니다. 이 경우에는 "mini-group2" 타겟 그룹으로 라우팅되며,
이 타겟 그룹이 HTTP 프로토콜의 5000 포트를 사용하도록 설정되어 있습니다.

타겟 그룹은 등록된 타겟(EC2 인스턴스) 중 하나로 요청을 라우팅합니다. 이때 각 타겟은
HTTP 프로토콜의 5000 포트를 사용하도록 설정되어 있습니다.

EC2 인스턴스는 5000 포트에서 요청을 받아 웹 서버가 처리하게 됩니다. 웹 서버가 요청을
처리한 후 응답을 반환하면, 이 응답이 같은 경로를 따라 사용자의 브라우저로 전달됩니다.

이렇게 설정하면 HTTPS 요청이 EC2 인스턴스의 HTTP 5000 포트로 전달됩니다. 따라서 EC2
인스턴스에서는 SSL/TLS를 처리할 필요 없이, HTTP 요청만 처리하면 됩니다. 이는 SSL/TLS 처리
부하를 로드 밸런서가 담당하게 하여, EC2 인스턴스의 부하를 줄이는 효과가 있습니다.
profile
게임개발자 백엔드개발자

0개의 댓글