

# AWS Glue Studio에서 MongoDB에 연결
<a name="connecting-to-data-mongodb"></a>

 AWS Glue에서는 MongoDB를 기본으로 지원합니다. AWS Glue Studio에서는 MongoDB에 연결하고, 데이터 통합 작업을 작성하며, AWS Glue Studio 서버리스 Spark 런타임에서 실행할 수 있는 시각적 인터페이스를 제공합니다.

**Topics**
+ [MongoDB 연결 생성](creating-mongodb-connection.md)
+ [MongoDB 소스 노드 생성](creating-mongodb-source-node.md)
+ [MongoDB 대상 노드 생성](creating-mongodb-target-node.md)
+ [고급 옵션](#creating-mongodb-connection-advanced-options)

# MongoDB 연결 생성
<a name="creating-mongodb-connection"></a>

**사전 조건**:
+ MongoDB 인스턴스가 Amazon VPC에 있는 경우, 퍼블릭 인터넷을 통과하는 트래픽 없이 AWS Glue 작업이 MongoDB 인스턴스와 통신할 수 있도록 Amazon VPC를 구성하십시오.

  Amazon VPC에서 작업을 실행하는 동안 AWS Glue가 사용할 **VPC**, **서브넷** 및 **보안 그룹**을 식별하거나 생성합니다. 또한 MongoDB 인스턴스와 이 위치 간의 네트워크 트래픽을 허용하도록 Amazon VPC를 구성해야 합니다. 네트워크 레이아웃에 따라 보안 그룹 규칙, 네트워크 ACL, NAT 게이트웨이 및 피어링 연결을 변경해야 할 수도 있습니다.

**MongoDB 연결 구성 방법:**

1. 대안으로 AWS Secrets Manager에서 MongoDB 보안 인증을 사용하여 보안 암호를 생성할 수 있습니다. Secrets Manager에서 보안 암호를 생성하려면 AWS Secrets Manager 설명서의 [Create an AWS Secrets Manager secret](https://docs.aws.amazon.com//secretsmanager/latest/userguide/create_secret.html)에서 제공하는 자습서를 따릅니다. 보안 암호를 생성한 후에는 다음 단계를 위해 보안 암호 이름, *secretName*을 유지합니다.
   + **키/값 페어**를 선택하면 값 *mongodbUser*이 포함된 키 `username`에 대한 페어를 생성합니다.

     **키/값 페어**를 선택하면 값 *mongodbPass*가 포함된 키 `password`에 대한 페어를 생성합니다.

1. AWS Glue 콘솔에서 [AWS Glue 연결 추가](console-connections.md)의 단계에 따라 연결을 생성합니다. 연결을 생성한 후에는 AWS Glue에서 이용하기 위해 연결 이름 *connectionName*을 유지합니다.
   + **연결 유형**을 선택할 때에는 **MongoDB** 또는 **MongoDB Atlas**를 선택합니다.
   + **MongoDB URL** 또는 **MongoDB Atlas URL**을 선택할 때에는 MongoDB 인스턴스의 호스트 이름을 제공하십시오.

     MongoDB URL은 `mongodb://mongoHost:mongoPort/mongoDBname` 형식으로 제공됩니다.

     MongoDB Atlas URL은 `mongodb+srv://mongoHost/mongoDBname` 형식으로 제공됩니다.
   + Secrets Manager 암호를 생성하기로 선택한 경우 AWS Secrets Manager **보안 인증 정보 유형**을 선택합니다.

     그런 다음 **AWS 암호**에 *secretName*을 입력합니다.
   + **사용자 이름과 비밀번호**를 제공하기로 선택한 경우 *mongodbUser*와 *mongodbPass*를 제공하십시오.

1. 다음과 같은 상황에서는 추가 구성이 필요할 수도 있습니다.
   + 

     Amazon VPC에서 AWS에 호스팅된 MongoDB 인스턴스의 경우
     + MongoDB 보안 보안 인증 정보를 정의하는 AWS Glue 연결에 Amazon VPC 연결 정보를 제공해야 합니다. 연결을 만들거나 업데이트할 때 **네트워크 옵션**에서 **VPC**, **서브넷** 및 **보안 그룹**을 설정합니다.

AWS Glue MongoDB 연결을 생성한 후에는 AWS Glue 작업을 실행하기 전에 다음 단계를 수행해야 합니다.
+ 비주얼 에디터에서 작업을 수행할 때는 AWS Glue 작업에 대한 Amazon VPC 연결 정보를 제공해야 MongoDB에 연결할 수 있습니다. Amazon VPC에서 적합한 위치를 식별하여 MongoDB AWS Glue 연결에 제공하십시오.
+ Secrets Manager 암호을 생성하기로 선택한 경우, AWS Glue 작업과 연결된 IAM 역할에 *secretName*을 읽을 수 있는 권한을 부여하십시오.

# MongoDB 소스 노드 생성
<a name="creating-mongodb-source-node"></a>

## 필수 전제 조건
<a name="creating-mongodb-source-node-prerequisites"></a>
+ 이전 섹션 [MongoDB 연결 생성](creating-mongodb-connection.md)에서 설명한 AWS Glue MongoDB 연결입니다.
+ Secrets Manager 암호를 생성하기로 선택한 경우 연결에 사용되는 암호를 읽을 수 있는 적절한 작업 권한이 있어야 합니다.
+ 읽으려는 MongoDB 컬렉션. 컬렉션에 대한 식별 정보가 필요합니다.

  MongoDB 컬렉션은 데이터베이스 이름 *mongodbName* 및 컬렉션 이름 *mongodbCollection*으로 식별됩니다.

## MongoDB 데이터 소스 추가
<a name="creating-mongodb-source-node-add"></a>

****데이터 소스 - MongoDB** 노드 추가 방법:**

1.  MongoDB 데이터 소스의 연결을 선택합니다. 생성했으므로 드롭다운에서 사용할 수 있을 것입니다. 연결을 생성해야 하는 경우 **MongoDB 연결 생성**을 선택합니다. 자세한 내용은 이전[MongoDB 연결 생성](creating-mongodb-connection.md) 섹션을 참조하세요.

    연결을 선택한 후에는 **속성 보기**를 클릭하여 연결 속성을 볼 수 있습니다.

1. **데이터베이스**를 선택합니다. *mongodbName*을 입력합니다.

1. **컬렉션**을 선택하십시오. *mongodbCollection*을 입력하십시오.

1. **파티셔너**, **파티션 크기(MB)**, **파티션 키**를 선택합니다. 파티션 파라미터에 대한 자세한 내용은 [소스로서의 "connectionType": "mongodb"](aws-glue-programming-etl-connect-mongodb-home.md#etl-connect-mongodb-as-source) 섹션을 참조하십시오.

1.  **사용자 지정 MongoDB 속성**에서 필요한 경우 파라미터와 값을 입력합니다.

# MongoDB 대상 노드 생성
<a name="creating-mongodb-target-node"></a>

## 필수 전제 조건
<a name="creating-mongodb-target-node-prerequisites"></a>
+ 이전 섹션 [MongoDB 연결 생성](creating-mongodb-connection.md)에서 설명한 대로 AWS Secrets Manager 암호로 구성된 AWS Glue MongoDB 연결입니다.
+ 연결에 사용되는 보안 암호를 읽을 작업에 대한 적절한 권한.
+ 쓰고 싶은 MongoDB 테이블, *tableName*입니다.

## MongoDB 데이터 대상 추가
<a name="creating-mongodb-target-node-add"></a>

****데이터 대상 - MongoDB** 노드 추가 방법:**

1.  MongoDB 데이터 소스의 연결을 선택합니다. 생성했으므로 드롭다운에서 사용할 수 있을 것입니다. 연결을 생성해야 하는 경우 **MongoDB 연결 생성**을 선택합니다. 자세한 내용은 이전[MongoDB 연결 생성](creating-mongodb-connection.md) 섹션을 참조하세요.

    연결을 선택한 후에는 **속성 보기**를 클릭하여 연결 속성을 볼 수 있습니다.

1. **데이터베이스**를 선택합니다. *mongodbName*을 입력합니다.

1. **컬렉션**을 선택하십시오. *mongodbCollection*을 입력하십시오.

1. **파티셔너**, **파티션 크기(MB)**, **파티션 키**를 선택합니다. 파티션 파라미터에 대한 자세한 내용은 [소스로서의 "connectionType": "mongodb"](aws-glue-programming-etl-connect-mongodb-home.md#etl-connect-mongodb-as-source) 섹션을 참조하십시오.

1. 원하는 경우 **쓰기 재시도**를 선택합니다.

1.  **사용자 지정 MongoDB 속성**에서 필요한 경우 파라미터와 값을 입력합니다.

## 고급 옵션
<a name="creating-mongodb-connection-advanced-options"></a>

MongoDB 노드를 생성할 때 고급 옵션을 제공할 수 있습니다. 이 옵션은 Spark 스크립트에 대한 AWS Glue를 프로그래밍할 때 사용할 수 있는 옵션과 동일합니다.

[MongoDB 연결 옵션 참조](aws-glue-programming-etl-connect-mongodb-home.md#aws-glue-programming-etl-connect-mongodb)를 참조하세요.