기존 IAM 실행 역할을 사용하여 Athena를 Hive 메타스토어에 연결 - Amazon Athena

기존 IAM 실행 역할을 사용하여 Athena를 Hive 메타스토어에 연결

기존 IAM 역할을 사용하는 Lambda 함수로 외부 Hive 메타스토어를 Athena에 연결하려면 외부 Hive 메타스토어용 Athena 커넥터의 Athena 참조 구현을 사용합니다.

3가지 주요 단계는 다음과 같습니다.

  1. 복제 및 구축 - Athena 참조 구현을 복제하고 Lambda 함수 코드를 포함하는 JAR 파일을 구축합니다.

  2. AWS Lambda 콘솔 - AWS Lambda 콘솔에서 Lambda 함수를 생성하고 기존 IAM 실행 역할을 할당한 다음, 생성한 함수 코드를 업로드합니다.

  3. Amazon Athena 콘솔 - Amazon Athena 콘솔에서, Athena 쿼리에서 외부 Hive 메타스토어를 참조하는 데 사용할 수 있는 데이터 원본 이름을 생성합니다.

사용자 지정 IAM 역할을 생성할 수 있는 권한이 이미 있는 경우 Athena 콘솔과 AWS Serverless Application Repository를 사용한 간편한 워크플로를 사용하여 Lambda 함수를 만들고 구성합니다. 자세한 내용은 Apache Hive 메타스토어에 Athena 연결 단원을 참조하십시오.

사전 조건

Lambda 함수 복제 및 구축

Athena 참조 구현을 위한 함수 코드는 GitHub의 awslabs/aws-athena-hive-metastore에 있는 Maven 프로젝트입니다. 프로젝트에 대한 자세한 내용은 GitHub의 해당 README 파일 또는 본 문서의 참조 구현 주제를 참조하세요.

Lambda 함수 코드를 복제하고 빌드하려면
  1. Athena 참조 구현을 복제하려면 다음 명령을 입력합니다.

    git clone https://github.com/awslabs/aws-athena-hive-metastore
  2. 다음 명령을 실행하여 Lambda 함수를 위한 .jar 파일을 빌드합니다.

    mvn clean install

    프로젝트가 성공적으로 빌드되면 다음 .jar 파일이 프로젝트의 대상 폴더에 생성됩니다.

    hms-lambda-func-1.0-SNAPSHOT-withdep.jar

    다음 단원에서는 AWS Lambda 콘솔을 사용하여 이 파일을 Amazon Web Services 계정에 업로드합니다.

AWS Lambda 콘솔에서 Lambda 함수 생성 및 구성

이 단원에서는 AWS Lambda 콘솔을 사용하여 기존 IAM 실행 역할을 사용하는 함수를 생성합니다. 함수에 대한 VPC를 구성한 후 함수 코드를 업로드하고 함수의 환경 변수를 구성합니다.

Lambda 함수 생성

이 단원에서는 AWS Lambda 콘솔에서 기존 IAM 실행 역할을 사용하는 함수를 생성합니다.

기존 IAM 역할을 사용하는 Lambda 함수를 만들려면
  1. AWS Management Console에 로그인하고 https://console.aws.amazon.com/lambda/에서 AWS Lambda 콘솔을 엽니다.

  2. 탐색 창에서 함수를 선택합니다.

  3. 함수 생성을 선택합니다.

  4. 새로 작성을 선택합니다.

  5. 함수 이름(Function name)에 Lambda 함수의 이름(예: EHMSBasedLambda)을 입력합니다.

  6. 런타임(Runtime)에서 Java 8을 선택합니다.

  7. 권한(Permissions)에서 기본 실행 역할 변경(Change default execution role)을 확장합니다.

  8. 실행 역할에서 기존 역할 사용을 선택합니다.

  9. 기존 역할(Existing role)에서 Lambda 함수가 Athena에 사용할 IAM 역할을 선택합니다(이 예제에서는 AthenaLambdaExecutionRole이라는 역할 사용).

  10. Advanced settings(고급 설정)를 확장합니다.

  11. 네트워크 활성화(Enable Network)를 선택합니다.

  12. VPC에서 함수가 액세스할 VPC를 선택합니다.

  13. 서브넷(Subnets)에서 Lambda가 사용할 VPC 서브넷을 선택합니다.

  14. 보안 그룹(Security groups)에서 Lambda가 사용할 VPC 보안 그룹을 선택합니다.

  15. 함수 생성을 선택합니다. AWS Lambda 콘솔에서 함수의 구성 페이지를 열고 함수 생성을 시작합니다.

코드 업로드 및 Lambda 함수 구성

콘솔에서 함수가 성공적으로 생성되었음을 알리면 함수 코드를 업로드하고 환경 변수를 구성할 준비가 된 것입니다.

Lambda 함수 코드를 업로드하고 해당 환경 변수를 구성하려면
  1. Lambda 콘솔에서 지정한 함수 페이지의 코드(Code) 탭에 있는지 확인합니다.

  2. 코드 소스(Code source)에서 다음에서 업로드(Upload from)를 선택한 다음 .zip 또는 .jar 파일(.zip or .jar file)을 선택합니다.

  3. 이전에 생성한 hms-lambda-func-1.0-SNAPSHOT-withdep.jar 파일을 업로드합니다.

  4. Lambda 함수 페이지에서 구성(Configuration) 탭을 선택합니다.

  5. 왼쪽의 창에서 환경 변수(Environment variables)를 선택합니다.

  6. 환경 변수 섹션에서 편집을 선택합니다.

    
                            편집(Edit)을 선택해 Lambda 함수의 환경 변수를 편집합니다.
  7. 환경 변수 편집(Edit environment variables) 페이지에서 환경 변수 추가(Add environment variable) 옵션을 사용하여 다음 환경 변수 키 및 값을 추가합니다.

    • HMS_URIS – 다음 구문을 사용하여 포트 9083에서 Thrift 프로토콜을 사용하는 Hive 메타스토어 호스트의 URI를 입력합니다.

      thrift://<host_name>:9083
    • SPILL_LOCATION – Lambda 함수 응답 크기가 4MB를 초과하는 경우 분산 메타데이터를 보관할 Amazon Web Services 계정의 Amazon S3 위치를 지정합니다.

      
                                    Lambda 함수 환경 변수의 값 지정
  8. Save(저장)를 선택합니다.

이제 Lambda 함수를 사용하여 Hive 메타스토어에 연결하도록 Athena를 구성할 준비가 되었습니다. 단계는 배포된 Hive 메타스토어 커넥터를 사용하도록 Athena 구성를 참조하세요.