[NestJS] Docker와 Git Actions, EC2를 활용한 CI/CD 환경 구축 - 도커라이징하여 EC2에 배포하기
Ultimate Guide: NestJS Dockerfile For Production [2022]
그래서 왜 도커를 쓰는지 배포할때 왜쓰는데? 하고있었는데(배포를 한번도 안해봤음)
이 글에서 답을 찾음. 여러명이 하나의 앱을 개발하려면 한명한명의 버전이나 런타임 환경 시스템 환경변수 등등 각자의 로컬 환경이 다 다르다. 이런 상태에서 공통의 앱에서 작업을 하려면 npm i 하고 node설치하고 필요한 패키지를 전부 각각 설치해줘야하고 환경변수도 다 달라서 매번 바꿔주고 등등 신경써야 할 것이 너무 많음. 이런게 쌓이다보면 누락되거나 헷갈리거나 오류가 발생할 가능성이 높아진다. 이때 도커를 사용하면 해결! 도커 컨테이너 위에서 앱을 올려놓고 작업하면 모두가 같은 환경 하에 진행이 가능하다.
배포할때도 마찬가지
배포할때도 개발환경과 배포환경을 일치시켜줘야 하는데 앱을 배포하면 이용자마다 모두 사용환경이 다를것. 이용자와 앱 사이에 실행환경이 다르다면 이러면 오류가 날 수 있다.(로 이해했는데 아닐수도 있음) 그렇기에 앱 실행에 필요한 모든 것들을 도커의 컨테이너에 태워서 앱을 이 안에 넣어준다. 그러면 컨테이너만 옮기면 어떤 환경에서도 바로 실행이 가능하도록 만드는 그런 느낌?
간단히 말해서 컨테이너는 앱 상자, 이미지는 앱(및 앱 설정,구성 등)
Doker의 개념에 대해 가볍게 정리
그럼 이제 Kubernetes는 뭘까?