ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • AWS :: Rest API를 이용하는 Data Pipeline 생성
    AWS 2021. 7. 19. 11:23
    728x90

    **수정 중입니다.

     

     

    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를 통해 데이터를 가져오는 예제는 다음 게시물을 참고한다.

     

     

    AWS :: Glue :: 실습 예제

    Process 요약 Oracle DB에 저장된 raw 데이터를, Glue의 작업(job)을 통해 Amazon S3로 가져온다. 가져온 데이터를 Glue의 크롤러(crawler)를 통해 읽어 테이블로 저장한다. Amazon Athena를 통해 테이블을 조회..

    kxmjhwn.tistory.com

     

    • 먼저, 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

    댓글

kxmjhwn@gmail.com