

# AWS Glue Studio에서 사용자 지정 커넥터 및 연결 사용
<a name="connectors-chapter"></a>

AWS Glue는 JDBC 연결을 사용하여 가장 일반적으로 사용되는 데이터 스토어(예: Amazon Redshift, Amazon Aurora, Microsoft SQL Server, MySQL, MongoDB 및 PostgreSQL)에 대한 기본 제공 지원을 제공합니다. AWS Glue를 사용하면 추출, 변환, 로드 작업에서 사용자 정의 JDBC 드라이버를 사용할 수도 있습니다. SaaS 애플리케이션과 같이 기본적으로 지원되지 않는 데이터 스토어의 경우 커넥터를 사용할 수 있습니다.

*커넥터*는 AWS Glue Studio의 데이터 스토어에 액세스하는 데 도움이 되는 선택적 코드 패키지입니다. AWS Marketplace에서 제공하는 여러 커넥터를 구독할 수 있습니다.

ETL 작업을 생성할 때 기본적으로 지원되는 데이터 스토어, AWS Marketplace의 커넥터 또는 고유한 사용자 정의 커넥터를 사용할 수 있습니다. 커넥터를 사용하는 경우 먼저 커넥터에 대한 연결을 생성해야 합니다. 특정 데이터 스토어에 연결하는 데 필요한 속성을 포함하는 *연결*입니다. ETL 작업에서 데이터 원본 및 데이터 대상과의 연결을 사용합니다. 커넥터와 연결은 함께 작동하여 데이터 스토어에 쉽게 액세스할 수 있습니다.

 커넥터 연결을 생성할 때 사용할 수 있는 연결은 다음과 같습니다.
+  **Amazon Aurora** - 내장된 보안, 백업 및 복원, 인메모리 가속화 기능을 갖춘 확장 가능한 고성능 관계형 데이터베이스 엔진.
+  **Amazon DocumentDB** - MongoDB 및 SQL API를 지원하는 확장 가능하고 가용성이 뛰어난 완전 관리형 도큐먼트 데이터베이스 서비스입니다.
+  **Amazon Redshift** - MongoDB 및 SQL API를 지원하는 확장 가능하고 가용성이 뛰어난 완전 관리형 도큐먼트 데이터베이스입니다.
+  **Azure SQL** - 확장 가능하고 안정적이며 안전한 데이터 스토리지 및 관리 기능을 제공하는 Microsoft Azure의 클라우드 기반 관계형 데이터베이스 서비스입니다.
+  **Cosmos DB** - 확장 가능한 고성능 데이터 스토리지 및 쿼리 기능을 제공하는 Microsoft Azure의 전 세계에 분산된 클라우드 데이터베이스 서비스입니다.
+  **Google BigQuery** - 대규모 데이터 세트에서 빠른 SQL 쿼리를 실행하기 위한 서버리스 클라우드 데이터 웨어하우스입니다.
+  **JDBC** - 데이터 연결 및 상호 작용에 Java API를 사용하는 관계형 데이터베이스 관리 시스템(RDBMS)입니다.
+  **Kafka** - 실시간 데이터 스트리밍 및 메시징에 사용되는 오픈 소스 스트림 처리 플랫폼입니다.
+  **MariaDB** - 커뮤니티에서 개발한 MySQL 포크로 향상된 성능, 확장성 및 기능을 제공합니다.
+  **MongoDB** - 높은 확장성, 유연성 및 성능을 제공하는 크로스 플랫폼 문서 지향 데이터베이스입니다.
+  **MongoDB Atlas** - MongoDB 배포의 관리 및 확장을 간소화하는 MongoDB에서 제공하는 클라우드 기반 서비스형 데이터베이스(DBaaS)입니다.
+  **Microsoft SQL Server** - 강력한 데이터 스토리지, 분석 및 보고 기능을 제공하는 Microsoft의 관계형 데이터베이스 관리 시스템(RDBMS)입니다.
+  **Mixpanel** - 기업이 사용자가 웹 사이트, 모바일 애플리케이션 및 기타 디지털 제품과 상호 작용하는 방식을 분석하는 데 도움이 되는 분석 플랫폼입니다.
+  **MySQL** - 웹 애플리케이션에서 널리 사용되고 신뢰성과 확장성으로 잘 알려진 오픈 소스 관계형 데이터베이스 관리 시스템(RDBMS)입니다.
+  **네트워크** - 네트워크 데이터 소스는 데이터 통합 플랫폼에서 액세스할 수 있는 네트워크 액세스 가능 리소스 또는 서비스를 나타냅니다.
+  **OpenSearch** - OpenSearch 데이터 소스는 OpenSearch가 연결하고 데이터를 수집할 수 있는 애플리케이션입니다.
+  **Oracle** - 오라클의 관계형 데이터베이스 관리 시스템(RDBMS)으로 강력한 데이터 스토리지, 분석 및 보고 기능을 제공합니다.
+  **PostgreSQL** — 강력한 데이터 스토리지, 분석 및 보고 기능을 제공하는 오픈 소스 관계형 데이터베이스 관리 시스템(RDBMS)입니다.
+  **Salesforce** – Salesforce는 영업, 고객 서비스, 전자 상거래 등에 도움이 되는 고객 관계 관리(CRM) 소프트웨어를 제공합니다. Salesforce 사용자인 경우 Salesforce 계정에 AWS Glue를 연결할 수 있습니다. 그런 다음, ETL 작업에서 Salesforce를 데이터 소스 또는 대상으로 사용할 수 있습니다. 이러한 작업을 실행하여 Salesforce와 AWS 서비스 또는 기타 지원되는 애플리케이션 간에 데이터를 전송합니다.
+  **SAP HANA** - 빠른 데이터 처리, 고급 분석, 실시간 데이터 통합을 제공하는 인메모리 데이터베이스 및 분석 플랫폼입니다.
+  **Snowflake** - 확장 가능한 고성능 데이터 스토리지 및 분석 서비스를 제공하는 클라우드 기반 데이터 웨어하우스입니다.
+  **Teradata** - 고성능 데이터 저장, 분석 및 보고 기능을 제공하는 관계형 데이터베이스 관리 시스템(RDBMS)입니다.
+  **Vertica** - 빅데이터 분석을 위해 설계된 컬럼 중심의 분석 데이터 웨어하우스로, 빠른 쿼리 성능, 고급 분석 및 확장성을 제공합니다.

# 사용자 정의 커넥터 생성
<a name="creating-custom-connectors"></a>

고유한 커넥터를 구축하고 커넥터 코드를 AWS Glue Studio에 업로드할 수도 있습니다.

사용자 지정 커넥터는 AWS Glue Spark 런타임 API를 통해 AWS Glue Studio에 통합됩니다. AWS Glue Spark 런타임을 사용하면 Spark, Athena 또는 JDBC 인터페이스와 호환되는 모든 커넥터를 연결할 수 있습니다. 사용자 정의 커넥터에서 사용할 수 있는 연결 옵션을 전달할 수 있습니다.

[AWS Glue 연결](https://docs.aws.amazon.com/glue/latest/dg/glue-connections.html)로 모든 연결 속성을 캡슐화하고 ETL 작업에 연결 이름을 제공할 수 있습니다. Data Catalog 연결과의 통합을 통해 단일 Spark 애플리케이션 또는 다른 애플리케이션의 여러 호출에서 동일한 연결 속성을 사용할 수 있습니다.

연결에 대한 추가 옵션을 지정할 수 있습니다. AWS Glue Studio가 생성하는 작업 스크립트에는 연결을 사용하여 지정된 연결 옵션으로 커넥터를 플러그 인하는 `Datasource` 항목이 포함되어 있습니다. 예:

```
Datasource = glueContext.create_dynamic_frame.from_options(connection_type = 
"custom.jdbc", connection_options = {"dbTable":"Account","connectionName":"my-custom-jdbc-
connection"}, transformation_ctx = "DataSource0")
```

**AWS Glue Studio에 사용자 지정 커넥터를 추가하려면**

1. 사용자 정의 커넥터에 대한 코드를 생성합니다. 자세한 내용은 [사용자 정의 커넥터 개발](developing-custom-connectors.md) 섹션을 참조하세요.

1. 커넥터에 AWS Glue 기능 지원을 추가합니다. 다음은 이러한 기능의 몇 가지 예와 AWS Glue Studio에서 생성한 작업 스크립트 내에서 기능이 사용되는 방식입니다.
   + **데이터 유형 매핑** - 커넥터가 기본 데이터 스토어에서 열을 읽는 동안 열을 유형 변환할 수 있습니다. 예를 들어, `{"INTEGER":"STRING"}`의 `dataTypeMapping`은 레코드를 구문 분석하고 `DynamicFrame`을 구성할 때 `Integer` 유형의 모든 열을 `String` 유형의 열로 변환합니다. 이는 사용자가 선택한 유형으로 열을 캐스팅하는 데 도움이 됩니다.

     ```
     DataSource0 = glueContext.create_dynamic_frame.from_options(connection_type 
     = "custom.jdbc", connection_options = {"dataTypeMapping":{"INTEGER":"STRING"}", 
     connectionName":"test-connection-jdbc"}, transformation_ctx = "DataSource0")
     ```
   + **병렬 읽기를 위한 분할** – AWS Glue는 열에서 데이터를 분할하여 데이터 스토어에서 병렬 데이터 읽기를 허용합니다. 파티션 열, 하위 파티션 경계, 상위 파티션 경계 및 파티션 수를 지정해야 합니다. 이 기능을 사용하면 데이터 병렬 처리와 Spark 애플리케이션에 할당된 여러 Spark 실행기를 사용할 수 있습니다.

     ```
     DataSource0 = glueContext.create_dynamic_frame.from_options(connection_type 
     = "custom.jdbc", connection_options = {"upperBound":"200","numPartitions":"4",
     "partitionColumn":"id","lowerBound":"0","connectionName":"test-connection-jdbc"},
     transformation_ctx = "DataSource0")
     ```
   + **자격 증명 저장에 AWS Secrets Manager 사용** – Data Catalog 연결에는 AWS Secrets Manager에 저장된 보안 암호에 대한 `secretId`가 포함될 수도 있습니다. AWS 보안 암호는 인증 및 자격 증명 정보를 안전하게 저장하고 런타임 시 AWS Glue에 제공할 수 있습니다. 또는 다음과 같이 Spark 스크립트에서 `secretId`를 지정할 수 있습니다.

     ```
     DataSource = glueContext.create_dynamic_frame.from_options(connection_type 
     = "custom.jdbc", connection_options = {"connectionName":"test-connection-jdbc",
      "secretId"-> "my-secret-id"}, transformation_ctx = "DataSource0")
     ```
   + **행 조건자 및 열 프로젝션으로 소스 데이터 필터링** – AWS Glue Spark 런타임을 사용하면 SQL 쿼리를 푸시다운하여 행 조건자 및 열 프로젝션으로 소스에서 데이터를 필터링할 수도 있습니다. 이를 통해 ETL 작업은 푸시다운을 지원하는 데이터 스토어에서 필터링된 데이터를 더 빠르게 로드할 수 있습니다. JDBC 데이터 원본으로 푸시다운된 SQL 쿼리의 예는 `SELECT id, name, department FROM department WHERE id < 200.`입니다.

     ```
     DataSource = glueContext.create_dynamic_frame.from_options(connection_type = 
     "custom.jdbc", connection_options = {"query":"SELECT id, name, department FROM department 
     WHERE id < 200","connectionName":"test-connection-jdbc"}, transformation_ctx = 
     "DataSource0")
     ```
   + **작업 북마크** – AWS Glue는 JDBC 소스에서 데이터의 증분 로드를 지원합니다. AWS Glue는 데이터 스토어에서 마지막으로 처리된 레코드를 추적하고 후속 ETL 작업 실행에서 새 데이터 레코드를 처리합니다. 작업 북마크는 이 열이 순차적으로 증가하거나 감소하는 경우 기본 키를 북마크 키의 기본 열로 사용합니다. 작업 북마크에 대한 자세한 내용은 *AWS Glue Developer Guide*의 [Job Bookmarks](https://docs.aws.amazon.com/glue/latest/dg/monitor-continuations.html)를 참조하세요.

     ```
     DataSource0 = glueContext.create_dynamic_frame.from_options(connection_type = 
     "custom.jdbc", connection_options = {"jobBookmarkKeys":["empno"], "jobBookmarkKeysSortOrder"
     :"asc", "connectionName":"test-connection-jdbc"}, transformation_ctx = "DataSource0")
     ```

1. 사용자 정의 커넥터를 JAR 파일로 패키징하고 파일을 Amazon S3에 업로드합니다.

1. 사용자 정의 커넥터를 테스트합니다. 자세한 내용은 [Glue Custom Connectors: Local Validation Tests Guide](https://github.com/aws-samples/aws-glue-samples/tree/master/GlueCustomConnectors/localValidation/README.md)에서 GitHub의 지침을 참조하세요.

1. AWS Glue Studio 콘솔의 콘솔 탐색 창에서 **커넥터(Connectors)**를 선택합니다.

1. [**커넥터(Connectors)**] 페이지에서 [**사용자 정의 커넥터 생성(Create custom connector)**]을 선택합니다.

1. [**사용자 정의 커넥터 생성(Create custom connector)**] 페이지에서 다음 정보를 입력합니다.
   + Amazon S3에서 사용자 정의 코드 JAR 파일의 위치에 대한 경로입니다.
   + AWS Glue Studio에서 사용할 커넥터의 이름입니다.
   + [**JDBC**], [**Spark**] [또는 **Athena**] 중 하나일 수 있는 커넥터 유형입니다.
   + AWS Glue Studio가 커넥터를 사용하기 위해 호출하는 사용자 지정 코드 내의 진입점 이름입니다.
     + JDBC 커넥터의 경우 이 필드는 JDBC 드라이버의 클래스 이름이어야 합니다.
     + Spark 커넥터의 경우 이 필드는 `format` 연산자로 Spark 데이터 원본을 로드할 때 사용하는 정규화된 데이터 원본 클래스 이름 또는 해당 별칭이어야 합니다.
   + (JDBC만 해당) 데이터 스토어에 대한 JDBC 연결에서 사용하는 기본 URL입니다.
   + (선택 사항) 사용자 정의 커넥터에 대한 설명입니다.

1. [**커넥터 생성(Create connector)**]을 선택합니다.

1. [커넥터에 대한 연결 생성](creating-connections.md)에 설명된 대로 [**커넥터(Connectors)**] 페이지에서 이 커넥터를 사용하는 연결을 생성합니다.

## AWS Glue Studio에 커넥터 추가
<a name="creating-connectors"></a>

커넥터는 데이터 스토어와 AWS Glue 간의 통신을 용이하게 하는 코드입니다. AWS Marketplace에서 제공되는 커넥터를 구독하거나 사용자 정의 커넥터를 생성할 수 있습니다.

### AWS Marketplace 커넥터 구독
<a name="subscribe-marketplace-connectors"></a>

AWS Glue Studio를 사용하면 AWS Marketplace에서 커넥터를 쉽게 추가할 수 있습니다.

**AWS Marketplace에서 AWS Glue Studio로 커넥터를 추가하려면**

1. AWS Glue Studio 콘솔의 콘솔 탐색 창에서 **커넥터(Connectors)**를 선택합니다.

1. **Connectors(커넥터)** 페이지에서 **Go to AWS Marketplace(이동)**을 선택합니다.

1. AWS Marketplace의 [**추천 제품(Featured products)**]에서 사용하려는 커넥터를 선택합니다. 추천 커넥터 중 하나를 선택하거나 검색을 사용할 수 있습니다. 커넥터의 이름이나 유형을 검색하고 옵션을 사용하여 검색 결과를 구체화할 수 있습니다.

   주요 커넥터 중 하나를 사용하려면 [**제품 보기(View product)**]를 선택합니다. 검색을 사용하여 커넥터를 찾은 경우 커넥터 이름을 선택합니다.

1. 커넥터의 제품 페이지에서 탭을 사용하여 커넥터에 대한 정보를 봅니다. 이 커넥터를 구매하기로 결정했다면 [**계속 구독(Continue to Subscribe)**]을 선택합니다.

1. 결제 정보를 제공한 다음 [**계속 구성(Continue to Configure)**]을 선택합니다.

1. [**이 소프트웨어 구성(Configure this software)**] 페이지에서 배포 방법과 사용할 커넥터 버전을 선택합니다. 그런 뒤 [**계속 시작(Continue to Launch)**]을 선택합니다.

1. [**이 소프트웨어 시작(Launch this software)**] 페이지에서 커넥터 공급자가 제공한 [**사용 지침(Usage Instructions)**]을 검토할 수 있습니다. 계속할 준비가 되면 **Activate connection in AWS Glue Studio(연결 활성화)**를 선택합니다.

   잠시 후 콘솔에 AWS Glue Studio의 **마켓플레이스 연결 생성(Create marketplace connection)** 페이지가 표시됩니다.

1. [커넥터에 대한 연결 생성](creating-connections.md)에 설명된 대로 이 커넥터를 사용하는 연결을 생성합니다.

   또는 [**커넥터만 활성화(Activate connector only)**]를 선택하여 지금 연결 생성을 건너뛸 수 있습니다. 커넥터를 사용하려면 나중에 연결을 생성해야 합니다.

# 커넥터에 대한 연결 생성
<a name="creating-connections"></a>

AWS Glue 연결은 특정 데이터 스토어에 대한 연결 정보를 저장하는 Data Catalog 객체입니다. 연결은 로그인 자격 증명, URI 문자열, Virtual Private Cloud(VPC) 정보 등을 저장합니다. Data Catalog에서 연결을 생성하면 작업을 생성할 때마다 모든 연결 세부 정보를 지정해야 하는 수고를 덜 수 있습니다.

**커넥터에 대한 연결을 생성하려면**

1. AWS Glue Studio 콘솔의 콘솔 탐색 창에서 **커넥터(Connectors)**를 선택합니다. **아웃바운드 연결** 섹션에서 **연결 생성**을 선택합니다.

1. **데이터 연결 만들기** 마법사의 1단계에서 연결을 만들려는 데이터 소스를 선택합니다. 사용 가능한 데이터 소스를 보는 방법에는 다음과 같이 여러 가지가 있습니다.
   + 탭을 선택하여 사용 가능한 데이터 소스를 필터링합니다. 기본적으로 **모든 커넥터**가 선택됩니다.
   + **목록**을 토글하여 데이터 소스를 목록으로 보거나 그리드로 다시 전환하여 **그리드** 레이아웃에서 사용 가능한 커넥터를 볼 수 있습니다.
   + 검색 창을 사용하여 데이터 소스의 목록의 범위를 좁힙니다. 입력할 때 일치하는 검색이 표시되고 일치하지 않는 소스는 보기에서 제거됩니다.

    데이터 소스를 선택한 후 **다음**을 선택합니다.

1. 마법사의 2단계에서 연결을 구성합니다.

   연결 세부 정보를 입력합니다. 선택한 커넥터 유형에 따라 추가 정보를 입력하라는 메시지가 나타납니다.  
![\[스크린샷은 커넥터 페이지와 연결 섹션을 보여줍니다. 연결 생성 버튼은 빨간색 상자로 둘러싸여 있습니다. 연결 마법사를 시작하려면 연결 생성을 선택합니다.\]](http://docs.aws.amazon.com/ko_kr/glue/latest/dg/images/connections-create-connection.png)

1.  **데이터 연결 만들기** 마법사의 1단계에서 연결을 만들려는 데이터 소스를 선택합니다. 사용 가능한 데이터 소스는 여러 가지 방법으로 확인할 수 있습니다. 기본적으로 사용 가능한 모든 데이터 소스가 그리드 레이아웃으로 표시됩니다. 다른 방법:
   + **목록**을 토글하여 데이터 소스를 목록으로 보거나 그리드로 다시 전환하여 **그리드** 레이아웃에서 사용 가능한 커넥터를 볼 수 있습니다.
   + 검색 창을 사용하여 데이터 소스의 목록의 범위를 좁힙니다. 입력할 때 일치하는 검색이 표시되고 일치하지 않는 소스는 보기에서 제거됩니다.  
![\[스크린샷은 검색 창과 Grid-List 토글을 보여줍니다.\]](http://docs.aws.amazon.com/ko_kr/glue/latest/dg/images/connections-create-step-1-view.png)

    데이터 소스를 선택한 후 **다음**을 선택합니다.

1. 마법사의 2단계에서 연결을 구성합니다.

   연결 세부 정보를 입력합니다. 선택한 커넥터 유형에 따라 추가 연결 정보를 입력해야 할 수도 있습니다. 여기에는 다음이 포함됩니다.
   +  **연결 세부 정보** - 이 필드는 연결 중인 데이터 소스에 따라 달라집니다. 예를 들어, Amazon DocumentDB 데이터베이스에 연결하는 경우 Amazon DocumentDB URL을 입력합니다. Amazon Aurora에 연결하는 경우 데이터베이스 인스턴스를 선택하고 데이터베이스 이름을 입력합니다. 필요한 연결 세부 정보는 다음과 Amazon Aurora 같습니다.  
![\[스크린샷은 Amazon Aurora을 데이터 소스로 구성하는 데 필요한 연결 세부 정보를 보여줍니다.\]](http://docs.aws.amazon.com/ko_kr/glue/latest/dg/images/connections-create-step-2-configure.png)
   +  보안 인증 정보 유형 - **사용자 이름과 암호** 또는 ** AWS Secrets Manager**을 선택합니다. 요청된 인증 정보를 입력합니다.
   + JDBC를 사용하는 커넥터의 경우 데이터 스토어에 대한 JDBC URL을 생성하는 데 필요한 정보를 입력합니다.
   + Virtual Private Cloud(VPC)를 사용하는 경우 VPC에 대한 네트워크 정보를 입력합니다.

1. 마법사의 3단계에서 연결 속성을 설정합니다. 이 단계의 선택적 부분으로 설명과 태그를 추가할 수 있습니다. 이름은 필수이며 기본값으로 미리 채워집니다. **다음**을 선택합니다.

1. 연결 소스, 세부 정보 및 속성을 검토하십시오. 변경을 하려면 마법사의 **편집** 단계를 선택합니다. 준비되면 **연결 생성**을 선택합니다.

   **연결 생성**을 선택합니다.

   [**커넥터(Connectors)**] 페이지로 돌아가고 정보 배너가 생성된 연결을 나타냅니다. 이제 AWS Glue Studio 작업에서 연결을 사용할 수 있습니다.

# Kafka 연결 생성
<a name="creating-connections-kafka"></a>

 Kafka 연결을 생성할 때 드롭다운 메뉴에서 **Kafka**를 선택하면 구성할 추가 설정이 표시됩니다.
+  Kafka 클러스터 세부 정보 
+  Authentication 
+  암호화 
+  네트워크 옵션 

 **Kafka 클러스터 세부 정보 구성(Configure Kafka cluster details)** 

1.  클러스터 위치를 선택합니다. **Amazon Managed Streaming for Apache Kafka(MSK)(Amazon managed streaming for Apache Kafka (MSK))** 클러스터 또는 **고객 관리형 Apache Kafka(Customer managed Apache Kafka)** 클러스터 중에서 선택할 수 있습니다. Amazon Managed Streaming for Apache Kafka에 대한 자세한 내용은 [Amazon managed streaming for Apache Kafka (MSK)](https://docs.aws.amazon.com/msk/latest/developerguide/what-is-msk.html)(Amazon Managed Streaming for Apache Kafka(MSK))를 참조하세요.
**참고**  
 Amazon Managed Streaming for Apache Kafka는 TLS 및 SASL/SCRAM-SHA-512 인증 방법만 지원합니다.  
![\[스크린샷은 클러스터 위치를 선택하고 Kafka 부스트랩 서버 URL을 입력하는 옵션이 있는 Kafka 클러스터 세부 정보 섹션을 보여줍니다.\]](http://docs.aws.amazon.com/ko_kr/glue/latest/dg/images/kafka-cluster-details.png)

1.  Kafka 부트스트랩 서버의 URL을 입력합니다. 각 서버를 쉼표로 구분하여 둘 이상 입력할 수 있습니다. `:<port number>`를 추가하여 URL 끝에 포트 번호를 포함합니다.

    예: `b-1.vpc-test-2.034a88o.kafka-us-east-1.amazonaws.com:9094` 

 **인증 방법 선택(Select authentication method)** 

![\[스크린샷은 Kafka 인증 방법을 선택할 수 있는 드롭다운 메뉴를 보여줍니다.\]](http://docs.aws.amazon.com/ko_kr/glue/latest/dg/images/kafka-connection-authentication.png)


AWS Glue에서는 인증을 위해 SASL(Simple Authentication and Security Layer) 프레임워크를 지원합니다. SASL 프레임워크는 다양한 인증 메커니즘을 지원하며, AWS Glue는 SCRAM(사용자 이름 및 암호), GSSAPI(Kerberos 프로토콜), PLAIN(사용자 이름 및 암호) 프로토콜을 제공합니다.

드롭다운 메뉴에서 인증 방법을 선택할 때 다음 클라이언트 인증 방법을 선택할 수 있습니다.
+ 없음(None) - 인증이 없습니다. 이는 테스트 목적으로 연결을 생성하는 경우에 유용합니다.
+ SASL/SCRAM-SHA-512 - 인증 자격 증명을 지정하려면 이 인증 방법을 선택합니다. 두 가지 옵션을 사용할 수 있습니다.
  + AWS Secrets Manager 사용(권장) - 이 옵션을 선택하면 AWS Secrets Manager에 보안 인증 정보를 저장하여 필요할 때 AWS Glue에서 정보에 액세스하도록 할 수 있습니다. SSL 또는 SASL 인증 자격 증명을 저장하는 보안 암호를 지정합니다.  
![\[스크린샷은 인증 방법이 SASL/SCRAM-SHA-512인 경우 인증 자격 증명에 대한 옵션을 보여줍니다.\]](http://docs.aws.amazon.com/ko_kr/glue/latest/dg/images/kafka-connection-authentication-sha-512.png)
  + 사용자 이름 및 암호를 직접 제공합니다.
+  SASL/GSSAPI (Kerberos)(SASL/GSSAPI(Kerberos)) - 이 옵션을 선택하면 keytab 파일, krb5.conf 파일의 위치를 선택하고 Kerberos 보안 주체 이름과 Kerberos 서비스 이름을 입력할 수 있습니다. keytab 파일과 krb5.conf 파일의 위치는 Amazon S3 위치에 있어야 합니다. MSK는 아직 SASL/GSSAPI를 지원하지 않으므로 이 옵션은 고객 관리형 Apache Kafka 클러스터에만 사용할 수 있습니다. 자세한 내용은 [MIT Kerberos Documentation: Keytab](https://web.mit.edu/kerberos/krb5-latest/doc/basic/keytab_def.html)(MIT Kerberos 설명서: Keytab)을 참조하세요.
+  SASL/PLAIN - 인증 자격 증명을 지정하려면 이 인증 방법을 선택합니다. 두 가지 옵션을 사용할 수 있습니다.
  + AWS Secrets Manager 사용(권장) - 이 옵션을 선택하면 AWS Secrets Manager에 보안 인증 정보를 저장하여 필요할 때 AWS Glue에서 정보에 액세스하도록 할 수 있습니다. SSL 또는 SASL 인증 자격 증명을 저장하는 보안 암호를 지정합니다.
  + 사용자 이름 및 암호를 직접 제공합니다.
+  SSL 클라이언트 인증(SSL Client Authentication) - 이 옵션을 선택하면 Amazon S3를 검색하여 Kafka 클라이언트 키 스토어의 위치를 선택할 수 있습니다. 선택 사항으로 Kafka 클라이언트 키 스토어 암호와 Kafka 클라이언트 키 암호를 입력할 수 있습니다.

![\[스크린샷은 SSL이 인증 방법인 경우 암호화 옵션을 보여줍니다.\]](http://docs.aws.amazon.com/ko_kr/glue/latest/dg/images/kafka-connection-authentication-ssl.png)


 **암호화 설정 구성(Configure encryption settings)** 

1.  Kafka 연결에 SSL 연결이 필요한 경우 **SSL 연결 필요(Require SSL connection)** 확인란을 선택합니다. SSL을 통해 연결할 수 없으면 연결이 실패합니다. 암호화용 SSL은 모든 인증 방법(SASL/SCRAM-SHA-512, SASL/GSSAPI, SASL/PLAIN 또는 SSL 클라이언트 인증)과 함께 사용할 수 있으며 선택 사항입니다.

    인증 방법이 **SSL 클라이언트 인증(SSL client authentication)**으로 설정된 경우 이 옵션은 자동으로 선택되며 변경을 방지하기 위해 비활성화됩니다.

1.  (선택 사항). 인증 기관(CA)의 사설 인증서 위치를 선택합니다. 인증 위치는 S3 위치에 있어야 합니다. 연결된 S3 버킷에서 파일을 선택하려면 **찾아보기(Browse)**를 선택합니다. 경로는 `s3://bucket/prefix/filename.pem` 형식이어야 합니다. 파일 이름과 .pem 확장자로 끝나야 합니다.

1.  인증 기관(CA)의 인증서 검증을 건너뛰도록 선택할 수 있습니다. **인증 기관(CA)의 인증서 검증 건너뛰기(Skip validation of certificate from certificate authority (CA))** 확인란을 선택합니다. 이 확인란을 선택하지 않으면 AWS Glue는 다음 세 가지 알고리즘에 대해 인증서를 검증합니다.
   +  SHA256withRSA 
   +  SHA384withRSA 
   +  SHA512withRSA 

![\[스크린샷은 SSL 연결이 필요한지 여부, 인증 기관(CA)의 사설 인증서 위치를 선택하는 옵션, 인증 기관(CA)의 인증서 검증을 건너뛰는 옵션 등 암호화를 구성하는 옵션을 보여줍니다.\]](http://docs.aws.amazon.com/ko_kr/glue/latest/dg/images/kafka-connection-encryption.png)


 **(선택 사항) 네트워크 옵션((Optional) Network options)** 

 다음은 VPC, 서브넷 및 보안 그룹을 구성하는 선택적 단계입니다. AWS Glue 작업이 VPC(Virtual Private Cloud) 서브넷의 Amazon EC2 인스턴스에서 실행되어야 하는 경우 추가 VPC별 구성 정보를 제공해야 합니다.

1.  데이터 원본이 포함된 VPC(Virtual Private Cloud)를 선택합니다.

1.  VPC가 있는 서브넷을 선택합니다.

1.  하나 이상의 보안 그룹을 선택하여 VPC 서브넷의 데이터 스토어에 대한 액세스를 허용합니다. 보안 그룹은 서브넷에 연결된 ENI에 연결됩니다. 모든 TCP 포트에 대해 자체 참조 인바운드 규칙이 있는 보안 그룹을 하나 이상 선택해야 합니다.

![\[스크린샷은 VPC, 서브넷 및 보안 그룹에 대한 선택적 네트워크 옵션을 보여줍니다.\]](http://docs.aws.amazon.com/ko_kr/glue/latest/dg/images/kafka-connection-network-options.png)


# 사용자 정의 커넥터로 작업 작성
<a name="job-authoring-custom-connectors"></a>

AWS Glue Studio에서 데이터 원본 노드와 데이터 대상 노드 둘 다에 커넥터와 연결을 사용할 수 있습니다.

**Topics**
+ [데이터 원본에 커넥터를 사용하는 작업 생성](#create-job-connectors)
+ [커넥터를 사용하는 노드의 소스 속성 구성](#edit-connector-source)
+ [커넥터를 사용하는 노드의 대상 속성 구성](#edit-connector-target)

## 데이터 원본에 커넥터를 사용하는 작업 생성
<a name="create-job-connectors"></a>

새 작업을 생성할 때 데이터 원본 및 데이터 대상에 대한 커넥터를 선택할 수 있습니다.

**데이터 원본 또는 데이터 대상에 대한 커넥터를 사용하는 작업을 생성하려면**

1. AWS Management Console에 로그인하고 [https://console.aws.amazon.com/gluestudio/](https://console.aws.amazon.com/gluestudio/)에서 AWS Glue Studio 콘솔을 엽니다.

1. [**커넥터(Connectors)**] 페이지의 [**연결(Your connections)**] 리소스 목록에서 작업에 사용할 연결을 선택한 다음 [**작업 생성(Create job)**]을 선택합니다.

   또는 AWS Glue Studio **작업(Jobs)** 페이지의 **작업 생성(Create job)**에서 **그래프에 추가된 소스 및 대상(Source and target added to the graph)**을 선택합니다. [**소스(Source)**] 드롭다운 목록에서 작업에 사용하려는 사용자 정의 커넥터를 선택합니다. [**대상(Target)**]에 대한 커넥터를 선택할 수도 있습니다.  
![\[\]](http://docs.aws.amazon.com/ko_kr/glue/latest/dg/images/create-job-data-sources-screenshot.png)

1. [**생성(Create)**]을 선택하여 시각적 작업 편집기를 엽니다.

1. [커넥터를 사용하는 노드의 소스 속성 구성](#edit-connector-source)에 설명된 대로 데이터 원본 노드를 구성합니다.

1. [AWS Glue Studio에서 시각적 ETL 작업 시작](edit-nodes-chapter.md)에 설명된 대로 변환, 추가 데이터 스토어 및 데이터 대상을 추가하여 ETL 작업을 계속 생성합니다.

1. [작업 속성 수정](managing-jobs-chapter.md#edit-jobs-properties)에 설명된 대로 작업 속성을 구성하여 작업 실행 환경을 사용자 지정합니다.

1. 작업을 저장하고 실행합니다.

## 커넥터를 사용하는 노드의 소스 속성 구성
<a name="edit-connector-source"></a>

데이터 원본에 대해 커넥터를 사용하는 작업을 생성한 후 시각적 작업 편집기는 커넥터에 대해 구성된 데이터 원본 노드가 있는 작업 그래프를 표시합니다. 해당 노드에 대한 데이터 원본 속성을 구성해야 합니다.

**커넥터를 사용하는 데이터 원본 노드의 속성을 구성하려면**

1. 작업 그래프에서 커넥터 데이터 원본 노드를 선택하거나 새 노드를 추가하고 [**노드 유형(Node type)**]에 대한 커넥터를 선택하십시오. 그런 다음 오른쪽의 노드 세부 정보 패널에서 [**데이터 원본 속성(Data source properties)**] 탭을 선택합니다(아직 선택하지 않은 경우).  
![\[\]](http://docs.aws.amazon.com/ko_kr/glue/latest/dg/images/data-source-properties-connector-screenshot2.png)

1. [**데이터 원본 속성(Data source properties)**] 탭에서 이 작업에 사용할 연결을 선택합니다.

   각 연결 유형에 필요한 추가 정보를 입력합니다.

------
#### [ JDBC ]
   + [**데이터 원본 입력 유형(Data source input type)**]: 테이블 이름 또는 SQL 쿼리를 데이터 원본으로 제공하도록 선택합니다. 선택 항목에 따라 다음 추가 정보를 제공해야 합니다.
     + [**테이블 이름(Table name)**]: 데이터 원본에 있는 테이블의 이름입니다. 데이터 원본에서 테이블이라는 용어를 사용하지 않는 경우 사용자 정의 커넥터 사용 정보(AWS Marketplace에서 사용 가능)에 표시된 대로 적절한 데이터 구조의 이름을 제공합니다.
     + **필터 조건자(Filter predicate)**[]: 데이터의 하위 집합을 검색하는 데 사용되는 `WHERE` 절과 유사하게 데이터 원본을 읽을 때 사용할 조건 절입니다.
     + [**쿼리 코드(Query code)**]: 데이터 원본에서 특정 데이터 집합을 검색하는 데 사용할 SQL 쿼리를 입력합니다. 기본 SQL 쿼리의 예는 다음과 같습니다.

       ```
       SELECT column_list FROM 
                                 table_name WHERE where_clause
       ```
   + **스키마(Schema)**: AWS Glue Studio는 Data Catalog 테이블에서 메타데이터 정보를 검색하는 대신 연결에 저장된 정보를 사용하여 데이터 원본에 액세스하므로 데이터 원본에 대한 스키마 메타데이터를 제공해야 합니다. [**스키마 추가(Add schema)**]를 선택하여 스키마 편집기를 엽니다.

     스키마 편집기를 사용하는 방법에 대한 지침은 [사용자 정의 변환 노드에서 스키마 편집](transforms-custom.md#transforms-custom-editschema) 섹션을 참조하세요.
   + [**파티션 열(Partition column)**]: (선택 사항) [**파티션 열(Partition column)**], [**하한(Lower bound)**], [**상한(Upper bound)**] 및 [**파티션 수(Number of partitions)**]에 대한 값을 제공하여 데이터 읽기를 분할하도록 선택할 수 있습니다.

     `lowerBound` 및 `upperBound` 값은 테이블의 행을 필터링하는 것이 아니라 파티션 스트라이드를 결정하는 데 사용됩니다. 테이블의 모든 행이 분할되어 반환됩니다.
**참고**  
열 분할은 데이터를 읽는 데 사용되는 쿼리에 추가 분할 조건을 추가합니다. 테이블 이름 대신 쿼리를 사용하는 경우 쿼리가 지정된 분할 조건에서 작동하는지 확인해야 합니다. 예:  
쿼리 포맷이 `"SELECT col1 FROM table1"`이면 파티션 열을 사용하는 쿼리 끝에 `WHERE` 절을 추가하여 쿼리를 테스트합니다.
쿼리 포맷이 `"SELECT col1 FROM table1 WHERE col2=val"`이면 `AND`와 파티션 열을 사용하는 표현식으로 `WHERE` 절을 확장하여 쿼리를 테스트합니다.
   + [**데이터 유형 캐스팅(Data type casting)**]: 데이터 원본에서 JDBC에서 사용할 수 없는 데이터 유형을 사용하는 경우 이 섹션을 사용하여 데이터 원본의 데이터 유형을 JDBC 데이터 유형으로 변환하는 방법을 지정합니다. 최대 50개의 데이터 유형 변환을 지정할 수 있습니다. 동일한 데이터 유형을 사용하는 데이터 원본의 모든 열을 동일한 방식으로 변환합니다.

     예를 들어 `Float` 데이터 유형을 사용하는 데이터 원본에 3개의 열이 있고 `Float` 데이터 유형을 JDBC `String` 데이터 유형으로 변환해야 한다고 지정하면 `Float` 데이터 유형을 사용하는 3개의 열이 모두 `String` 데이터 유형으로 변환됩니다.
   + [**작업 북마크 키(Job bookmark keys)**]: AWS Glue는 작업 북마크로 상태 정보를 유지하고 이전 데이터의 재처리를 방지합니다. 하나 이상의 열을 북마크 키로 지정합니다. AWS Glue Studio는 북마크 키를 사용하여 이전에 ETL 작업을 실행할 때 이미 처리된 데이터를 추적합니다. 사용자 정의 북마크 키에 사용하는 모든 열은 엄격하게 단조롭게 증가하거나 감소해야 하지만 간격은 허용됩니다.

     여러 북마크 키를 입력하면 결합되어 단일 복합 키를 형성합니다. 복합 작업 북마크 키에 중복 열이 포함되면 안 됩니다. 북마크 키를 지정하지 않으면 AWS Glue Studio는 기본값으로 기본 키를 북마크 키로 사용합니다. 단, 기본 키가 간격 없이 순차적으로 증가하거나 감소해야 합니다. 테이블에 기본 키가 없지만 작업 북마크 속성이 활성화된 경우 사용자 정의 작업 북마크 키를 제공해야 합니다. 그렇지 않으면 기본값으로 사용할 기본 키 검색이 실패하고 작업 실행이 실패합니다.
   + [**작업 북마크 키 정렬 순서(Job bookmark keys sorting order)**]: 키 값이 순차적으로 증가할지 또는 감소할지를 선택합니다.

------
#### [ Spark ]
   + **스키마(Schema)**: AWS Glue Studio는 Data Catalog 테이블에서 메타데이터 정보를 검색하는 대신 연결에 저장된 정보를 사용하여 데이터 원본에 액세스하므로 데이터 원본에 대한 스키마 메타데이터를 제공해야 합니다. [**스키마 추가(Add schema)**]를 선택하여 스키마 편집기를 엽니다.

     스키마 편집기를 사용하는 방법에 대한 지침은 [사용자 정의 변환 노드에서 스키마 편집](transforms-custom.md#transforms-custom-editschema) 섹션을 참조하세요.
   + [**연결 옵션(Connection options)**]: 추가 연결 정보 또는 옵션을 제공하기 위해 필요에 따라 추가 키-값 페어를 입력합니다. 예를 들어 데이터베이스 이름, 테이블 이름, 사용자 이름 및 암호를 입력할 수 있습니다.

     예를 들어 OpenSearch의 경우 [자습서: AWS Glue Connector for Elasticsearch 사용](tutorial-elastisearch-connector.md)의 설명에 따라 다음 키-값 페어를 입력합니다.
     + `es.net.http.auth.user` : `username`
     + `es.net.http.auth.pass` : `password` 
     + `es.nodes` : `https://<Elasticsearch endpoint>`
     + `es.port` : `443`
     + `path`: `<Elasticsearch resource>`
     + `es.nodes.wan.only` : `true`

   사용할 최소 연결 옵션의 예는 GitHub의 샘플 테스트 스크립트 [MinimalSparkConnectorTest.scala](https://github.com/aws-samples/aws-glue-samples/tree/master/GlueCustomConnectors/development/Spark/MinimalSparkConnectorTest.scala)를 참조하세요. 이 스크립트는 일반적으로 연결에서 제공하는 연결 옵션을 보여줍니다.

------
#### [ Athena ]
   + [**테이블 이름(Table name)**]: 데이터 원본에 있는 테이블의 이름입니다. Athena-CloudWatch Logs에서 읽기 위해 커넥터를 사용하는 경우 테이블 이름 `all_log_streams`를 입력합니다.
   + [**Athena 스키마 이름(Athena schema name)**]: Athena 데이터 원본에서 테이블을 포함하는 데이터베이스에 해당하는 스키마를 선택합니다. Athena-CloudWatch Logs에서 읽기 위해 커넥터를 사용하는 경우 `/aws/glue/name`과 유사한 스키마 이름을 입력합니다.
   + **스키마(Schema)**: AWS Glue Studio는 Data Catalog 테이블에서 메타데이터 정보를 검색하는 대신 연결에 저장된 정보를 사용하여 데이터 원본에 액세스하므로 데이터 원본에 대한 스키마 메타데이터를 제공해야 합니다. [**스키마 추가(Add schema)**]를 선택하여 스키마 편집기를 엽니다.

     스키마 편집기를 사용하는 방법에 대한 지침은 [사용자 정의 변환 노드에서 스키마 편집](transforms-custom.md#transforms-custom-editschema) 섹션을 참조하세요.
   + [**추가 연결 옵션(Additional connection options)**]: 추가 연결 정보 또는 옵션을 제공하기 위해 필요에 따라 추가 키-값 페어를 입력합니다.

   예를 들어, [https://github.com/aws-samples/aws-glue-samples/tree/master/GlueCustomConnectors/development/Athena](https://github.com/aws-samples/aws-glue-samples/tree/master/GlueCustomConnectors/development/Athena)의 `README.md` 파일을 참조하세요. 이 문서의 단계에서 샘플 코드는 최소한의 필수 연결 옵션인 `tableName`, `schemaName` 및 `className`을 보여줍니다. 코드 예제에서는 이러한 옵션을 `optionsMap` 변수의 일부로 지정하지만 연결에 대해 지정한 다음 연결을 사용할 수 있습니다.

------

1. (선택 사항) 필수 정보를 제공한 후 노드 세부 정보 패널에서 [**출력 스키마(Output schema)**] 탭을 선택하여 데이터 원본에 대한 결과 데이터 스키마를 볼 수 있습니다. 이 탭에 표시된 스키마는 작업 그래프에 추가하는 모든 하위 노드에서 사용됩니다.

1. (선택 사항) 노드 속성과 데이터 원본 속성을 구성한 후 노드 세부 정보 패널에서 [데이터 미리 보기(Data preview)] 탭을 선택하여 데이터 원본에서 데이터 집합을 미리 볼 수 있습니다. 작업의 노드에 대해 이 탭을 처음 선택하면 데이터 액세스를 위해 IAM 역할을 제공하라는 메시지가 나타납니다. 이 기능 사용과 관련된 비용이 있으며 IAM 역할을 제공하는 즉시 결제가 시작됩니다.

## 커넥터를 사용하는 노드의 대상 속성 구성
<a name="edit-connector-target"></a>

데이터 대상 유형에 커넥터를 사용하는 경우 데이터 대상 노드의 속성을 구성해야 합니다.

**커넥터를 사용하는 데이터 대상 노드의 속성을 구성하려면**

1. 작업 그래프에서 커넥터 데이터 대상 노드를 선택합니다. 그런 다음 오른쪽의 노드 세부 정보 패널에서 [**데이터 대상 속성(Data target properties)**] 탭을 선택합니다(아직 선택하지 않은 경우).

1. [**데이터 대상 속성(Data target properties)**] 탭에서 대상에 쓰는 데 사용할 연결을 선택합니다.

   각 연결 유형에 필요한 추가 정보를 입력합니다.

------
#### [ JDBC ]
   + [**연결(Connection)**]: 커넥터에 사용할 연결을 선택합니다. 연결을 생성하는 방법에 대한 자세한 내용은 [커넥터에 대한 연결 생성](creating-connections.md) 섹션을 참조하세요.
   + [**테이블 이름(Table name)**]: 데이터 대상에 있는 테이블의 이름입니다. 데이터 대상에서 테이블이라는 용어를 사용하지 않는 경우 사용자 정의 커넥터 사용 정보(AWS Marketplace에서 사용 가능)에 표시된 대로 적절한 데이터 구조의 이름을 제공합니다.
   + [**배치 크기(Batch size)**](선택 사항): 단일 작업으로 대상 테이블에 삽입할 행 또는 레코드 수를 입력합니다. 기본값은 1000행입니다.

------
#### [ Spark ]
   + [**연결(Connection)**]: 커넥터에 사용할 연결을 선택합니다. 이전에 연결을 생성하지 않은 경우 [**연결 생성(Create connection)**]을 선택하여 생성합니다. 연결을 생성하는 방법에 대한 자세한 내용은 [커넥터에 대한 연결 생성](creating-connections.md) 섹션을 참조하세요.
   + [**연결 옵션(Connection options)**]: 추가 연결 정보 또는 옵션을 제공하기 위해 필요에 따라 추가 키-값 페어를 입력합니다. 데이터베이스 이름, 테이블 이름, 사용자 이름 및 암호를 입력할 수 있습니다.

     예를 들어 OpenSearch의 경우 [자습서: AWS Glue Connector for Elasticsearch 사용](tutorial-elastisearch-connector.md)의 설명에 따라 다음 키-값 페어를 입력합니다.
     + `es.net.http.auth.user` : `username`
     + `es.net.http.auth.pass` : `password` 
     + `es.nodes` : `https://<Elasticsearch endpoint>`
     + `es.port` : `443`
     + `path`: `<Elasticsearch resource>`
     + `es.nodes.wan.only` : `true`

   사용할 최소 연결 옵션의 예는 GitHub의 샘플 테스트 스크립트 [MinimalSparkConnectorTest.scala](https://github.com/aws-samples/aws-glue-samples/tree/master/GlueCustomConnectors/development/Spark/MinimalSparkConnectorTest.scala)를 참조하세요. 이 스크립트는 일반적으로 연결에서 제공하는 연결 옵션을 보여줍니다.

------

1. 필수 정보를 제공한 후 노드 세부 정보 패널에서 [**출력 스키마(Output schema)**] 탭을 선택하여 데이터 원본에 대한 결과 데이터 스키마를 볼 수 있습니다.

# 커넥터 및 연결 관리
<a name="managing-connectors"></a>

AWS Glue의 **커넥터** 페이지를 사용하여 커넥터와 연결을 관리합니다.

**Topics**
+ [커넥터 및 연결 세부 정보 보기](#connector-details)
+ [커넥터 및 연결 편집](#editing-connectors)
+ [커넥터 및 연결 삭제](#deleting-connectors)
+ [커넥터에 대한 구독 취소](#cancel-subscription)

## 커넥터 및 연결 세부 정보 보기
<a name="connector-details"></a>

[**커넥터(Connectors)**] 페이지의 [**커넥터(Your connectors)**] 및 [**연결(Your connections)**] 리소스 테이블에서 커넥터 및 연결에 대한 요약 정보를 볼 수 있습니다. 세부 정보를 보려면 다음 단계를 수행합니다.

**커넥터 또는 연결 세부 정보를 보려면**

1. AWS Glue Studio 콘솔의 콘솔 탐색 창에서 **커넥터(Connectors)**를 선택합니다.

1. 자세한 정보를 보려는 커넥터 또는 연결을 선택합니다.

1. [**작업(Actions)**]을 선택하고 [**세부 정보 보기(View details)**]를 선택하여 해당 커넥터 또는 연결에 대한 세부 정보 페이지를 엽니다.

1. 세부 정보 페이지에서 커넥터 또는 연결을 **Edit**(편집)하거나 **Delete**(삭제)하도록 선택할 수 있습니다.
   + 커넥터의 경우 [**연결 생성(Create connection)**]을 선택하여 커넥터를 사용하는 새 연결을 생성할 수 있습니다.
   + 연결의 경우 [**작업 생성(Create job)**]을 클릭하여 연결을 사용하는 작업을 생성할 수 있습니다.

## 커넥터 및 연결 편집
<a name="editing-connectors"></a>

[**커넥터(Connectors)**] 페이지를 사용하여 커넥터와 연결에 저장된 정보를 변경합니다.

**커넥터 또는 연결을 수정하려면**

1. AWS Glue Studio 콘솔의 콘솔 탐색 창에서 **커넥터(Connectors)**를 선택합니다.

1. 변경하려는 커넥터나 연결을 선택합니다.

1. **작업**을 선택한 후 **편집**을 선택합니다.

   [**세부 정보 보기(View details)**]를 선택하고 커넥터 또는 연결 세부 정보 페이지에서 [**편집(Edit)**]을 선택할 수도 있습니다.

1. [**커넥터 편집(Edit connector)**] 또는 [**연결 편집(Edit connection)**] 페이지에서 정보를 업데이트한 다음 [**저장(Save)**]을 선택합니다.

## 커넥터 및 연결 삭제
<a name="deleting-connectors"></a>

[**커넥터(Connectors)**] 페이지를 사용하여 커넥터와 연결을 삭제합니다. 커넥터를 삭제하면 해당 커넥터에 대해 생성된 연결도 모두 삭제되어야 합니다.

**AWS Glue Studio에서 커넥터를 제거하려면**

1. AWS Glue Studio 콘솔의 콘솔 탐색 창에서 **커넥터(Connectors)**를 선택합니다.

1. 삭제하려는 커넥터나 연결을 선택합니다.

1. **작업**을 선택한 후 **삭제**를 선택합니다.

   [**세부 정보 보기(View details)**]를 선택하고 커넥터 또는 연결 세부 정보 페이지에서 [**삭제(Delete)**]를 선택할 수도 있습니다.

1. **Delete**를 입력하여 커넥터 또는 연결 제거를 확인한 다음 [**삭제(Delete)**]를 선택합니다.

   커넥터를 삭제하면 해당 커넥터에 대해 생성된 연결도 모두 삭제됩니다.

삭제된 연결을 사용하는 모든 작업은 더 이상 작동하지 않습니다. 작업을 편집하여 다른 데이터 스토어를 사용하거나 작업을 제거할 수 있습니다. 작업을 삭제하는 방법에 대한 자세한 정보는 [작업 삭제](managing-jobs-chapter.md#delete-jobs) 섹션을 참조하세요.

커넥터를 삭제해도 AWS Marketplace에서 커넥터에 대한 구독이 취소되지는 않습니다. 삭제된 커넥터에 대한 구독을 제거하려면 [커넥터에 대한 구독 취소](#cancel-subscription)의 지침을 따릅니다.

## 커넥터에 대한 구독 취소
<a name="cancel-subscription"></a>

AWS Glue Studio에서 연결과 커넥터를 삭제한 후 커넥터가 더 이상 필요하지 않은 경우 AWS Marketplace에서 구독을 취소할 수 있습니다.

**참고**  
커넥터에 대한 구독을 취소해도 계정에서 커넥터나 연결이 제거되지는 않습니다. 커넥터 및 관련 연결을 사용하는 모든 작업은 더 이상 커넥터를 사용할 수 없으며 실패합니다.  
AWS Marketplace에서 커넥터를 구독 취소하거나 다시 구독하기 전에 해당 AWS Marketplace 제품과 연결된 기존 연결과 커넥터를 삭제해야 합니다.

**AWS Marketplace에서 커넥터 구독을 취소하려면**

1. [https://console.aws.amazon.com/marketplace](https://console.aws.amazon.com/marketplace)에서 AWS Marketplace 콘솔에 로그인합니다.

1. [**구독 관리(Manage subscriptions)**]를 선택합니다.

1. [**구독 관리(Manage subscriptions)**] 페이지에서 취소하려는 커넥터 구독 옆에 있는 [**관리(Manage)**]를 선택합니다.

1. 그런 다음 [**작업(Actions)**]을 선택하고 [**구독 취소(Cancel Subscription)**]를 선택합니다.

1. 실행 중인 인스턴스가 계정에 청구됨을 확인하는 확인란을 선택한 다음 [**예, 구독을 취소합니다(Yes, cancel subscription)**]를 선택합니다.

# 사용자 정의 커넥터 개발
<a name="developing-custom-connectors"></a>

데이터 스토어에서 데이터를 읽거나 데이터를 쓰고 AWS Glue Studio 작업에 사용할 데이터를 포맷하는 코드를 작성할 수 있습니다. Spark, Athena 및 JDBC 데이터 스토어용 커넥터를 생성할 수 있습니다. GitHub에 게시된 샘플 코드는 구현해야 하는 기본 인터페이스에 대한 개요를 제공합니다.

커넥터 코드를 생성하려면 로컬 개발 환경이 필요합니다. 모든 IDE 또는 명령줄 편집기를 사용하여 커넥터를 작성할 수 있습니다. 개발 환경의 예는 다음과 같습니다.
+ *AWS Glue Developer Guide*의 [Developing Locally with Scala](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-libraries.html#develop-local-scala)에 설명된 대로 로컬 AWS Glue ETL Maven 라이브러리가 있는 로컬 Scala 환경.
+ IntelliJ IDE([https://www.jetbrains.com/idea/](https://www.jetbrains.com/idea/)에서 다운로드).

**Topics**
+ [Spark 커넥터 개발](#code-spark-connector)
+ [Athena 커넥터 개발](#code-athena-connector)
+ [JDBC 커넥터 개발](#code-jdbc-connector)
+ [AWS Glue Studio에서 사용자 지정 커넥터를 사용하는 예제](#custom-connector-examples)
+ [AWS Marketplace용 AWS Glue 커넥터 개발](#code-marketplace-connector)

## Spark 커넥터 개발
<a name="code-spark-connector"></a>

Spark DataSource API V2(Spark 2.4)로 Spark 커넥터를 생성하여 데이터를 읽을 수 있습니다.

**사용자 정의 Spark 커넥터 생성**

Spark 커넥터 개발을 위한 AWS Glue GitHub 샘플 라이브러리([https://github.com/aws-samples/aws-glue-samples/tree/master/GlueCustomConnectors/development/Spark/README.md](https://github.com/aws-samples/aws-glue-samples/tree/master/GlueCustomConnectors/development/Spark/README.md)에 위치)의 단계를 따르세요.

## Athena 커넥터 개발
<a name="code-athena-connector"></a>

AWS Glue 및 AWS Glue Studio에서 사용자 지정 데이터 원본을 쿼리하는 데 사용할 Athena 커넥터를 생성할 수 있습니다.

**사용자 정의 Athena 커넥터 생성**

Athena 커넥터 개발을 위한 AWS Glue GitHub 샘플 라이브러리([https://github.com/aws-samples/aws-glue-samples/tree/master/GlueCustomConnectors/development/Athena](https://github.com/aws-samples/aws-glue-samples/tree/master/GlueCustomConnectors/development/Athena)에 위치)의 단계를 따르세요.

## JDBC 커넥터 개발
<a name="code-jdbc-connector"></a>

JDBC를 사용하여 데이터 스토어에 액세스하는 커넥터를 생성할 수 있습니다.

**사용자 정의 JDBC 커넥터를 생성하려면**

1. 로컬 개발 환경에 AWS Glue Spark 런타임 라이브러리를 설치합니다. AWS Glue GitHub 샘플 라이브러리([ https://github.com/aws-samples/aws-glue-samples/tree/master/GlueCustomConnectors/development/GlueSparkRuntime/README.md](https://github.com/aws-samples/aws-glue-samples/tree/master/GlueCustomConnectors/development/GlueSparkRuntime/README.md))의 지침을 참조하세요.

1. 데이터 원본에서 데이터 검색을 담당하는 JDBC 드라이버를 구현합니다. Java SE 8에 대한 [Java 설명서](https://docs.oracle.com/javase/8/docs/technotes/guides/jdbc/)를 참조하세요.

   AWS Glue Studio가 커넥터를 찾는 데 사용하는 코드 내의 진입점을 생성합니다. [**클래스 이름(Class name)**] 필드는 JDBC 드라이버의 전체 경로여야 합니다.

1. `GlueContext` API를 사용하여 커넥터로 데이터를 읽습니다. 사용자는 필요한 경우 AWS Glue Studio 콘솔에서 더 많은 입력 옵션을 추가하여 데이터 원본에 대한 연결을 구성할 수 있습니다. 사용자 정의 JDBC 커넥터를 사용하여 JDBC 데이터베이스에서 읽고 쓰는 방법을 보여주는 코드 예제는 [사용자 정의 및 AWS Marketplace connectionType 값](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-connect.html#aws-glue-programming-etl-connect-market)을 참조하세요.

## AWS Glue Studio에서 사용자 지정 커넥터를 사용하는 예제
<a name="custom-connector-examples"></a>

사용자 정의 커넥터 사용 예는 다음 블로그를 참조하세요.
+ [AWS Glue를 사용하여 데이터 저장소용 사용자 지정 커넥터 개발, 테스트 및 배포](https://aws.amazon.com/blogs/big-data/developing-testing-and-deploying-custom-connectors-for-your-data-stores-with-aws-glue/)
+ Apache Hudi: [AWS Glue 사용자 정의 커넥터를 사용하여 Apache Hudi 테이블에 쓰기](https://aws.amazon.com/blogs/big-data/writing-to-apache-hudi-tables-using-aws-glue-connector/)
+ Google BigQuery: [AWS Glue 사용자 정의 커넥터를 사용하여 Google BigQuery에서 Amazon S3로 데이터 마이그레이션](https://aws.amazon.com/blogs/big-data/migrating-data-from-google-bigquery-to-amazon-s3-using-aws-glue-custom-connectors/)
+ Snowflake(JDBC): [Snowflake 및 AWS Glue를 사용하여 데이터 변환 수행](https://aws.amazon.com/blogs/big-data/performing-data-transformations-using-snowflake-and-aws-glue/)
+ SingleStore: [SingleStore 및 AWS Glue를 사용하여 빠른 ETL 구축](https://aws.amazon.com/blogs/big-data/building-fast-etl-using-singlestore-and-aws-glue/)
+ Salesforce:[AWS Glue와 함께 CData JDBC 사용자 정의 커넥터를 사용하여 Salesforce 데이터를 Amazon S3에 수집](https://aws.amazon.com/blogs/big-data/ingest-salesforce-data-into-amazon-s3-using-the-cdata-jdbc-custom-connector-with-aws-glue) - 
+ MongoDB: [Amazon DocumentDB(MongoDB 호환성 포함) 및 MongoDB를 사용하여 AWS Glue Spark ETL 작업 구축](https://aws.amazon.com/blogs/big-data/building-aws-glue-spark-etl-jobs-using-amazon-documentdb-with-mongodb-compatibility-and-mongodb/)
+ Amazon Relational Database Service (Amazon RDS): [Amazon RDS용 자체 JDBC 드라이버를 가져와 AWS Glue Spark ETL 작업 구축 ](https://aws.amazon.com/blogs/big-data/building-aws-glue-spark-etl-jobs-by-bringing-your-own-jdbc-drivers-for-amazon-rds/)
+ MySQL(JDBC): [https://github.com/aws-samples/aws-glue-samples/blob/master/GlueCustomConnectors/development/Spark/SparkConnectorMySQL.scala](https://github.com/aws-samples/aws-glue-samples/blob/master/GlueCustomConnectors/development/Spark/SparkConnectorMySQL.scala)

## AWS Marketplace용 AWS Glue 커넥터 개발
<a name="code-marketplace-connector"></a>

AWS 파트너는 사용자 정의 커넥터를 생성하고 AWS Marketplace에 업로드하여 AWS Glue 고객에게 판매할 수 있습니다.

커넥터 코드를 개발하는 프로세스는 사용자 정의 커넥터와 동일하지만 커넥터 코드를 업로드하고 확인하는 프로세스가 더 세부적입니다. GitHub 웹 사이트의 [AWS Marketplace용 커넥터 생성](https://github.com/aws-samples/aws-glue-samples/tree/master/GlueCustomConnectors/marketplace/publishGuide.pdf)의 지침을 참조하세요.

# AWS Glue Studio에서 커넥터와 연결을 사용하는 경우의 제한 사항
<a name="connector-restrictions"></a>

사용자 정의 커넥터 또는 AWS Marketplace의 커넥터를 사용하는 경우 다음 제한 사항에 유의하세요.
+ testConnection API는 사용자 정의 커넥터에 대해 생성된 연결에서 지원되지 않습니다.
+ Data Catalog 연결 암호 암호화는 사용자 정의 커넥터에서 지원되지 않습니다.
+ JDBC 커넥터를 사용하는 데이터 원본 노드에 대한 필터 조건자를 지정하는 경우 작업 북마크를 사용할 수 없습니다.
+  Marketplace 연결 생성은 AWS Glue Studio 사용자 인터페이스 외부에서 지원되지 않습니다.