Autoscaling
[AWS] Elastic Beanstalk graceful shutdown (feat. AutoScaling Lifecycle Hook - TERMINATING)
[AWS] Elastic Beanstalk graceful shutdown (feat. AutoScaling Lifecycle Hook - TERMINATING)
2022.11.10대상 서버가 종료될 때 미리 사전 작업을 해주고 싶은 분들에게 도움이 되는 글입니다. 제가 겪은 문제의 상황 백엔드 앱을 배포할 때마다 사용 중인 접속자가 튕기는 문제가 발생했습니다.. 왜냐하면 Websocket은 TCP 연결을 계속 유지하기 때문에 Stateful 했습니다. TCP connection이 맺어진 서버가 블루-그린 배포이든 롤링 배포이든 다운이 되는 순간 모든 클라이언트가 튕겼습니다. HTTP만 썼으면 세션을 외부에(Redis, PostgresSQL 등) 저장해 두거나 해서 이런 현상을 막을 수 있었겠지만 WebSocket은 애초에 stateful 해서 항상 튕겼습니다. 특히, 클라이언트에서는 현재 WebSocket 연결이 끊기면 main 페이지로 튕기게 되어있어서 기존 유저들이 불편함을 ..
수평적 확장(Scale-Out)과 수직적 확장(Scale-Up)
수평적 확장(Scale-Out)과 수직적 확장(Scale-Up)
2022.07.18이용자가 증가하거나 서비스를 확장시키는 등 다양한 이유로 서버를 확장해야 될 때가 있다. 서버를 확장 시키는데에는 크게 두 가지의 방법이 있다. 수평적 확장(Scale-Out) 수직적 확장(Scale-Up) 클라우드 서비스에서는 수직적 확장(Scale-Up)보다는 수평적 확장(Scale-Out)을 자주한다. 이것을 위해 Stateless하게 설계를 하라~~ 등등 많이 듣게 될 것인데 이 두가지 방법에 대해 간단히 정리해보겠다. 수평적 확장(다른 말로, Scale-Out) 수평적 확장은 아래의 그림과 같이 서버를 여러대를 추가해서 옆으로 확장시킨다고 생각하면 된다. 서버의 자체적인 스펙을 업그레이드 시키는 것이 아니라 여러대의 서버 갯수를 늘리는 방법이다. 이렇게 똑같은 역할을 인스턴스를 늘리면 기존에 잘..