[2023 기능대회 준비] 20. 실습 - API-Gateway 구성하기

Yohan_05·2023년 3월 27일
3
post-thumbnail

실습

우선 API 관리 기능을 사용할 것이기 때문에 REST API 를 구축.

API 게이트웨이 이름만 알잘딱 지어주고 생성하기.

이후 API를 구성할 수 있는 메뉴들이 보일텐데 작업 -> 메서드 생성 -> v1 이란 메서드를 생성해줌. 이떄 메서드의 종류는 POST로.

POST를 선택했다면 이런 창이 뜰텐데
통합 유형 : Kinesis를 쓸거기에 AWS 서비스
AWS 리전 : 한국 - ap-northeast-2
AWS 서비스 : Kinesis
HTTP 메서드 : POST
실행 역할 : IAM인데 기본값으로 놔둘 순 없으니 하나 만들러가자.

역할 만들기

aws 서비스 - API Gateway를 선택

이 창에서 권한추가가 안되는걸로 알고있음. 그러니 일단 다음으로 넘어가자

역할 이름, 설명만 알잘딱 지어주고 역할을 생성해준다.

역할이 생성되었을텐데 권한 추가를 클릭하여서

Kinesis Full 액세스를 추가해준 뒤 수정을 해준다.

방금 만든 IAM 의 ARN을 복사하여서 붙여넣기. 그 다음 저장을 눌러준다.

이러한 화면이 나올 것이다. 통합 요청을 클릭하여 메세지가 왔을때 이 메시지를 어떻게 처리할 것인지 설정해주자.

내리다보면 HTTP 헤더가 있을것이다. 한 글자도 다른거 없이 똑같이 작성해주자.
이름 : Content-Type
다음에서 매핑됨 : 'application/x-amz-json-1.1'

내리면 매핑 템플릿이 있고, 매핑 템플릿을 클릭하면 매핑 템플릿 추가를 눌러준다. application/json 을 입력하면 페스스루 동작 변경 이라는 경고? 문구가 뜰텐데네, 이 통합 보호 를 클릭하면 밑에 창이 뜰 것이다.

조금 옛날에 만들어진 툴이라 자바 기반의 템플릿 엔진인 Velocity(벨로시티)를 사용하여야하는데 코드는 아래와 같다.

코드를 입력하고 저장을 눌러준다.

코드는
1. 데이터를 json으로 인코딩하다
2. 샤드를 시컨스하게 처리하기 위한 파티션키.
3. 키네시스의 어느 스트림으로 보낼 것인지에 대해.
라는 내용의 코드이다.

#set ( $enter = "
")
#set($json = "$input.json('$')$enter")
{
	"Data": "$util.base64Encode("$json")",
    "Partitionkey": "$input.params('X-Amzn-Trace-Id')",
    "StreamName": "class-stream"
}

이후 리소스 - POST - 작업 - API 배포를 눌러서 API 배포를 해준다.

배포 스테이지, 스테이지 이름만 지정해주고 배포를 클릭해준다.

배포를 했다면 URL 호출이 뜰건데 컨트롤 C V 해서 어딘가에 저장해주자. 나중에 사용할 주소이다.

왼쪽 메뉴의 설정을 눌러 아까 만든 IAM 을 연결해준다.

이후 스테이지 - 편집기 - CloudWatch Logs 오류 및 정보로그를 모니터링 할 수 있도록 설정 후 변경 사항을 저장하게되면 API Gateway의 실습은 끝나게된다.

마치며

다음편은 Kinesis 시스템을 구성하도록 하겠다.

profile
안녕하세요 DevOps 엔지니어로 현업에서 활동중인 요한이라고 합니다.

0개의 댓글