본문 바로가기
AWS

CodeDeploy BlockTraffic AllowTraffic 단축

by 하르싼 2023. 5. 12.
반응형
  • 프로젝트(멀티프로젝트 A API, B API) 의 CI/CD 를 Aws code series 사용하여 구축
  • 서버의 구성 A API 이중화, B API 이중화 하여 총 4개의 WAS
  • ALB 를 통해 로드밸런싱

운영서버의 배포시간이 최소 25분이 소요되어 CodeDeploy view events 를 분석하던 중 BlockTraffic , AllowTraffic 에서 시간이 오래걸리고 AllowTraffic은 5분이 넘어가면 배포가 실패되면서 롤백이 되는 현상을 발견하여 설정값을 변경하여 시간을 단축

 

변경 전 소요 시간

 

Deregistration delay(등록취소지연 시간)

컨테이너를 종료하고 싶거나 다른 이유로 로드 밸런서에 컨테이너로의 트래픽 전송을 중지하는 신호를 전송하면 로드 밸런서는 다운스트림 컨테이너에 대한 새 연결 전송을 중지합니다. 하지만 기존 연결은 컨테이너가 close 될 때 까지 기다리며 deregistration delay 라 불리는 기간 이후에 연결 유지를 강제적으로 끊습니다.

 

Block Traffic 시간을 줄이기 위한 설정

로드밸런스 > 대상그룹 > 대상그룹 속성편집 > 등록취소지연 기본값 300 → 60 (1분이면 대부분의 트랜젹신이 처리 됐을거라 판단하여 변경)

 

 

Allow Traffic 시간을 줄이기 위한 설정

로드밸런스 > 대상그룹 > 상태그룹설정편집 > 정상임계값 기본값 5 → 2

로드밸런스 > 대상그룹 > 상태그룹설정편집 > 간격 기본값 30 → 10

헬스체크의 간격을 줄이고 성공여부 횟수를 줄이므로써 시간을 단축

 

 

변경 후 소요시간

 각 서버에 맞게 임계치, 딜레이시간을 조절하여 배포시간을 단축하는게 적당해 보인다. 변경 전에는 배포완료 시간까지 총 25분이 걸렸으나 수정 후 배포완료 시간이 10분내외로 줄었다.

반응형

댓글