[typescript] 타입스크립트와 AWS CloudWatch를 사용하여 모니터링 및 로깅 구현

본 포스트에서는 타입스크립트(Node.js) 프로젝트에 AWS CloudWatch를 사용하여 로그를 수집하고 모니터링하는 방법에 대해 알아보겠습니다.

목차

  1. AWS CloudWatch란 무엇인가요?
  2. 타입스크립트 프로젝트에 AWS CloudWatch 설정하기
  3. AWS CloudWatch Logs로 로그 전송하기
  4. AWS CloudWatch Dashboard를 통한 모니터링
  5. 마무리

AWS CloudWatch란 무엇인가요?

AWS CloudWatch는 AWS에서 제공하는 서비스로, 애플리케이션, 서비스 및 인프라스트럭처의 성능을 모니터링하고 로그를 수집할 수 있도록 해주는 서비스입니다. 이를 통해 시스템 상태, 애플리케이션 상태 및 리소스 사용률을 실시간으로 모니터링할 수 있습니다. 또한 로깅 관리 및 경보 설정 등에 활용할 수 있습니다.

타입스크립트 프로젝트에 AWS CloudWatch 설정하기

먼저, 타입스크립트(Node.js) 프로젝트에 AWS SDK를 설치합니다.

npm install aws-sdk

그런 다음, AWS CloudWatch를 사용하기 위해 AWS 계정에 액세스할 수 있는 IAM 권한이 있는 AWS 계정 자격 증명을 구성합니다.

IAM 사용자 또는 역할에 적절한 권한을 부여하고, 다음과 같이 AWS 계정 자격 증명을 셋업합니다.

import AWS from 'aws-sdk';

AWS.config.update({
  accessKeyId: '<YOUR_ACCESS_KEY_ID>',
  secretAccessKey: '<YOUR_SECRET_ACCESS_KEY>',
  region: '<YOUR_AWS_REGION>'
});

AWS CloudWatch Logs로 로그 전송하기

타입스크립트 프로젝트의 로그를 AWS CloudWatch Logs로 전송하려면 aws-sdk를 사용하여 CloudWatchLogs 서비스에 로그 그룹 및 로그 스트림을 생성하고, 로그 이벤트를 CloudWatch Logs에 전송합니다.

const cloudWatchLogs = new AWS.CloudWatchLogs();

const params = {
  logGroupName: 'MyLogGroup',
  logStreamName: 'MyLogStream',
  logEvents: [
    {
      message: 'Log message 1',
      timestamp: new Date().getTime()
    },
    {
      message: 'Log message 2',
      timestamp: new Date().getTime()
    }
  ]
};

cloudWatchLogs.putLogEvents(params, function(err, data) {
  if (err) console.log(err, err.stack);
  else console.log(data);
});

AWS CloudWatch Dashboard를 통한 모니터링

AWS Management 콘솔에서 AWS CloudWatch 대시보드에 접속하여 로그 그룹 및 로그 스트림을 모니터링할 수 있습니다. 또한 CloudWatch 경보 및 임계치 설정을 통해 지표에 대한 경고를 설정할 수 있습니다.

마무리

본 포스트에서는 타입스크립트 프로젝트에서 AWS CloudWatch를 사용하여 로그를 수집하고 모니터링하는 방법에 대해 알아보았습니다. AWS CloudWatch는 애플리케이션 및 인프라스트럭처의 성능을 실시간으로 모니터링하고 로그를 확인할 수 있는 강력한 도구입니다.

더 많은 정보를 원하시면 AWS CloudWatch 문서를 참조해보세요.