

# 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*을 읽을 수 있는 권한을 부여하십시오.