Code Deploy 장점
- 자동배포로 새로운 기능들의 빠른 배포
- 소프트웨어 & 서버 다운타임 X (고객들은 서버나 프로그램을 사용하는데 불편함이 없다.)
- Manual 에러 X
배포 방식
Rolling 배포
- 여러대의 서버가 구성된 경우, 차례대로 배포하는 방법
- 이전 버전의 서버는 한대씩 죽여가면서 새롭게 배포한 서버를 한대씩 올려가는 방식이다.
- Rolling에서 주의할 점은 하나의 서버가 중단 되었을 때 나머지 서버의 부하량을 잘 파악해야한다.
- 예를 들어, 100까지 감당 가능한 서버 3대가 있을 때 70,70,70씩 부하를 가지고 있다면,
- 한개 서버만 다운타임이 생겨도 0,105,105가 되버려서 모든 서비스가 마비가 되버린다.
Blue/Green 배포
- Rolling 배포는 전 버전으로 한번에 돌아가기 어려움, Blue/Green 배포는 이전 버전과 새로운 버전을 모두 존재하기에 롤백이 쉬움
- 하지만 Rolling 방식보다 2배의 자원을 사용해야 하므로 더 많은 비용이 발생하게 된다.
- Blue : 이전 버전
- green : 새로운 버전
Rolling 배포 방법은 무조건 사용되는 경우
- 맨 처음 배포하는 경우, 새로운 버전과 비교할것도 없고 상대적으로 빠른 배포가 가능
- 그러면 맨 처음 배포할 경우에 Blue/Green 배로를 사용하면 안되나?
- 하나의 새로운 프로덕션 환경을 만들어야 함, 따라서 두개의 환경을 구축하는데 추가적인 비용이 든다.
- 배포가 복잡하다면 Blue/Green 배포방식이 더 좋다.
- downtime이 전혀 없고, 이전 버전으로 복원이 매우 용이하다.
https://dunchi.tistory.com/69
https://potato-yong.tistory.com/136
https://www.inflearn.com/course/aws-%EC%9E%85%EB%AC%B8/dashboard