Cloudwatch Logs Infrequent Access 클래스에 대해서

새롭게 추가된 CloudWatch Logs Infrequent Access 클래스에 대하여 알아보는 글입니다.
2023.12.25

안녕하세요 클래스메소드의 수재입니다.
올해 11월 말에 CloudWatch Logs Infrequent Access(Logs IA) 라는 클래스가 아나운스되었습니다.
이번 글에서는 Logs IA 클래스에 대하여 알아보고 설정하는 방법에 대하여 알아보겠습니다.

CloudWatch Logs IA 란?

AWS에서 기본적으로 모든 로그를 비용 효율적으로 통합하여 전체 애플리케이션 상태에 대한 가시성을 개선하는 데 도움이 되는 새로운 로그 클래스인 Amazon CloudWatch Logs Inrequent Access(Logs IA)가 공개되었습니다. CloudWatch Logs IA는 GB당 더 저렴한 수집 요금으로 관리형 수집, 크로스 계정 로그 분석, 암호화 등 CloudWatch Logs의 기능 일부를 제공하므로, 자주 액세스하지 않는 로그에 대한 임시 쿼리 및 사후 포렌식 분석에 적합합니다. - 공식 뉴스

지금까지 CloudWatch Logs 는 스탠다드 클래스만 제공해왔습니다. 새롭게 추가된 Logs IA는 인스턴스나 다른 서비스에서 로그를 수집할 때 일반적인 사용이 아닌 자주 액세스하지 않는 로그의 임시 쿼리 및 포렌식 분석 등에 적합한 클래스입니다.

스탠다드와 비교하면 Logs의 일부 기능은 사용할 수 없습니다.

기능 Standard IA
완전 관리형 로그 수집 및 스토리지 O O
CloudWatch 크로스 계정 관측성 O O
KMS 암호화 O O
CloudWatch Logs Insights를 사용한 로그 분석 O O (pattern, diff 및 unmask를 제외한 모든 쿼리 명령을 지원)
자연어 쿼리 지원 O X
로그 이상 탐지 O X
이전 시간 범위와 비교 O X
구독 필터 O X
Amazon S3로 내보내기 O X
GetLogsEventsFilterLogEvents API 작업 O X ( CloudWatch Logs Insights를 사용하여 Logs IA 의 로그 그룹에 저장된 로그 이벤트를 볼 수 있습니다)
지표 필터 O X
Container Insights 사용 O X
Lambda Insights 사용 O X
민감한 데이터의 마스킹 처리 O X
로그 내에 지표 포함 O X

비용

Standard와 수집 방법만 다르기 때문에 비용의 차이도 수집 비용만이 다릅니다.(서울 리전 기준)

  • Standard : GB당 0.76 USD
  • Infrequent Access : GB당 0.38 USD

사용 방법

로그 그룹을 생성할 때 클래스를 설정합니다.

AWS Console의 경우


AWS CloudWatch 콘솔에서 로그 그룹 - 로그 그룹 생성을 클릭합니다.

로그 그룹을 생성할 때 클래스로 Infrequent Access 를 지정합니다. 필요에 따라 다른 옵션을 설정하여 로그 그룹을 생성합니다.

생성한 로그 그룹의 클래스가 IA로 지정되어 있는 것을 확인할 수 있습니다.

로그 그룹을 생성한 후 클래스 변경을 불가능하므로 처음 그룹을 생성할 때 검토가 필요합니다.

CloudWatch Agent로 설정하는 경우

로그 그룹의 설정 파일에 log_group_calss 파라미터를 설정합니다.

"collect_list": [ 
  {
    "file_path": "/var/log/httpd/test.log", 
    "log_group_name": "test.log", 
    "log_stream_name": "test.log",
    "log_group_class": "apache_ia.log",
    "filters": [
      {
        "type": "foo",
        "expression": "bar"
      },
  .....
]

어떻게 활용할까?

앞서 설명했듯이 빠른 갱신이 필요하지 않고 보관 목적인 로그 수집이라면 IA 클래스를 이용하는 것이 수집 비용의 절반을 절약할 수 있습니다.
이를 활용하여 로그를 로그 그룹에 일정 기간 보관한 후 S3에 저장하는 데이터 플로우라면 IA 클래스를 이용하는 것이 비용 효율적일 것입니다.

다만 현재 공식 문서에는 로그 수집이 어느 정도의 빈도를 가지는지 기재되어 있지 않습니다.
따라서 실제 데이터와 비슷한 더미를 IA 클래스에 저장하는 검증을 사전에 해보는 것을 추천합니다.

로그 그룹에서 S3로 로그를 이동하는 방법은 아래 블로그를 참고해주세요.

또한 IA 클래스는 스탠다드 클래스에 비해 지원하지 않는 기능이 많습니다.
따라서 CloudWatch Logs의 다양한 기능들을 활용하는 경우 IA 클래스의 도입은 힘들다고 생각됩니다.
만약 IA에 저장되어 있는 로그를 다른 방법으로 활용할 필요가 있다면 연계할 수 있는 서비스가 더 많은 S3로 이동하여 활용하는 것을 추천드립니다.

마무리

새롭게 추가된 CloudWatch IA 클래스에 대하여 가볍게 알아보았습니다.
필요한 정보를 얻어 검토에 도움이 되면 좋겠네요.

긴 글 읽어주셔서 감사합니다.
오탈자 및 내용 피드백은 must01940 지메일로 보내주시면 감사합니다.