AWS Codedeploy로 배포를 진행하던 도중 전에는 잘만 진행되었던 배포가 에러가 나는 현상이 발생했다. 기존에 애플리케이션 및 배포 그룹 설정까지 잘 설정해줬기 때문에 이런 일이 전혀 없을 줄 알았는데 갑자기 배포 작업이 "실패당해서" 당황했다.
하지만 나도 년차가 쌓여서 그런지, 당황은 뒤로 미뤄두고 좀 더 상세한 에러 로그를 확인하기 위해 세부 정보를 확인해 봤다. 아래와 같은 에러 메시지를 첫 번째로 확인할 수 있었는데 배포 그룹 설정이나 ec2 인스턴스에 특별한 문제는 없어 보였다.
The overall deployment failed because too many individual instances failed deployment, too few healthy instances are available for deployment, or some instances in your deployment group are experiencing problems.
(배포에 실패한 개별 인스턴스가 너무 많거나, 배포에 사용할 수 있는 정상 인스턴스가 너무 적거나, 배포 그룹의 일부 인스턴스에 문제가 발생하여 배포에 실패했다는 의미)
그렇다면 좀 더 디테일한 로그를 확인해봐야 한다. 계정 세부 정보 탭 아래에 있는 이벤트 탭의 view event를 클릭하여 이벤트 상세 정보를 확인하였다. DownloadBundle에서 실패가 되었고 오류 코드가 UnknownError...? 뭐지 하고 위에 에러 메시지를 확인하였다.
No space left on device - /opt/codedeploy-agent/deployment-root/~.....
딱 봐도 해당 디바이스에 공간이 없다 대충 그런 의미겠지 생각하고 인스턴스로 들어가서 df 명령어로 해당 인스턴스 서버의 총용량을 체킹 해봤다. Size가 10G인데 Used가 10G..? 그래서 Available 0G. 사용 가능한 공간이 없기 때문에 배포가 안 되었던 것이다.
ec2-user@web-11:~$ clear
ec2-user@web-11:~$ df -h /
Filesystem Size Used Avail Use% Mounted on
/dev/nvme0n1p1 10G 10G 0G 100% /
du -sh 명령어로 특정 폴더의 용량을 확인할 수 있고 나는 app이 구동하고 있는 디렉터리인 /app 및의 용량들을 확인했다. 그리고 예전부터 사용했지만 현재는 사용하지 않는 특정 폴더의 용량이 꽤 많이 차지하고 있는 것을 알게 되어 그 디렉터리를 삭제처리 해 주었다.
ec2-user@web-11:~$ du -sh /app
6G /app
ec2-user@web-11:~$ du -sh /app/repo
3.5G /app/repo
ec2-user@web-11:~$ rm -rf /app/repo
또한 인스턴스 용량을 총 20G로 10G 증설하였다. 그리고 다시 df -h 명령어를 사용하여 해당 인스턴스에 공간이 충분히 확보되었음을 확인한 후에 재 배포를 진행하니 별 탈 없이 성공한 것을 확인할 수 있었다.
ec2-user@web-11:~$ df -h /
Filesystem Size Used Avail Use% Mounted on
/dev/nvme0n1p1 20G 6.8G 14G 34% /
'AWS' 카테고리의 다른 글
[쉽게 따라하는 AWS] 10. Gradle - SpringBoot 프로젝트 EC2에 배포하기 (0) | 2022.07.15 |
---|---|
[쉽게 따라하는 AWS] 09. AWS EC2 인스턴스 도메인 적용하기 (0) | 2022.07.14 |
AWS에서 도메인을 다른 도메인으로 리디렉션 하는방법에 대한 고찰 (0) | 2022.03.18 |
[쉽게 따라하는 AWS] 08. AWS EC2 RDS 연결, EC2에서 RDS 접근하기 (5) | 2020.04.29 |
[쉽게 따라하는 AWS] 07. AWS RDS 생성하기 (0) | 2020.04.28 |