- 팀프로젝트를 시작하며.... 팀장을 맡게 되었다
제대로 해내고픈 욕심이 너무 많아 공지가 길어졌는데..팀원들이 잘 이해하겠지...????
첫번째 팀장 공지사항을 듣고나서부터 책임감 + 부담감 + 욕심이 마구마구 마음에서 샘솟기 시작했고.....너무 두렵지만....그래도!!!!
팀원들과 으쌰으쌰 잘해내고 싶은 욕심이 제일크니까!!!! 또 성장하러 가보자
- 정적배포도 https로 가뿐히 바꿔주고 시작해볼까유
이제 내가 배포했던 사이트 yarn start해주고,
수정할거 생기면 깃 푸시, 다시 깃 클론하고 yarn build해서 켜주는거 과정 머릿속에 있어야한다!
다른 컴터에서도 들어갈수 있는 외부ip주소배포는..이제 익숙해!!
-> https로 바꿔주자!
-> 그럼 결국 로드밸런서랑 연결이 되어야 한다는 이야기겠지!
똑같은 파일을 스토리지, VM인스턴스에 다 올려놨었어!
우리는 이제 여기서 vm인스턴스와 로드밸런서를 연결해서,
lb가 분기처리를 해서 ssl/ ssr저절로 처리되도록 해보자!
(스토리지는 사실 필요없는데, VM인스턴스로 모든 사이트 접속은 가능한데, 24시간 켜두는 컴퓨터다 보니까 ssr이 필요없는 페이지는 스토리지에 미리 올려놔서 거기서만 왔다갔다 할수 있도록 효율성을 위해 올려놓는다는거! 알고있겠지!!)
저번시간에 한 문장으로 짧게 설명했었던 부하분산기가, 요청별로 접속을 나누는 알고리즘 방식에는 round-robin/ least-connection이 있었다구 했어!
인스턴스 그룹에 가서 차례차례 분산할건지, 가장 적은 요청부터 줄것인지에 따른 차이이다. !
그리고 저 모든 컴퓨터의 부하가 꽉하게 되면, 인스턴스를 똑같이 복사해서 하나씩 늘린다 (컴퓨터가 추가된다) -> scale up
이 늘리는 과정은 자동화야! -> auto-scaling
이 과정들에는 lb와 연결되어있는 작업이 필요하고, 인스턴스가 필요하고, 인스턴스 그룹이 필요하다!
-> 그니까! 생각해보면 이렇게 복잡하니까 정적파일들은 그냥 스토리지에 올려놓았었던거야! 이런 과정 필요없게 하려구!
- Docker
도커!! 나 좀 도와줘어 !!
도커를 왜 알아야할까?
내가 만든것은 세상에 배포하는 과정에서 도커는 빼놓을수 없고, 회사에 가게되면,내가 프론트를 개발하건 백을 개발하건 도커위에서 개발이 이루어진다!
그리고 파일들도 주고받을때 도커로 준다! 그니까 개발자로서 도커환경에서 일하기위한 준비가 필요하게찌!
배포뿐만 아니라 편한 부분이 많아 도커는!
뭐가 편한데 ?
운영체제에 따라 달라지는 환경이 있기때문에 !
어떤건 실행이 되고, 어떤건 실행이 안되고 하는 작업이 많아 !
회사사람들의 컴퓨터는 정말 다 다르겠지?
그래서 내 컴터 안에 새로운 운영체제를 하나 설치를 하는것 !
내 컴퓨터 안의 새로운 컴퓨터가 있다고 생각하면 돼.
(VM-WARE같은게 있지!)
그리고 운영체제를 같은것을 깔면 되는거야 !
그러면 누구한테선 되고, 누구한테선 안되었던 것들이 잘 되겠지! 똑같은 환경에, 똑같은 버전을 깔았으니까!
근데 컴터 안에 컴터가 있어서 좀 느리긴했어..
그래서 나온것이 바로
Docker
- 컴퓨터 안에 컴퓨터 하나를 설치하지 말고,
- 핵심기능들만(커널만) 공유를 하자 !
- 그럼 아까처럼 OS전체를 설치 안해도 좀 설치할게 줄어들고 용량이 가벼워지겠다!
도커 안에는 기본적으로 다 리눅스다! (vm ware은 안에있는거 설정가능)
근데 windows는 도커를 쓸때 리눅스를 위한 프로그램 WSL을 추가적으로 설치해줘야됨 !
(window subsystem for Linux)
- 실무에서는 Dockerfile안에 작업할 파일들과 프로그램을 넣어놓고 도커파일을 깃에 넣던지,
주면서 이거 하세요! 하고 던져주는 일이 빈번....!
이렇게...!!!!!
그러면 내가 ...next js,,,, emotion,,,,하나하나 받았던 프로그램을 도커 명령어로 한번에 회사 환경에 맞추어서 설정 가능하다!
게다가 배포할때도 통합해서 배포가능하다구!
다른 환경처럼 똑같이 도커 파일을 주고받을수 있는것!
게다가 깃 클론을 하지 않아도 , 이 폴더 안에 있는것을 카피 가능하다
얀을 우리가 만든 class_build에서 해야하니까
WORKDIR /class_build/
저 안에서 실행할게 라고 적어주는 부분
RUN은 계속해서 쓸수 있고
CMD는 한번밖에 못 쓴다
이렇게 안에 환경을 설치하고 세팅을 해놓은 도커파일 자체를
얀 빌드했던것 처럼 도커파일도 빌드를 해야하는데, 하고나면 도커파일은 하나의 이미지(압축파일)로 나오게 된다
단 !!
실제 실무가면 여러개를 한번에 실행시켜야 할때가 많다 !
그리고 우리 docker-compose.yaml파일 설정해주자
코드젠 했을때 했던것처럼 키벨류 형태로 들어가게 되고 띄어쓰기가 중요하다
코드젠 했을때 1
도커 파일을 나열하는것이다
context는 내 도커파일 위치 알려주는거고
dockerfile:은 내가 설정한 도커파일 파일이름 알려주는거다
실제 실무가면 더 많은 도커파일이 있을수 있다 이렇게 !
내가 다운받은 폴더에서
docker --version
docker-compose --version
해서 잘 다운받아졌는지 확인해보자
이미 카피했으니까 얀 스타트만 해주면 되는거 아닌가?
안돼 yarn install yarn build:ssr 해서 버전 모두 다
node14버전에 깔려있는대로 똑같이 누가 이 도커파일을 실행을 시키든
똑같이 설정하게 되는것이기 때문에 꼭 해야한다 !
이제 우리가 해야하는 과정은 !
.dockerignore파일해서 도커만들때 카피대상에서 제외해주는과정이 필요
ssr은 백엔드 서비스로 가고,
ssl은 버킷으로 가거라 !
설정해주고
vm인스턴스 셀가서
docker-compose build
sudo docker-compose up -d
sudo docker-compose ps
깃클론으로 도커받아서 VM바꾸기
켜서 렌더링 분기잘 되는지 잘 확인해주고 테스트!!!!!!!!