-
AWS :: Rest API를 이용하는 Data Pipeline 생성AWS 2021. 7. 19. 11:23728x90
**수정 중입니다.
0. 프로세스 요약
- 조회하고자 하는 user_id의 값을 input data로 주어지면, data pipeline을 통해 user_id에 해당하는 user_level을 output data로 출력한다.
1-1. Oracle DB 설정
- AWS RDS를 활용하여, Oracle DB를 구축하고, 예제로 사용할 sample 데이터를 삽입한다.
- DB 생성 시 사용할 DB 이름과 user, password 등을 기억한다.
- 생성한 DB를 외부에서 접속하기 위해 '퍼블릭 엑세스 허용', 'VPC 설정'을 필수로 진행한다.
- DBeaver에서 생성한 DB에 대한 새로운 연결을 설정한다.
- 연결 설정 후, 다음과 같이 sample 데이터를 생성한다.
- 위의 테이블을 기준으로 앞으로의 예제가 진행된다.
1-2. API Gateway 설정
- API Gateway 중, 'REST API'를 선택하고, 'POST' 방식을 활용한다.
- resource 이름은 'simulation'로 설정한다.
- method를 'POST'로 설정하고, 다음과 같이 lambda 함수와 연결한다.
- 연결할 lambda 함수는 다음 단계에서 설명하였다.
1-3-1. Lambda 함수 설정
- API Gateway와 연결한 lambda 함수에 대해 생성, 설정한다.
- 런타임 유형은 'python'으로 한다.
- 생성이 완료되었다면, 다시 API Gateway 생성 페이지로 돌아가 lambda 함수를 방금 생성한 함수로 설정한다.
- 생성 완료 후, API Gateway 대시보드에서, '통합 요청'에 들어가 다음과 같이 'lambda 프록시 통합 사용'을 체크한다.
- 정상적으로 생성 및 설정이 완료된 API Gateway 대시보드는 다음과 같다.
1-3-2. Lambda 함수 작성 (수정 전)
- 기본적인 lambda 함수 코드는 다음과 같다.
- 위 코드를 동작시키기 위해, API Gateway에서 'TEST'를 클릭한다.
- 맨 아래의 'TEST'를 클릭하면 다음과 같이 정상적으로 응답이 오는 것을 확인할 수 있다.
- 위에서 수행한 요청과 응답에 대한 log를 확인하기 위해, lambda 함수에서 '모니터링 - cloudwatch로 log 보기'를 클릭한다.
- log가 잘 찍혀있음을 확인할 수 있고, 만약 log가 보이지 않는다면, log group을 생성 및 설정한다.
- 다음 세 가지를 반복 수행하며 최종 API를 완성한다.
- lambda 함수의 python 코드 수정
- API Gateway에서 테스트
- CloudWatch에서 log 확인
- API Gateway와 연결한 lambda 함수에 대해 생성, 설정한다.
- 런타임 유형은 'python'으로 한다.
2. Glue를 통해 sample 데이터 가져오기
- AWS RDS(Oracle)에 있는 sample 데이터를 Glue를 통해 가져온다.
- AWS Athena에서 sample 데이터를 사용하기 위함이다.
- Glue를 통해 데이터를 가져오는 예제는 다음 게시물을 참고한다.
- 먼저, Oracle DB에서 AWS S3로 데이터를 가져오기 위한 Glue Job을 생성한다.
- 생성한 Job을 실행시키면, 설정한 AWS S3 경로에 parquet 데이터가 저장됨을 알 수 있다.
- parquet 데이터를 AWS Athena에서 조회할 수 있도록, Glue의 crawler를 사용하여 테이블화 한다.
- crawler를 실행하여 테이블을 생성하고 AWS Athena에서 다음과 같이 조회하면 데이터가 출력된다.
2-2. AWS Wrangler의 사용을 위해 Lambda 함수에 Layer 추가
- 수정 중
728x90'AWS' 카테고리의 다른 글
AWS :: Multi Lambda Control (0) 2021.08.06 AWS :: API Gateway를 통해 S3에 데이터 저장하기 (2/2) (0) 2021.07.27 AWS :: S3 데이터를 slack에 notify하기 (AWS Lambda) (0) 2021.07.08 AWS :: API Gateway를 통해 S3에 데이터 저장하기 (1/2) (1) 2021.07.07 AWS :: EC2에 접속하여 S3 조회하기 (SSH, WSL, AWS CLI) (0) 2021.07.06