220822~220829_TIL

JUNHO YEOM·2022년 8월 23일
0

TIL

목록 보기
9/9

220822_TIL

CLOUD환경에서 배포하는 방법에 대해서 배웠다.
VM을 빌리고 VM에 git으로 코드를 불러왔다.
Domain Name을 구매하고, 이를 DNS을 사용하여 도메인네임을 통해서 배포된 서버의 load balancer에 연결해주었다.
load balancer는 요청을 받아 VPC 내부의 백엔드서버에 요청을 전달해 주었다.
localhost환경에서만 작업해왔던 나에게는 배포가 무엇인지 알수 있게되는 순간이었다.

220823_TIL

기존의 load balancer에서는 http요청을 받았지만 오늘은 https로 연결 하는 고도화를 진행했다.
http는 패킷을 제3자가 가로챌 경우 평문으로되어 있어 개인정보, 비밀번호가 노출될 가능성이 있다.
이를 위해서 https를 사용한다. https의 default포트는 443번 포트이고, ssl인증서를 사용해서 암호화하여 패킷을 전송한다. 이를 통해 보안을 강화할 수 있다.
쿠버네티스에 대해서 배웠다. 쿠버네티스를 통해서 무중단 배포를 실현할 수 있고, GKE를 통해서 이를 실현할 수 있는데 아직 익숙하지 않아서 여러번 시도해보고, 프로젝트를 쿠버네티스를 통해서 배포하고 싶다.

220824_TIL

GKE
참 편리한 녀석이다. 약간의 설정만으로 최적화된 pod를 생성하여주고, 부하가 상승하거나, 추가적인 트래픽처리가 필요한 정도가 되면 자동으로 scale out을 실행해준다.
GKE를 통해 배포한 서버에 인그레스를 만들어주었다. 하는일은 로드밸런서와 같았다.
https로 접속하기 위한 SSL인증서를 장착할 수 있고,
도메인을 통한 웹 접속을 가능하게 도와준다.
제공하는 기능에 비해서는 쉽게 연결이 가능했고, 클라우드 기반 서비스가 왜 점점 중요해지는지 알것 같았다.

이해가 잘 안되는 문제에 하나 부딫혔다.
인그레스에서 GKE가 제공하는 SSL인증서를 제공받기 위해 도메인네임을 입력했는데
내가 해놓은 설정으로는 www를 적용하였을때 정상적인 접근이 불가능했다.
www는 생략이 가능한것 아닌가?? 라고 생각했는데
이유에 대해서 찾아봐야겠다.
컴퓨터는 잘못이 없으니까.
문제가 발생했을 때 내가 조금만더 공부하면 이친구는 다시 에러없이 나를 반겨줄 것이라고 생각한다.

220825_TIL

무중단 배포
Cloud build를 사용하여 CI/CD환경을 구축했고,
코드를 깃에 업로드하면 바로 배포가 이루어 지게 세팅하였다.
배포를 진행하게되면 롤링 업데이트가 이루어진다.
하지만, Jmeter로 서버의 응답을 체크하였을때 오류가 발생했다.
새로운 코드를 가진 pod는 정상적으로 동작하지만, Nest.js가 실행되기까지는 시간이 조금더 필요하기 때문이다.
그래서 무중단 배포를 위해 컨테이너의 yaml파일의 minReadySeconds를 추가로 설정해줌으로써
두 pod가 교체될때도 서비스가 중단되지 않도록 하였다.

0개의 댓글