크롤러 구성 - AWS Glue

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

크롤러 구성

크롤러가 데이터 스토어로 액세스하고 메타데이터를 추출하고 AWS Glue Data Catalog의 테이블 정의를 생성합니다. AWS Glue 콘솔의 [크롤러(Crawlers)] 창에는 생성한 모든 크롤러가 나열됩니다. 목록은 크롤러 마지막 실행의 상태와 지표를 보여줍니다.

참고

자체 JDBC 드라이버 버전을 가져오기로 선택한 경우 AWS Glue 크롤러는 AWS Glue작업 및 Amazon S3 버킷의 리소스를 소비하여 제공된 드라이버가 사용자 환경에서 실행되도록 합니다. 리소스의 추가 사용량은 계정에 반영됩니다. 또한 자체 JDBC 드라이버를 제공한다고 해서 크롤러가 해당 드라이버의 모든 기능을 사용할 수 있는 것은 아닙니다. 드라이버는 AWS Glue 연결 추가에 설명된 속성으로 제한됩니다.

크롤러를 구성하려면
  1. AWS Management Console에 로그인하여 https://console.aws.amazon.com/glue/에서 AWS Glue 콘솔을 엽니다. 탐색 창에서 크롤러를 선택합니다.

  2. 크롤러 생성을 선택하고 크롤러 추가 마법사의 지침을 따릅니다. 마법사는 크롤러 생성에 필요한 단계를 안내합니다. 사용자 지정 분류기를 추가하여 스키마를 정의하려면 분류기 정의 및 관리 섹션을 참조하세요.

1단계: 크롤러 속성 설정

크롤러에 대한 이름과 설명(선택 사항)을 입력합니다. 선택에 따라 태그 키 와 선택 사항인 태그 값으로 크롤러에 태그를 지정할 수 있습니다. 생성된 태그 키는 읽기 전용입니다. 일부 리소스에서 태그를 이용하면 리소스를 정리하고 식별하는 데 도움이 됩니다. 자세한 내용은 AWS Glue의 AWS 태그를 참조하세요.

명칭

이름은 문자(A-Z), 숫자(0-9), 하이픈(-) 또는 밑줄(_) 포함할 수 있으며 최대 255자로 지정할 수 있습니다.

설명

설명은 최대 2048자까지 입력이 가능합니다.

Tags

태그를 사용하여 리소스를 정리하고 식별할 수 있습니다. 자세한 내용은 다음 자료를 참조하세요.

2단계: 데이터 소스 및 분류자 선택

데이터 소스 구성

데이터가 AWS Glue 테이블에 이미 매핑되어 있습니까?에 적절한 옵션인 '아직' 또는 '예'를 선택하세요. 기본적으로 '아직'이 선택됩니다.

크롤러는 크롤의 원본으로 데이터 스토어에 직접 액세스하거나 데이터 카탈로그의 기존 테이블을 원본으로 사용할 수 있습니다. 크롤러가 기존 카탈로그 테이블을 사용하면 해당 카탈로그 테이블에 지정된 데이터 스토어가 크롤됩니다.

  • 아직 안 됨: 크롤링할 데이터 소스를 하나 이상 선택합니다. 크롤러는 서로 다른 유형(Amazon S3, JDBC 등)의 여러 데이터 스토어를 크롤할 수 있습니다.

    한 번에 하나의 데이터 스토어만 구성할 수 있습니다. 연결 정보를 제공하고 경로를 포함하고 패턴을 제외하면 다른 데이터 스토어를 추가할 수 있습니다.

  • 예: AWS Glue 데이터 카탈로그에서 기존 테이블을 선택합니다. 카탈로그 테이블은 크롤할 데이터 스토어를 지정합니다. 크롤러는 단일 실행으로 카탈로그 테이블만 크롤할 수 있습니다. 다른 원본 유형에서는 혼합할 수 없습니다.

    카탈로그 테이블을 원본으로 지정하는 일반적인 이유는 (데이터 스토어의 구조를 이미 알고 있었으므로) 테이블을 수동으로 생성했으며 크롤러가 새 파티션을 추가하는 등 테이블을 업데이트된 상태로 유지하기 때문입니다. 다른 이유에 대한 설명은 크롤러를 사용하여 수동으로 생성된 Data Catalog 테이블 업데이트 단원을 참조하십시오.

    기존 테이블을 크롤러 원본 유형으로 지정하면 다음 조건이 적용됩니다.

    • 데이터베이스 이름은 선택 사항입니다.

    • Amazon S3 또는 Amazon DynamoDB 데이터 스토어를 지정하는 카탈로그 테이블만 허용됩니다.

    • 크롤러가 실행되면 새 카탈로그 테이블이 생성되지 않습니다. 기존 테이블은 새 파티션을 추가하는 등 필요에 따라 업데이트됩니다.

    • 데이터 스토어에서 찾은 삭제된 객체는 무시됩니다. 카탈로그 테이블은 삭제되지 않습니다. 대신 크롤러는 로그 메시지를 작성합니다. (SchemaChangePolicy.DeleteBehavior=LOG)

    • 각 Amazon S3 경로에 대해 단일 스키마를 생성하는 크롤러 구성 옵션은 기본적으로 사용되며 사용 중지할 수 없습니다. (TableGroupingPolicy=CombineCompatibleSchemas) 자세한 내용은 각 Amazon S3 포함 경로에 대해 단일 스키마 생성 섹션을 참조하십시오.

    • 다른 원본 유형(예: Amazon S3 또는 Amazon DynamoDB)과 원본으로 카탈로그 테이블을 혼합할 수 없습니다.

데이터 소스

크롤러가 스캔할 데이터 소스 목록을 선택하거나 추가합니다.

(선택 사항) JDBC를 데이터 소스로 선택하면 드라이버 정보가 저장되는 연결 액세스를 지정할 때 자체 JDBC 드라이버를 사용할 수 있습니다.

포함 경로

크롤러에 무엇을 포함하거나 제외할 것인지 평가할 때 크롤러는 필요한 포함 경로를 평가하는 것으로 시작합니다. Amazon S3, MongoDB, MongoDB Atlas, Amazon DocumentDB(MongoDB 호환) 및 관계형 데이터 스토어의 경우 포함 경로를 지정해야 합니다.

Amazon S3 데이터 스토어의 경우

이 계정에서 경로를 지정할지 혹은 다른 계정에서 경로를 지정할지 선택한 다음 Amazon S3 경로 선택을 위해 찾아봅니다.

Amazon S3 데이터 스토어의 경우 경로 포함 구문은 bucket-name/folder-name/file-name.ext입니다. 버킷에 있는 모든 객체를 크롤하려면 추가 경로에서 버킷 이름을 지정합니다. 제외 패턴은 포함 경로와 상대적입니다.

Delta Lake 데이터 스토어의 경우

s3://bucket/prefix/object와 같이 Delta 테이블에 대한 Amazon S3 경로를 하나 이상 지정합니다.

Iceberg 또는 Hudi 데이터 스토어의 경우

Iceberg 또는 Hudi 테이블 메타데이터가 포함된 폴더를 포함하는 Amazon S3 경로를 하나 이상 지정합니다(s3://bucket/prefix 형식).

Hudi 데이터 스토어의 경우 Hudi 폴더는 루트 폴더의 하위 폴더에 있을 수 있습니다. 크롤러는 경로 아래에 있는 모든 폴더에서 Hudi 폴더를 스캔합니다.

JDBC 데이터 스토어의 경우

데이터베이스 제품에 따라 <database>/<schema>/<table> 또는 <database>/<table>을 입력합니다. Oracle Database 및 MySQL은 경로의 스키마를 지원하지 않습니다. <schema> 또는 <table> 대신에 백분율 문자(%)를 사용할 수 있습니다. 예를 들어 시스템 식별자(SID)가 orcl인 Oracle Database의 경우 orcl/%를 입력하여 연결에 이름이 지정된 사용자가 액세스할 수 있는 모든 테이블을 가져옵니다.

중요

이 필드는 대/소문자를 구분합니다.

MongoDB, MongoDB Atlas 또는 Amazon DocumentDB 데이터 스토어의 경우

database/collection을 입력합니다.

MongoDB, MongoDB Atlas 및 Amazon DocumentDB(MongoDB와 호환)의 경우 구문은 database/collection입니다.

JDBC 데이터 스토어의 구문은 database-name/schema-name/table-name 혹은 database-name/table-name입니다. 구문은 데이터베이스 엔진이 데이터베이스 내에서 스키마를 지원할지 여부에 따라 다릅니다. 예를 들어, MySQL 또는 Oracle과 같은 데이터베이스는 추가 경로에서 schema-name를 지정할 필요가 없습니다. 퍼센트 표시(%)를 추가 경로 내 스키마 또는 테이블로 바꿔 데이터베이스 내 모든 스키마 혹은 모든 테이블을 나타냅니다. 퍼센트 표시(%)를 추가 경로 내 데이터베이스로 바꿀 수 없습니다.

최대 이동 깊이(Iceberg 또는 Hudi 데이터 스토어만 해당)

크롤러가 Amazon S3 경로에서 Iceberg 또는 Hudi 메타데이터 폴더를 검색하기 위해 이동할 수 있는 Amazon S3 경로의 최대 깊이를 정의합니다. 이 파라미터의 목적은 크롤러 실행 시간을 제한하는 것입니다. 기본값은 10이고, 최댓값은 20입니다.

제외 패턴

이렇게 하면 크롤에서 특정 파일이나 테이블을 제외할 수 있습니다. 제외 경로는 포함 경로와 상대적입니다. 예를 들어 테이블에서 JDBC 데이트 스토어에서 테이블을 제외하기 위해서 테이블 이름을 제외 경로에 입력합니다.

크롤러는 JDBC URI 연결 문자열을 포함한 AWS Glue를 사용하여 JDBC 데이터 스토어에 연결합니다. 크롤러는 AWS Glue 연결의 JDBC 사용자 이름 및 비밀번호를 사용하여 데이터베이스 엔진의 객체에 액세스만 합니다. 크롤러는 JDBC 연결을 통한 액세스할 수 있는 테이블을 생성만 합니다. JDBC URI로 데이터베이스 엔진에 크롤러가 액세스한 후, 추가 경로는 데이터 카탈로그에 생성된 데이터베이스 엔진의 테이블을 결정하는데 사용됩니다. 예를 들어 MySQL의 경우, MyDatabase/%의 추가 경로를 지정하면 MyDatabase 내 모든 테이블은 데이터 카탈로그에 생성됩니다. Amazon Redshift에 액세스할 경우, MyDatabase/%의 추가 경로를 지정하면 데이터베이스 MyDatabase의 모든 스키마 내 모든 테이블은 데이터 카탈로그에 생성됩니다. MyDatabase/MySchema/%의 추가 경로를 지정하면 MyDatabase 데이터베이스의 모든 테이블과 MySchema 스키마가 생성됩니다.

추가 경로를 지정한 후, 크롤러에서 객체를 제외합니다. 그렇지 않으면 추가 경로는 하나 이상의 Unix 스타일 glob이 패턴을 제외하는 것을 지정하여 객체를 추가합니다. 이런 패턴은 추가 경로에 적용되어 어떤 객체가 제외되어야 하는지 결정합니다. 또한 이런 패턴은 크롤러가 생성한 테이블의 속성으로 저장됩니다. AWS Glue create_dynamic_frame.from_catalog 등의 PySpark 확장은 테이블 속성을 읽고 제외 패턴이 정의한 객체를 제외합니다.

AWS Glue는 제외 패턴에서 glob 패턴의 다음 종류를 지원합니다.

제외 패턴 설명
*.csv .csv로 끝나는 현재 폴더의 객체 이름을 나타내는 Amazon S3 경로에 해당합니다.
*.* 점을 포함한 모든 객체 이름과 해당합니다.
*.{csv,avro} .csv 또는 .avro로 끝나는 객체 이름과 해당합니다.
foo.? 하나의 문자 확장에 따라 foo.으로 시작하는 객체 이름과 해당합니다.
myfolder/* /myfolder/mysource와 같은 myfolder에서 하위 폴더의 한 수준의 객체와 해당합니다.
myfolder/*/* /myfolder/mysource/data와 같은 myfolder에서 하위 폴더의 두 가지 수준의 객체와 해당합니다.
myfolder/** /myfolder/mysource/mydata/myfolder/mysource/data와 같은 myfolder의 모든 하위 폴더의 객체와 해당합니다.
myfolder** myfolder 아래 파일뿐만 아니라 하위 폴더 myfolder도 일치시킵니다(예: /myfolder/myfolder/mydata.txt).
Market* Market_usMarket_fr와 같은 Market으로 시작하는 이름의 JDBC 데이터베이스에 있는 테이블과 해당합니다.

AWS Glue는 다음과 같이 glob가 패턴을 제외하도록 해석합니다.

  • Amazon S3 키를 폴더 계층으로 구분하기 위해 슬래시(/) 문자가 사용됩니다.

  • 별표(*) 문자는 폴더의 경계를 넘지 않고 0개 이상의 이름 구성 요소 문자와 해당합니다.

  • 이중 별표(**) 문자는 폴더 또는 스키마의 경계를 넘지 않고 0개 이상의 이름 구성 요소 문자와 해당합니다.

  • 물음표(?) 문자는 이름 구성 요소의 정확히 1문자에 해당합니다.

  • 역 슬래시(\) 문자는 특수 문자로 해석될 수 있는 이스케이프 문자로 사용됩니다. 표현식 \\는 하나의 백 슬래시에 해당하고 \{는 왼쪽 중괄호에 해당합니다.

  • 대괄호([ ])는 문자 모음 중 한 문자의 이름 구성 요소에 해당하는 괄호 표현식을 생성합니다. 예를 들어, [abc]a, b 혹은 c에 해당합니다. 하이픈(-)은 범위를 지정하는 데 사용되기 때문에 [a-z]a에서 z까지의 범위를 지정합니다 (포괄적). 이런 형식은 혼합될 수 있어 [abce-g]는 a, b, c, e, f, 또는 g에 해당됩니다. 대괄호([) 다음 문자가 느낌표(!)라면, 괄호 표현식이 취소됩니다. 예를 들어, [!a-c]a, b 또는 c를 제외한 모든 문자와 대응합니다.

    괄호 표현식 내에 *, ?\는 자체로 대응됩니다. 취소할 때 하이픈이 괄호 내 첫 번째 문자이거나 ! 다음 첫 번째 문자이면 하이픈(-) 문자는 자체로 대응합니다.

  • 부 패턴이 그룹 내에서 대등하면 중괄호({ })는 그룹과 대응하는 부 패턴 그룹을 포함합니다. 쉼표(,) 문자는 부 패턴을 구분하는 기호입니다. 그룹은 중첩될 수 없습니다.

  • 파일명의 첫 번째 마침표 혹은 점은 매칭 작업에서 일반 문자로 취급합니다. 예를 들어 *가 파일명 .hidden에 해당하는 패턴을 제외합니다.

예 Amazon S3 제외 패턴

각 제외 패턴은 추가 경로에 대응하여 평가됩니다. 예를 들어 다음과 같은 Amazon S3 디렉터리 구조가 있다고 가정하겠습니다.

/mybucket/myfolder/ departments/ finance.json market-us.json market-emea.json market-ap.json employees/ hr.json john.csv jane.csv juan.txt

추가 경로 s3://mybucket/myfolder/에 따르면 다음 예는 패턴을 제외한 결과입니다.

제외 패턴 결과
departments/** departments 아래에 있는 모든 파일 및 폴더를 제외하고 employees 폴더 및 하위 폴더를 포함합니다.
departments/market* market-us.json, market-emea.jsonmarket-ap.json을 제외합니다.
**.csv .csv로 끝나는 이름을 갖는 myfolder의 모든 하위 객체를 제외합니다.
employees/*.csv employees 폴더 내 모든 .csv 파일을 제외합니다
예 Amazon S3 파티션의 하위 집합 제외

일별로 데이터가 분할되었다면 개별 Amazon S3 파티션에 1년의 각 일자가 존재합니다. 따라서 2015년 1월이면 31 파티션이 있습니다. 이제, 1월 첫째 주 데이터만 크롤하고자 한다면 1일부터 7일까지만 남겨놓고 모든 파티션을 제외합니다.

2015/01/{[!0],0[8-9]}**, 2015/0[2-9]/**, 2015/1[0-2]/**

이 glob 형식을 살펴보겠습니다. 첫 번째 부분인 2015/01/{[!0],0[8-9]}**는 2015년 01월 중 08일과 09뿐만 아니라 0으로 시작하지 않는 모든 일자를 제외합니다. "**"는 일수 형식의 접미사로 사용된다는 것을 기억하고 폴더 경계를 더 낮은 수준의 폴더로 지나갑니다. "*"가 사용되면 하위 폴더 수준은 제외되지 않습니다.

두 번째 부분인 2015/0[2-9]/**는 2015년 중 02월에서 09월까지의 일자를 제외합니다.

세 번째 부분인 2015/1[0-2]/**는 2015년 중 10월, 11월 및 12월의 일자를 제외합니다.

예 JDBC 제외 패턴

다음과 같은 스키마 구조로 JDBC 데이터베이스를 크롤한다고 가정하겠습니다.

MyDatabase/MySchema/ HR_us HR_fr Employees_Table Finance Market_US_Table Market_EMEA_Table Market_AP_Table

추가 경로 MyDatabase/MySchema/%에 따르면 다음 예는 패턴을 제외한 결과입니다.

제외 패턴 결과
HR* HR로 이름이 시작되는 테이블을 제외합니다.
Market_* Market_로 이름이 시작되는 테이블을 제외합니다.
**_Table _Table로 이름이 끝나는 모든 테이블을 제외합니다.
추가 크롤러 소스 파라미터

소스 유형마다 다른 추가 파라미터 집합이 필요합니다. 다음은 불완전한 목록입니다.

연결

AWS Glue 연결을 선택하거나 추가합니다. 연결에 관한 자세한 내용은 데이터에 연결 단원을 참조하십시오.

추가 메타데이터 - 선택 사항(JDBC 데이터 스토어에만 해당)

크롤러가 크롤링할 추가 메타데이터 속성을 선택합니다.

  • 댓글: 관련 테이블 수준 및 열 수준 설명을 크롤링합니다.

  • 원시 유형: 테이블 열의 원시 데이터 유형을 추가 메타데이터에 유지합니다. 기본 동작으로 크롤러는 원시 데이터 유형을 Hive 호환 유형으로 변환합니다.

JDBC 드라이버 클래스 이름 - 선택 사항 (JDBC 데이터 스토어에만 해당)

크롤러가 데이터 소스에 연결하는 데 사용할 사용자 지정 JDBC 드라이버 클래스 이름을 입력합니다.

  • Postgres: org.postgresql.Driver

  • MySQL: com.mysql.jdbc.Driver, com.mysql.cj.jdbc.Driver

  • Redshift: com.amazon.redshift.jdbc.Driver, com.amazon.redshift.jdbc42.Driver

  • Oracle: oracle.jdbc.driver.OracleDriver

  • SQL Server: com.microsoft.sqlserver.jdbc.SQLServerDriver

JDBC 드라이버 S3 경로 - 선택 사항(JDBC 데이터 스토어에만 해당)

.jar 파일에 대한 기존 Amazon S3 경로를 선택합니다. 크롤러를 데이터 소스에 연결할 때 사용자 지정 JDBC 드라이버를 사용하는 경우 .jar 파일이 여기에 저장됩니다.

데이터 샘플링 사용(Amazon DynamoDB, MongoDB, MongoDB Atlas Amazon DocumentDB 데이터 스토어만 해당)

데이터 샘플만 크롤링할지 여부를 선택합니다. 선택하지 않으면 전체 테이블이 크롤링됩니다. 테이블이 높은 처리량 테이블이 아닌 경우 모든 레코드를 스캔하는 데 시간이 오래 걸릴 수 있습니다.

쿼리를 위한 테이블 생성(Delta Lake 데이터 스토어에만 해당)

Delta Lake 테이블 생성 방법을 선택합니다.

  • 기본 테이블 생성: Delta 트랜잭션 로그의 쿼리를 직접 지원하는 쿼리 엔진과 통합할 수 있습니다.

  • Symlink 테이블 생성: 지정된 구성 파라미터를 기반으로 파티션 키로 분할된 매니페스트 파일을 포함하는 symlink 매니페스트 폴더를 생성합니다.

스캔 속도 - 선택 사항(DynamoDB 데이터 스토어에만 해당)

크롤러에서 사용할 DynamoDB 테이블 읽기 용량 단위의 비율을 지정합니다. 읽기 용량 단위는 DynamoDB에서 정의한 용어이며, 초당 해당 테이블에서 수행할 수 있는 읽기 수에 대한 속도 제한기 역할을 하는 숫자 값입니다. 0.1과 1.5 사이의 값을 입력합니다. 값을 지정하지 않으면 기본값은 프로비저닝된 테이블의 경우 0.5%이고 온디맨드 테이블의 경우 구성된 최대 용량의 1/4입니다. 프로비저닝된 용량 모드만 AWS Glue 크롤러와 함께 사용해야 합니다.

참고

DynamoDB 데이터 스토어의 경우, 테이블의 읽기 및 쓰기 처리를 위한 프로비저닝된 용량 모드를 설정합니다. AWS Glue 크롤러는 온디맨드 용량 모드와 함께 사용하지 않아야 합니다.

네트워크 연결 - 선택 사항(Amazon S3 데이터 스토어에만 해당)

필요에 따라 이 Amazon S3 대상과 함께 사용할 네트워크 연결을 포함합니다. 각 크롤러는 하나의 네트워크 연결로 제한되므로 다른 Amazon S3 대상도 동일한 연결을 사용하게 됩니다(비워 두면 연결 없음).

연결에 관한 자세한 내용은 데이터에 연결 단원을 참조하십시오.

파일의 하위 집합과 샘플 크기만 샘플링(Amazon S3 데이터 스토어에만 해당)

데이터 집합의 샘플 파일을 크롤링할 때 크롤링할 각 리프 폴더의 파일 수를 지정합니다. 이 기능이 설정되어 있으면 이 데이터 집합의 모든 파일을 크롤링하는 대신 크롤러가 크롤링할 각 리프 폴더의 일부 파일을 무작위로 선택합니다.

샘플링 크롤러는 데이터 포맷에 대한 사전 지식이 있고 폴더의 스키마가 변경되지 않는다는 것을 알고 있는 고객에게 가장 적합합니다. 이 기능을 설정하면 크롤러 런타임이 크게 감소합니다.

유효한 값은 1~249의 정수입니다. 지정하지 않으면 모든 파일이 크롤링됩니다.

후속 크롤러 실행

이 필드는 모든 Amazon S3 데이터 소스에 영향을 주는 글로벌 필드입니다.

  • 모든 하위 폴더 크롤링: 이후에 크롤링할 때마다 모든 폴더를 다시 크롤링합니다.

  • 새 하위 폴더만 크롤링: 마지막 크롤링된 이후에 추가된 Amazon S3 폴더만 크롤링됩니다. 스키마가 호환되는 경우 새 파티션이 기존 테이블에 추가됩니다. 자세한 내용은 새 파티션 추가를 위한 증분 크롤링 예약 단원을 참조하십시오.

  • 이벤트 기반 크롤링: Amazon S3 이벤트를 사용하여 크롤링할 폴더를 제어합니다. 자세한 내용은 Amazon S3 이벤트 알림을 사용하여 크롤링 가속화 단원을 참조하십시오.

사용자 지정 분류자 - 선택 사항

크롤러를 정의하기 전에 사용자 지정 분류자를 정의합니다. 분류자는 지정된 파일이 크롤러가 처리할 수 있는 형식인지 여부를 확인합니다. 처리할 수 있는 형식인 경우, 분류자는 해당 데이터 형식과 일치하는 StructType 객체의 형태로 스키마를 생성합니다.

자세한 내용은 분류기 정의 및 관리 단원을 참조하십시오.

3단계: 보안 설정 구성

IAM 역할

크롤러는 이 역할을 수임합니다. AWS 관리형 정책 AWSGlueServiceRole과 비슷한 권한이 있어야 합니다. Amazon S3 및 DynamoDB 소스의 경우 데이터 스토어에 액세스할 수 있는 권한도 있어야 합니다. 크롤러가 AWS Key Management Service(AWS KMS)로 암호화된 Amazon S3 데이터를 읽는 경우 역할에 AWS KMS 키에 대한 복호화 권한이 있어야 합니다.

Amazon S3 데이터 스토어의 경우 역할에 연결된 추가 권한은 다음과 유사합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::bucket/object*" ] } ] }

Amazon DynamoDB 데이터 스토어의 경우 역할에 연결된 추가 권한은 다음과 유사합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "dynamodb:DescribeTable", "dynamodb:Scan" ], "Resource": [ "arn:aws:dynamodb:region:account-id:table/table-name*" ] } ] }

자체 JDBC 드라이버를 추가하려면 추가 권한을 추가해야 합니다.

  • CreateJob, DeleteJob, GetJob, GetJobRun, StartJobRun 작업에 대한 권한을 부여합니다.

  • Amazon S3 작업, s3:DeleteObjects, s3:GetObject, s3:ListBucket, s3:PutObject에 대한 권한을 부여합니다.

    참고

    Amazon S3 버킷 정책이 비활성화된 경우에는 s3:ListBucket이 필요하지 않습니다.

  • 서비스 보안 주체에 Amazon S3 정책의 버킷 및 폴더에 대한 액세스 권한을 부여합니다.

Amazon S3 정책 예제:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:ListBucket", "s3:DeleteObject" ], "Resource": [ "arn:aws:s3:::bucket-name/driver-parent-folder/driver.jar", "arn:aws:s3:::bucket-name" ] } ] }

AWS Glue에서는 Amazon S3 버킷에서 JDBC 드라이버와 동일한 수준에 있는 _crawler_glue_job_crawler 폴더를 생성합니다. 예를 들어 드라이버 경로가 <s3-path/driver_folder/driver.jar>인 경우 다음 폴더가 아직 없으면 폴더가 생성됩니다.

  • <s3-path/driver_folder/_crawler>

  • <s3-path/driver_folder/_glue_job_crawler>

선택적으로 크롤러에 보안 구성을 추가하여 저장 데이터 암호화 옵션을 지정할 수 있습니다.

자세한 내용은 2단계: AWS Glue에 대한 IAM 역할 생성AWS Glue의 Identity and Access Management 단원을 참조하세요.

Lake Formation 구성 - 선택 사항

크롤러가 Lake Formation 보안 인증을 사용하여 데이터 소스를 크롤링하도록 허용합니다.

Use Lake Formation credentials for crawling S3 data source(Lake Formation 보안 인증을 사용하여 S3 데이터 소스 크롤링)을 선택하면 크롤러가 Lake Formation 보안 인증을 사용하여 데이터 소스를 크롤링할 수 있습니다. 데이터 소스가 다른 계정에 속하는 경우 등록된 계정 ID를 제공해야 합니다. 그렇지 않으면 크롤러는 계정과 연결된 데이터 소스만 크롤링합니다. Amazon S3 및 데이터 카탈로그 데이터 소스에만 해당됩니다.

보안 구성 - 선택 사항

설정에는 보안 구성이 포함됩니다. 자세한 내용은 다음 자료를 참조하세요.

참고

크롤러에 보안 구성이 설정된 후에는 이를 변경할 수는 있지만 제거할 수는 없습니다. 크롤러의 보안 수준을 낮추려면 구성 내에서 보안 기능을 DISABLED로 명시적으로 설정하거나 새 크롤러를 생성하세요.

4단계: 출력 및 일정 설정

출력 구성

옵션에는 크롤러가 감지된 스키마 변경 사항, 데이터 스토어에서 삭제된 객체 등을 처리하는 방법이 포함됩니다. 자세한 내용은 크롤러 동작 사용자 지정 단원을 참조하세요.

크롤러 예약

필요에 따라 크롤러를 실행하거나 AWS Glue에서 크롤러 및 작업을 위한 시간 기반 일정을 정의합니다. 일정 정의는 Unix식 cron 구문을 사용합니다. 자세한 내용은 크롤러 일정 관리 단원을 참조하십시오.

5단계: 검토 및 생성

구성한 크롤러 설정을 검토하고 크롤러를 생성합니다.