Elastic Beanstalk
[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 페이지로 튕기게 되어있어서 기존 유저들이 불편함을 ..
[AWS] NestJS 프로젝트를 Code Pipeline을 사용해서 Elastic Beanstalk으로 배포하는 법
[AWS] NestJS 프로젝트를 Code Pipeline을 사용해서 Elastic Beanstalk으로 배포하는 법
2022.07.22Elastic Beanstalk을 사용하면 빌드한 JS 코드를 업로드해서 간단하게 배포할 수 있습니다. 하지만 매번 빌드해서 올리는 것은 비효율적이고 귀찮습니다. 매번 push할 때마다 알아서 빌드하고 올려준다면 어떨까요? 이런식으로 GitHub의 코드로 자동 배포하는 것은 여러가지 방법으로 가능합니다. GitHub Actions로도 여러 방법으로 할 수 있습니다. 푸쉬할 때 마다 GitHub Actions를 통해 빌드하고 그 파일을 업로드해서 배포를 할 수 있습니다. Ex. https://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/eb3-cli-git.html 푸쉬할 때 마다 Actions 상에서 소스코드를 그냥 S3에 업로드하고 빌드해주는 애(Cod..