Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 프로토타입
- mysemester
- 큐
- 코드스테이츠
- 자바스크립트
- 백준
- UX
- level1
- Til
- superstarjypnation
- REST_API
- javascript
- web
- 해시테이블
- redux
- 카카오
- 회고
- 생활코딩
- 자료구조
- 운영체제
- CSS
- React
- html
- Next.js
- useState
- 30daysdowoonchallenge
- UI
- 프로그래머스
- vercel
- 스택
Archives
- Today
- Total
데굴데굴
빈스톡 플랫폼 버전 업그레이드하기 (node.js) 본문
사내 프로젝트 node 버전을 16에서 20으로 올려야 하는 상황이 생겼는데 이 작업을 직접 해보게 되었다.
실무에서 인프라 관련 이야기가 나올 때마다 하나도 못 알아들어서 혼자 찾아서 정리도 해봤었는데 크게 와닿지가 않아서 머리에 남은 게 하나도 없는 상태였다.
뒤돌아설 때마다 리셋되는 나의 뇌..
그래서 전체적인 흐름에 집중해서 다시 정리해보았다.
EC2와 빈스톡
EC2는 쉽게 말하면 aws에서 빌려주는 컴퓨터다.
이 서버의 제어 권한을 개발자가 직접 다 관리할 수 있는데 유연하지만 관리에 그만큼 시간이 소요된다는 한계가 있다.
개발자는 개발에만 집중하고, 인프라 관리는 내가 다 알아서 해줄게라는 취지로 나온 게 빈스톡이다.
빈스톡은 서버가 아니고 서버 등의 인프라 자원을 활용한 어플리케이션의 배포, 관리를 자동화해주는 서비스다.
서버를 어느 시점에 증설할 것인지, 서버 상태는 어떤지 확인할 수 있도록 기능을 다 제공해준다.
개발자는 이걸 상황에 맞게 잘 활용하기만 하면 되는 것이다.
플랫폼 버전 업그레이드 방법
공식 문서에 설명이 정말 잘 되어있다.
플랫폼의 어떤 버전을 업그레이드할 것이냐에 따라 권장하는 방법이 다르다.
마이너, 패치 버전을 업데이트 할 때에는 빈스톡 자체에서 업데이트하는 방향을 권장한다.
업데이트 방식도 여러 가지가 있는데 내가 찾아본 건 아래 두 가지였다.
- 롤링 업데이트
- 인스턴스를 하나씩 교체
- 다운타임이 줄어들 수 있지만 이전 플랫폼 버전의 인스턴스와 업데이트된 버전의 인스턴스가 혼합된 상태로 트래픽이 처리될 수 있음
- All at once
- 모든 인스턴스를 동시에 교체
- 빠르지만 다운타임이 발생한다.
- 문제가 생겼을 때 롤백을 해야 한다면 롤백 또한 모든 인스턴스에 동시에 적용된다.
메이저 버전을 업그레이드해야 할 때에는 아래 방식을 권장한다. (현재 내 상황)
- 기존 환경 복제해 버전이 업데이트된 새 환경 생성
- 새 환경에서 소스코드를 배포하여 기능 동작 테스트
- 이상 없을 경우 기존 환경의 cname을 새 환경을 바라보도록 변경
- 기존 환경으로 가던 요청을 새 환경으로 옮기는 것이다.
- 기존 환경 종료
Comments