cloud bee

sns 메시지 게시할때마다 cloudwatch로 기록하기 본문

AWS/code

sns 메시지 게시할때마다 cloudwatch로 기록하기

who you 2023. 1. 29. 07:42

sns에 메시지가 게시될 때마다, Lambda를 통해 cloudwatch로 기록된 결과를 확인할 수 있도록 구성할 것이다.

Amazon console을 사용하여 이번실습을 구현해 보았다.

 

실습에 사용하였던 서비스는 다음과 같다.

서비스 목록

- Amazon Lambda

- Amazon sns

- Amazon cloudwatch

- Amazon IAM


1. SNS 주제 만들기

 

우선 먼저 sns 콘솔로 접속해 준다.

https://console.aws.amazon.com/sns](https://console.aws.amazon.com/sns 

 

이제 sns 생성을 진행해 준다. Amazon SNS > 주제에 들어가서 주제 생성 버튼을 눌러준다.

주제 생성

 

이제 표준으로 선택하고 다음 정보를 기입해 준다.

이름을 다음과 같이 지정해 준다. [pushtopic]

표시 이름을 다음과 같이 지정해 준다. [notify]

sns 세부정보 내용

 

이제 주제를 생성하였다면 다음과 같이 표시된 것을 확인할 수 있다.

sns 주제


2. IAM 역할 생성하기

https://console.aws.amazon.com/iam에 접속하여 역할을 하나 만들어주도록 한다. 

 

https://us-east-1.console.aws.amazon.com/iam/

 

us-east-1.console.aws.amazon.com

IAM 콘솔화면

 

IAM > 역할 > 역할 만들기를 통해 역할을 생성해 주도록 한다.

 

신뢰할 수 있는 엔터티 유형 > AWS 서비스를 선택해 준다.

사용사례에서 Lambda를 선택해 주도록 한다.

Lambda 선택

 

이제 람다를 선택한 후 다음과 같은 역할을 선택해 주도록 한다.

  • CloudWatchFullAccess
  • AWSLambda_FullAccess
  • AmazonSNSFullAccess

 

역할 이름을 다음과 같이 지정한다. [ snslambdarole ]

이후 생성해 주도록 한다.

IAM 역할 정보


3. Lambda 함수 생성

 

다음 URL을 통해 Lambda 콘솔로 접속해 준다.

https://console.aws.amazon.com/lambda

 

https://console.aws.amazon.com/lambda

 

console.aws.amazon.com

 

람다에 들어갔다면 함수를 생성해 주도록 한다.

람다 함수 생성

 

함수를 생성할 때 기본정보에서 다음과 같이 입력하였다.

  • 함수이름: snsFunction
  • 런타임: Node.js 12.x
  • 기존 역할: snslambdarole

Lambda 기본 정보

 

이제 람다를 생성하고 나서 입력 트리거를 추가해 준다.

sns를 선택하고 초반에 생성하였던 pushtopic를 선택하고 추가한다.

sns 주제 선택

 

이제 람다 코드를 다음과 같이 입력해 주도록 한다.

exports.handler = function(event, context, callback) {
   console.log("AWS lambda and SNS trigger ");
   console.log(event);
   const sns = event.Records[0].Sns.Message;
   console.log(sns)
   callback(null, sns);
};

 

이후 Lambda에서 코드를 붙여 넣고 Deploy 버튼을 눌러 코드를 변경해 준다.

Lambda 코드 변경


4. SNS 주제에 게시

이제 sns 주제에 글을 게시해 주도록 한다.

sns에 글을 게시하면 cloudwatch에 메시지 세부정보가 뜰 것이다.

 

우선 sns 콘솔에 접속해 주도록 한다.

https://console.aws.amazon.com/sns 

 

https://console.aws.amazon.com/sns/v3/home

 

console.aws.amazon.com

 

처음에 생성한 주제에 들어가서 메시지 게시 버튼을 눌러주도록 한다.

메시지 게시

이제 메시지의 제목을 hello로 지정해 준다.

메시지의 본문은 다음과 같이 지정해 준다.

The message will be trigger by aws lambda and will be shown in cloudwatch

 

메시지 게시

 

이제 게시를 확인해 주도록 한다.

게시 확인

 

cloudwatch를 확인한다.

https://console.aws.amazon.com/cloudwatch 

 

https://console.aws.amazon.com/cloudwatch/

 

console.aws.amazon.com

로그 그룹이 생긴 것을 확인할 수 있다.

로그 그룹 확인

 

로그 그룹을 확인하면 다음과 같이 표시가 된 것을 볼 수 있다.

cloudwatch 로그 내용

'AWS > code' 카테고리의 다른 글

[ Terraform ] aws에서 테라폼 사용하기  (0) 2023.01.26
Lambda 볼륨 암호화  (0) 2023.01.16
Serverless Api test  (0) 2022.11.09
code pipeline 간단하게 구현  (0) 2022.10.31
Comments