본문

테크
AWS Log, AWS환경에서 발생하는 로그를 와탭에서 확인하세요!

작성일 2023년 06월 28일

들어가며

안녕하세요 와탭랩스 데브옵스팀 최정민입니다. 오늘날 많은 기업들이 온프레미스에서 클라우드 환경으로 이전하고 있습니다. 현재 다양한 클라우드 벤더 업체들이 기업들의 클라우드 환경으로의 이전을 돕고 있습니다.

그중에서도 AWS (Amazon Web Service)는 압도적인 점유율을 가진 클라우드 시장의 선도 주자입니다. 공정거래위원회가 시행한 조사에 따르면 AWS 국내 클라우드 시장에서 약 70퍼센트의 시장 점유율로 1위를 차지하였습니다

와탭랩스도 사용하는 클라우드 벤더 중 AWS가 차지하는 비중이 가장 큽니다. 데브옵스 엔지니어로서 AWS를 사용하면서 가장 불편한 점 중에 하나는 다양한 리소스들의 로그를 한곳에서 모아볼 수 있는 창구가 없다는 것이었습니다. 이러한 점에서 불편함을 느껴 AWS 리소스들의 로그를 와탭에서 모아볼 수 있는 AWS Log를 개발하게 되었습니다.

이번 글에서는 와탭에서 제공하는 AWS Log의 구성요소와 원리, 특히 AWS 환경에 로그를 어떻게 수집하는지에 대해 중점적으로 알아보도록 하겠습니다.

AWS Log Architecture

AWS Log의 전체 구조는 다음과 같습니다.

main
  1. AWS 환경에서의 로그는 대부분 AWS CloudWatch LogGroup 혹은 S3에 수집됩니다.
  2. AWS CloudWatch LogGroup, S3에 쌓이는 로그를 수집하는 Whatap Forwarder가 사용자의 환경에 설치되어, 와탭 환경에 로그를 보냅니다.
  3. 와탭 수집 서버에서는 해당 로그를 와탭에서 모니터링이 가능하게끔 데이터 가공 및 처리를 하여 사용자에게 보여줍니다.
  4. 사용자는 기존에 와탭에서 제공하던 로그 모니터링과 동일한 환경에서 AWS 리소스들의 로그를 손쉽게 확인할 수 있습니다

Whatap Forwarder

Whatap Forwarder는 AWS Lambda로 와탭에서 제공하는 CloudFormation을 통해 사용자의 AWS 환경에 설치가 됩니다.

[AWS CloudFormation으로 인프라 관리/복제하기]


수집

(1) AWS CloudWatch LogGroup
main

Whatap Forwarder는 AWS CloudWatch LogGroup의 Lambda 구독 필터를 이용하여 로그를 수집합니다.

main
  1. CloudWatch LogGroup Lambda 구독 필터를 Whatap-Forwarder에 설정합니다.
  2. CloudWatch LogGroup에 저장되는 로그를 포함한 json data(base64 encoded)가 Whatap-Forwarder에 전송됩니다.
main
Whatap-Forwarder 실행되고, decoding 과정을 거쳐 수집한 로그를 와탭 환경으로 전송합니다.
main


(2) AWS S3
main

Whatap Forwarder는 AWS S3 bucket의 Bucket Notification과 AWS Python SDK(GetObject)를 이용하여 로그를 수집합니다.

main
  1. AWS Resource가 쌓이는 AWS S3 Bucket에 Bucket Notification(이벤트 알림)을 설정합니다.
  2. Bucket에 Object(log) 생성 시, S3에 해당 Object의 bucket과 key를 포함한 json data가 Whatap-Forwarder로 전송됩니다.
main
Whatap-Forwarder 실행되고 받은 데이터의 bucket, key 정보를 이용하여 GetObject(AWS SDK)로 로그파일을 가져와 와탭 환경으로 전송합니다.


설정

위에서 설명드린 것처럼 Whatap-Forwarder가 AWS Cloudwatch LogGroup, S3 bucket에 쌓이는 로그를 수집하기 위해서는 각각 Lambda 구독 필터, Bucket Notification 설정이 필요합니다.

와탭에서는 해당 설정을 와탭 설치 화면에서 제공합니다. 설정을 위한 Architecture는 다음과 같이 구성됩니다.

main
  1. 사용자가 AWS IAM ROLE(와탭 AWS계정과 신뢰관계)을 화면에 입력 후 필요한 작업을 요청합니다.
  2. 와탭 Front에서 와탭 Backend로 요청 정보 이동하고, AWS APIGATEWAY에 요청을 보냅니다.
  3. AWS APIGATEWAY에서 AWS Lambda를 실행시키고 사용자에게 받은 정보를 넘겨줍니다.
  4. 와탭 AWS 계정의 Lambda는 사용자가 입력한 AWS IAM ROLE을 수임 받아, 조회 설정 등을 작업을 진행합니다.


마무리

지금까지 와탭의 새로운 서비스인 AWS Log의 로그 수집 원리와 설정 원리 등에 대해 살펴보았습니다. Devops 엔지니어로써 운영에 필요한 기능을 개발하고 해당 기능을 제품화하여 많은 Devops엔지니어, 운영자, 개발자분들에게 도움을 드리는 일은 정말 뜻깊은 일인 것 같습니다.

AWS 환경에서의 다양한 Log를 한꺼번에 모아보고 싶으시다면 와탭 AWS Log 사용을 추천드립니다.

[AWS Log 모니터링 가이드]

서비스 성능관리는 와탭 애플리케이션 모니터링으로!
와탭 무료로 시작하기
최정민[email protected]
DevOps TeamDevOps Engineer

지금 바로
와탭을 경험해 보세요.