[AWS] CloudWatch Logs 전송 타이밍은 언제입니까? @ 2019.11

개요



EC2와 컨테이너 내부를 상태 비저장 상태로 유지하기 위해 로그 파일을 CloudWatch Logs로 출력하는 경우가 많습니다.
출력시키는 순서는 공식·비공식 불문하고 많이 있습니다만,
최신 CloudWatch 에이전트에서 실제 OS가 중단되면 어디까지 로그가 남는지, 어느 정도의 간격으로 플러시되고 있는지 알고 싶었기 때문에 조사해 보았습니다.
”최신 CloudWatch 에이전트”에 대해 알고 싶었습니다. (중요한 것)

결론



CloudWatch 에이전트 구성 파일의 로그 세션 "force_flush_interval"을 초 단위로 설정합니다. 기본값은 5초.
또한이 설정에 관계없이 버퍼의 로그 크기가 1MB에 도달하면 플러시됩니다.
자세한 내용은 여기의 공식 문서를 참조하십시오.

실험



결론은 나와 있습니다만, 만약을 위해 「force_flush_interval」을 1초로 설정해 실험했습니다.
실험 방법으로는 인스턴스가 있는 로그 파일을 CloudWatch Logs에서 수집하도록 설정하고,
이 로그 파일에 0.1초마다 현재 시간을 출력하는 쉘 스크립트를 작성했습니다.
쉘 스크립트를 실행하는 동안 해당 인스턴스를 강제로 종료하고,
인스턴스의 터미널에 표시된 최종 실행 시간과 CloudWatch Logs의 최종 수집 시간을 비교하여 그 차이를 조사했습니다.

결과




(실험용 스크립트가 잡이므로) 대체로 1초 이내에 출력되고 있네요. (언더 스코어 이후는 밀리 세컨드)
절대 안심이라고는 말할 수 없습니다만, 5초보다는 맛이므로 신경이 쓰이는 분은 변경해 보면 좋을지도 모릅니다.

기타



이전 버전의 CloudWatch Logs 에이전트에서는 버퍼 크기를 변경할 수 있었습니다. ( 공식 문서 )
"buffer_duration"이 플러시될 때까지의 시간(기본 5초)
"batch_size"가 버퍼 크기(기본 10MB)
batch_count가 버퍼에 넣는 이벤트 수(기본 10,000건)
그러나, 신판에서는 상기와 같이 시간밖에 변경할 수 없는 것 같습니다.

그리고, 이것은 단지 암캐입니다만, 투고일 현재라고 CloudWatch 에이전트가 신구 2종 병존하고 있기 때문에,
공식 문서를 찾아도 매우 다소 어려웠습니다.
이전 버전과의 호환성을 위해 이전 버전이 있다는 것을 이해할 수는 있지만 좀 더 이해하기 쉬운 이름을 원합니다 ...

좋은 웹페이지 즐겨찾기