주말 동안 삽질을 오지게 했다...
정리할 겸... 작성해 보자...
현재 Amazon Elastic Beanstalk, EC2로 서버를 운영하고 있다. 물론 인스턴스는 t2.micro로 무료버전을 쓰고 있다. 잘 사용하다가 갑자기 배포가 안된다...
Git-Actions로 배포파이프라인을 구축해서 사용하고 있다.
EC2의 볼륨을 8GB로 사용하고 있어서 부족한 걸까?.... 확인해 보자!
100 % of root file system is in use. 0 MB free.
예상이 맞았다. 어떤 파일이 용량을 잡아먹고있는지 확인해 보니 로그 파일이 원인이었다.
나와 같은 상황이라 참고했다.
볼륨 크기를 올리면 되지만... 그래도 최대한 무료 인스턴스를 활용해보고 싶었다.
일단 Logback의 설정을 바꿔줬다. 5GB -> 3GB로 용량을 낮췄다.
logback 설정
<appender name="dailyRollingFileAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_PATH}/production.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_PATH}/rolling/production.%d{yyyy-MM-dd}.log</fileNamePattern>
<maxHistory>30</maxHistory>
<maxFileSize>3GB</maxFileSize>
</rollingPolicy>
팀원분 중 한 분이 설정해 주셨다. 근데 배포는 정상적으로 되는데 502 Error가 그대로 인 것이다... 이번엔 배포는 정상적으로 되었으니 docker 이미지를 확인해 봤다.
정상적으로 이미지가 잘 올라와있다... 뭐가 문제일까?
이번엔 Spring 쪽 Log를 확인해 봤다.
아까 적용했던 maxFileSize 설정이 잘못된 것 같다. 열심히 구글링 결과...
<appender name="dailyRollingFileAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_PATH}/production.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_PATH}/rolling/production.%d{yyyy-MM-dd}.log</fileNamePattern>
<maxHistory>30</maxHistory>
<totalSizeCap>3GB</totalSizeCap>
</rollingPolicy>
maxFileSize -> totalSizeCap으로 설정을 바꿔줬다. totalSizeCap은 Logback의 로그 롤링 정책 중 하나로, 일정 크기 이상이 되면 기존 로그 파일을 삭제하고 새로운 로그 파일을 생성한다. 이 속성을 사용하면 로그 파일의 총크기가 일정 크기 이상이 되면 롤링이 트리거 되어 가장 오래된 로그 파일이 삭제된다. 이를 통해 디스크 공간을 절약할 수 있다. 하지만 실제로는 로깅에 대한 정책이 필요하다. 현재는 그냥 서비스를 운영해 보는 것을 경험으로 만들고 있지만... 서비스가 더 커진다면 이 이 부분을 개선해야 한다.
정상적으로 배포 후
사용률이 떨어진 것을 확인할 수 있었다. 참어렵구만...
'혼자 공부하는 것들 > Spring' 카테고리의 다른 글
Spring Batch Partitioner를 이용해서 병렬처리할 때 주의점! (13) | 2023.09.28 |
---|---|
Spring Batch(+Mybatis)에서 Commit하기 전 실행된 SQL 문의 개수를 확인하고싶으면? (4) | 2023.07.15 |
회사에서 Spring batch 짜면서 삽질한거 정리 (1) | 2023.04.05 |
@Component는 어떻게 동작하는 걸까? (0) | 2023.01.24 |
spring-data-envers로 데이터 변경 이력(히스토리)을 관리해보자! (0) | 2022.09.04 |
댓글