본문 바로가기

DevOps/CI·CD2

[CI·CD] Heroku에 배포하기 웹 사이트를 개발하고 사용자들에게 오픈하려면 접속 가능한 서버를 돌려놓아야한다. 내 컴퓨터를 방화벽 등 any로 오픈하고 24시간 켜놓을 수 있지만,,, 그렇게 원하는 사람은 많지 않을 것이다. 그래서 우리는 AWS, AZURE 같은 클라우드 서비스를 이용해 서버를 대여하여 배포하거나 파이어베이스, 헤로쿠 같은 웹 호스팅 서비스를 이용한다. 그럼 그 2개의 장단점은 무엇일까? 1. 클라우드 서비스 (AWS, AZURE) 대표적으로 EC2를 들어보자 EC2 같은 경우는 특정 OS가 깔린 VM(서버)를 통째로 빌려서 컴퓨터처럼 사용하는 것이다. Putty 같은 ssh툴을 이용해서 CLI로 컨트롤 할 수 있다. (인터페이스 버전도 있다) 그래서 EC2를 이용하면 필요한 프로그램들을 다 설치해주어야한다. 본인이.. 2020. 8. 17.
[CI/CD] 배포 전략 (Rolling, Blue Green, Canary) 실서비스를 하다보면 서버에 업데이트를 반영해야하는 일이 빈번히 발생한다! 그런데 서버에 업데이트를 할 때 중단 시점이 발생한다. 그러면 업데이트를 배포하는 동안에는 서비스를 이용하지 못할 것이다 ㅜㅜ (3초만 안되도 VOC가) 그래서 우리는 유저가 다운타임을 못 느끼는 무중단배포를 해야한다! 이에 대한 배포 전략 3가지를 알아보자. * 초록색은 배포 완료, 파란색은 배포 이전인 서버다. 1. Rolling 여러대의 서버가 있을 때 차례대로 배포하는 방법이다. 첫번째 서버가 배포 중이라 역할을 못할 때면 나머지 2개 서버가 대신 부하를 감당하며 서비스를 지속한다. 마찬가지로 나머지 서버들도 배포 중인 서버를 제외한 나머지 서버들이 부하를 감당해준다. * Rolling에서 주의할 점은 하나의 서버가 중단 되.. 2020. 8. 3.