Carryduo

Carryduo | AWS CodeDeploy 배포본 수 줄이기

차가운에스프레소 2023. 2. 6. 16:17

1. 개요

- carryduo 서비스를 지속적으로 운영하는 과정에서 "no space for device"에러가 발생했다.

- 서버 용량을 확인해보니, CodeDeploy Agent에서 ubuntu에 저장하는 배포본의 용량이 가장 많았다.

- 이에, 다음과 같은 과정을 통해 CodeDeploy Agent에서 ubuntu에 저장하는 배포본의 수를 줄여주었다.


2. 서버 용량 확인하기

- 서버 용량을 확인하는 linux 명령어는 다음과 같다.

df -h  // 파일 시스템별 용량/사용량/남은 용량/파일 시스템이 사용중인 경로 확인

for i in [경로]; do echo $i; find $i | wc -l; done  // 특정 경로의 하위 경로에서 각각 차지하는 용량 확인

- 필자의 경우, df -h를 실행했을 떄, " / "  경로를 사용하는 파일시스템의 사용량이 100%였다.

- 이에,  for i in /*; do echo $i; find $i | wc -l; done 명령어를 실행해서 / 경로에서 어떤 경로가 가장 용량을 많이 차지하는지 확인하였다. 

- 결과는 /opt 경로였다.

- /opt 경로는 AWS CodeDeploy에서 자동 배포 시, 배포본 이력을 저장하는 경로였다.

- /opt 경로를 확인하니, 다음처럼 배포본에 해당하는 프로젝트 폴더들이 저장되어 있는 것을 확인할 수 있었다.

- 위 이미지를 설명하자면, AWS CodeDeploy에서 최근 5개 배포본 이력을 계속 저장한 것을 보여주는 것이다.


3.  AWS CodeDeploy 배포본 수 조정하기

- AWS CodeDeploy에 대한 AWS 공식문서에 따르면, /etc/codedeploy-agent/conf 경로의 codedeployagent.yml이 사용중인 AWS CodeDeploy와 관련한 config를 설정하는 파일이라고 한다.

- config의 설정은 여러가지가 있는데, 이 중 배포본 개수에 대한 설정은 :max_revisions 이다.

- :max_revisions는 default 값이 5개로 설정되어있다.

- 필자는 이를 2개로 수정하여 배포본에 따라 서버 용량이 부족한 문제를 해결했다.

* 배포본 떄문에 서버 용량 부족 이슈가 발생한 까닭은 아무래도 프로젝트에 추가되는 feature나 패키지가 많아졌기 떄문인 것으로 추측된다.

- codedeployagent.yml 파일을 수정한 이후에는 sudo service codedeploy-agent restart 명령어로 agent를 재실행해 주어야 한다.


4. 참고 자료

- AWS CodeDeployAgent config

 

CodeDeploy 에이전트 구성 참조 - AWS CodeDeploy

와이어 로그를 캡처하는 데 필요한 시간 동안만 :log_aws_wire:를 true(으)로 설정해야 합니다. codedeploy-agent.wire.log 파일은 매우 큰 크기로 빠르게 커질 수 있습니다. 이 파일의 유선 로그 출력에는 이

docs.aws.amazon.com

- ubuntu 서버 용량 확인하기

 

[Linux] No space left on device(장치에 남은 공간이 없음) 해결

운영중이던 프로젝트를 개발하던 도중에 인스턴스를 재시작하려고 하자, ~/log/~~ : 장치에 남은 공간이 없음 이라는 문구와 함께 실행되지 못 하였다. (회사 프로젝트다 보니 캡처는 하지 못하였

dev-jwblog.tistory.com