띵유로그

[데이터파이프라인 - 2]AWS API Gateway 구성하기 본문

DataEngineering

[데이터파이프라인 - 2]AWS API Gateway 구성하기

띵유 2022. 1. 29. 17:12
반응형

이번시간에는 EC2에서 발생시킨 로그를  Api gateway를 통해서 가져온 후 중간에 키네시스를 두고 S3에 저장해 볼 것이다.

 

[Api Gateway 가져오기 매뉴얼(RESTAPI)]

 

운영 중 관리를 위해 버전에 따라 생성해두면 좋다.
1. 버전관리를 위해 " 작업 -> 리소스 생성 " 을 선택한다.

2. v1라는 이름으로 리소스를 생성하고 POST 메서드를 생성하고 아래와 같이 입력한다.

통합유형 - Kinesis와 연결할 예정이므로 AWS서비스를 선택
AWS 리전 - 서울로 설정

AWS 서비스 - Kinesis와 연결할 예정.
HTTP 메서드 : POST
작업 : 로그가 발생 할 때마다 API Gateway에서 Kinesis로 넘길때 약속된 명령어 (대소문자를 구분함)
실행역할 : IAM에서 API Gateway -> Kinesis 접근이 가능하도록 새로 만든 역할(arn : 리소스 이름)

더보기
더보기

실행역할 참고

1. IAM 검색 후 역할 만들기

2. 사용할 서비스 선택 (이번 포스팅에서는 API Gateway 서비스를 선택)

 

3. 적합한 역할명 생성

4. 역할에 권한 추가

3. 생성 완료

4. 통합요청 수정
메세지가 들어오면 통합요청에 의해 처리 후 키네시스로 전달하게 된다. 따라서 통합요청부분을 수정해준다.

http헤더를 추가하고, 매핑 템플릿을 추가한다. 매핑템플릿은 velocity 라는 언어라고 한다. (https://kkkapuq.tistory.com/81)

* enter 변수 :  메세지가 큐에 담겼다가 오기 때문에 enter를 넣어주지 않으면 버퍼사이즈만큼 읽게 된다.
우리가 원하는건 한줄 씩 읽는 것이기 때문에 enter 변수를 만들어줘야한다.

* PartitionKey : 샤드가 여러개 일때 샤드마다 sequnce가 유지되도록 하기 위해 partition key 사용

* StreamName : 키네시스 중 보낼 스트림 

 

5. API 배포
작업 -> API 배포를 선택하여 API를 배포한다.

6. 참고.

어플리케이션을 모니터링 할 수 있도록 cloud watch 를 설정할 수 있다. 

기본적으로 api gateway iam 에는 cloudwatch 권한이 설정되어있으므로 앞서 만든 iam 의 arn 을 복사 후 저장해준다. 

6-1. cloudwatch 활성화

배포된 API 를 확인하기 위해 스테이지 메뉴에서 POST 를 선택 후 cloudwatch 로그 활성화를 선택해주면된다.

cloud watch에 로그가 많이 쌓이게 되면 비용이 많이 발생할 수 있기때문에 확인할때만 잠깐 켜주고 나중에 끄자~

반응형
Comments