일반적인 가상 서버에 배포하는 방식은 아래 그림과 같다.
HTTPs는 표준이 되었는데, 그 이유는 encrypt된 데이터를 주고 받기 때문에 보안이 좋고, 검색엔진 노출(SEO)의 측면에서도 더 뛰어난 성능을 가지기 때문이다. 그렇기에 요즘 배포를 한다면 https로 하는 것이 기본이 되었는데, 지난 프로젝트에서 적용하는 데에 애를 먹어서 정리해보려고 한다.
HTTPs는 443포트로 들어오는데, Node App내부에 설치하는 방법도 있고, Nginx를 이용해서 할 수도 있지만, 더 쉽고 사실상 서버배포시 필수적으로 필요한 로드밸런서를 이용한 방법을 알아보고자 한다.
443포트를 단순히 열어주는 것에 그치는 것이 아니라 인증서를 발급받아서 설정해줘야한다. 오히려 다른 방법들이 더 어렵고 불편할 수 있기에 가장 간단한 방법이기도 하다. 이 과정에서 도메인을 발급받아야 한다.
로드밸런서와 서버와의 통신은 내부망에서 이루어진다. 즉, HTTPS처리를 해줄 필요가 없고, 도메인과 로드밸런서 사이에서 인증을 해주면 된다. 로드밸런서가 외부에 노출되는 것이기 때문에 여기서 80포트를 433포트로 리다이렉션하는 것은 로드밸런서 상에서 일어나야 하는 것이다.
서버에서 열어준 4000번 포트는 예시일 뿐 번호가 중요한 것은 아니다.
Public IP를 이용하면 고정이 아니라 서버를 껐다가 다시 켜면 바뀔 수 있다. IP는 유한하기 때문에 쓰지 않고 있는 IP는 다른 사용자가 사용해야 하기 때문에 전세계적으로 유니크하게 이용된다. 따라서 안정적인 사용을 위해서는 서버에 도메인을 부여해야 한다.
그에 반해 Private IP는 내부망 안에서만 유니크하면 된다.
https가 적용되는 것은 로드밸런서로 가는 요청들만 적용된다. public IP는 동적이지만 여전히 외부에 노출될 가능성이 존재한다. 사용자가 로드밸런서를 우회해서 접속을 하게되면 80포트로 접속할 것이다. 로드밸런서와 서버는 내부망인 private IP를 이용하고 있다.
로드밸런서의 80포트는 두고 서버의 80포트는 삭제해야 한다.
'내용 복습 > devOps' 카테고리의 다른 글
'도커 교과서' 1~2장 정리 (4) | 2024.11.02 |
---|---|
도커를 이용해 Containerize하는 과정 (0) | 2024.05.10 |
Docker 개념 알아보기 - Dockerfile, Image, Container (0) | 2024.05.10 |
Github Actions - CICD (0) | 2024.05.09 |
[AWS] EC2 개요 (0) | 2024.03.29 |