ECS를 사용하면서 불필요한 로그를 줄이고 가능하다면 ERROR, WARN로그만 켜놓자.
우리 회사는 ECS Fargate를 굉장히 자주 사용한다.
아무래도 서버리스라는 장점이 있어서 관리의 편의성 때문인데,
ECS 서비스를 생성할 때 무의식적으로 로그 설정을 켜놨다.
문제개 생겼을 때 CloudWatch에서 보기 위해서다.
일단 ECS는 TaskDefinition이라는 작업에 정의된 대로 컨테이너가 실행된다.
여기서 작업을 정의할 때, 기본설정으로 대부분을 설정하다 보니
기본적으로 로그 수집 사용에 체크가 되어있었다.
기본으로 로그 수집 사용이 체크되어 있다.
물론 로그 사용은 필요하지만 불필요한 INFO 로그는 안 봐도 된다.
그러다 인프라 관련 비용을 보던 도중, 어느 순간 매일 $10씩 추가적으로 늘어난 것을 보게 되었다.
바로 Amazon CloudWatch PutLogEvents 항목이다.
ECS를 마이그레이션 하는 시점부터 이 항목의 비용이 꾸준히 늘었고, 도대체 이건 왜 청구된 것인가. 살펴보았다.
일단 항목의 이름만 봐도 CloudWatch의 로그 작성에 청구되는 비용이었다.
당장 CloudWatch로 들어가서 로그 그룹들을 확인하고 대부분의 로그 보존기간이 만기 없음임을 확인하고
불필요한 로그그룹의 만기를 설정해 주었다.
그리고 /ecs로 시작하는 로그 그룹이 상당히 많았는데, 다 우리가 최근에 띄운 서비스였다.
이 로그들도 만기 설정 + 각 서버들의 로그 레벨을 WARN 혹은 ERROR로 변경하고 며칠의 경과를 지켜봤다.
매일 10달러씩 불필요하게 청구되던 요금이 0.1달러로 줄었다.
AWS CloudWatch 비용에 대한 정책은 위 사이트에서 확인할 수 있다.
아카이빙과 수집에 대한 비용이 청구가 되니 잘 확인하고 필요에 따라 서버의 로그 레벨을 조정해 주자.
로그를 아카이빙 해야 한다면 S3와 연결하여 로그를 저장해 둘 수 있으니까.
모든 로그를 CloudWatch에 저장하지 말고,
서비스를 구축할 때 추가적인 비용이 발생할 수 있는 항목들에 대해 잘 체크하자.
일 요금이 약 98% 줄었고,
환율 1330원 기준으로 월 37만 원을 절약할 수 있었다.
불필요한 로그를 남기지 말고 로그 레벨을 필요에 따라 조정해 주자.
서비스를 구축할 때, 추가적인 비용이 들어갈 항목에 대해 잘 살피고 예상외에 비용이 나오지 않도록 주의하자
'IT 정보' 카테고리의 다른 글
외부 API호출하는 서버 개발시 주의할 점! [File Descriptor, Too Many Open Files] (0) | 2023.12.14 |
---|---|
AWS]ECS Fargate X86에서 ARM으로 (0) | 2023.05.09 |
Spring boot에서 ControllerAdvice를 이용하여 Exception handling하기 (0) | 2023.03.21 |
AWS Lambda 사용시 주의점 (동시성) (0) | 2022.12.22 |
AWS LightSail 소개 및 적용기 (1) | 2022.11.30 |
댓글