

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

# Amazon DocumentDB 엘라스틱 클러스터 시작하기
<a name="elastic-get-started"></a>

이 시작하기 섹션에서는 첫 번째 엘라스틱 클러스터를 생성하고 쿼리하는 방법을 안내합니다.

Amazon DocumentDB에 연결하고 이를 통해 시작하는 방법에는 여러 가지가 있습니다. 다음 절차는 사용자가 강력한 도큐먼트 데이터베이스를 사용하여 시작할 수 있는 가장 빠르고 간단하며 쉬운 방법입니다. 이 가이드에서는 [AWS CloudShell](https://docs.aws.amazon.com/cloudshell/latest/userguide/welcome.html)을 사용하여 AWS Management Console에서 직접 Amazon DocumentDB 클러스터를 연결하고 쿼리합니다. AWS 프리 티어 자격이 있는 신규 고객은 Amazon DocumentDB 및 CloudShell을 무료로 사용할 수 있습니다. AWS CloudShell 환경 또는 Amazon DocumentDB 탄력적 클러스터가 프리 티어 이외의 리소스를 사용하는 경우 해당 리소스에 대한 일반 AWS 요금이 부과됩니다. 이 안내서를 통해 5분 이내에 Amazon DocumentDB를 시작할 수 있습니다.

**Topics**
+ [사전 조건](#elastic-clusters-prerequisites)
+ [1단계: 엘라스틱 클러스터 생성](#elastic-get-started-clusters)
+ [2단계: 탄력적 클러스터에 연결](#ec-gs-connect)
+ [3단계: 컬렉션 샤드, 데이터 삽입 및 쿼리](#elastic-get-started-shard)
+ [4단계: 탐색](#ec-gs-congrats)

## 사전 조건
<a name="elastic-clusters-prerequisites"></a>

첫 번째 Amazon DocumentDB 클러스터를 작성하기 전에 다음 작업을 수행해야 합니다:

**Amazon Web Services(AWS) 계정 만들기**  
Amazon DocumentDB 사용을 시작하기 전에 Amazon Web Services(AWS) 계정이 있어야 합니다. AWS 계정은 무료입니다. 사용하는 서비스 및 리소스에 대해서만 비용을 지불하는 것입니다.  
이 없는 경우 다음 단계를 AWS 계정완료하여 생성합니다.  

**에 가입하려면 AWS 계정**

1. [https://portal.aws.amazon.com/billing/signup](https://portal.aws.amazon.com/billing/signup)을 엽니다.

1. 온라인 지시 사항을 따르세요.

   등록 절차 중 전화 또는 텍스트 메시지를 받고 전화 키패드로 확인 코드를 입력하는 과정이 있습니다.

   에 가입하면 AWS 계정*AWS 계정 루트 사용자*가 생성됩니다. 루트 사용자에게는 계정의 모든 AWS 서비스 및 리소스에 액세스할 권한이 있습니다. 보안 모범 사례는 사용자에게 관리 액세스 권한을 할당하고, 루트 사용자만 사용하여 [루트 사용자 액세스 권한이 필요한 작업](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks)을 수행하는 것입니다.

**필요한 AWS Identity and Access Management (IAM) 권한을 설정합니다.**  
클러스터, 인스턴스 및 클러스터 파라미터 그룹과 같은 Amazon DocumentDB 리소스를 관리하기 위한 액세스에는가 요청을 인증하는 데 사용할 AWS 수 있는 자격 증명이 필요합니다. 자세한 내용은 [Amazon DocumentDB의 ID 및 액세스 관리](security-iam.md) 단원을 참조하십시오.  

1. 의 검색 창에 IAM을 AWS Management Console입력하고 드롭다운 메뉴에서 **IAM**을 선택합니다.

1. IAM 콘솔에 들어가면 탐색 창에서 **사용자**를 선택합니다.

1. 사용자 이름을 선택합니다.

1. **Add permissions(권한 추가)**를 클릭합니다.

1. **정책 직접 연결**을 선택합니다.

1. 검색 창에 `AmazonDocDBElasticFullAccess`을 입력하고 검색 결과에 표시되면 선택합니다.

1. **다음**을 클릭합니다.

1. **Add permissions(권한 추가)**를 클릭합니다.

****  
 AWS 계정에는 각 리전에 기본 VPC가 포함되어 있습니다. Amazon VPC를 사용하기로 선택한 경우 *Amazon VPC 사용 설명서*에서 [Amazon VPC 생성](https://docs.aws.amazon.com/vpc/latest/userguide/create-vpc.html) 주제의 단계를 완료합니다.

## 1단계: 엘라스틱 클러스터 생성
<a name="elastic-get-started-clusters"></a>

이 섹션에서는 AWS CLI 다음 지침에 따라 AWS Management Console 또는를 사용하여 새로운 탄력적 클러스터를 생성하는 방법을 설명합니다.

------
#### [ Using the AWS Management Console ]

 AWS Management Console을 사용하여 엘라스틱 클러스터 구성을 생성하려면:

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

1. **Amazon DocumentDB 관리 콘솔**의 **클러스터**에서 **생성**을 선택합니다.  
![\[시작점으로 클러스터가 없음을 보여주는 탄력적 클러스터 테이블입니다.\]](http://docs.aws.amazon.com/ko_kr/documentdb/latest/developerguide/images/ec-gs-start.png)

1. **Amazon DocumentDB 클러스터 생성** 페이지의 **클러스터 유형** 섹션에서 **탄력적 클러스터**를 선택합니다.  
![\[인스턴스 기반 클러스터 및 탄력적 클러스터 선택을 보여주는 탄력적 클러스터의 클러스터 유형 대화 상자입니다.\]](http://docs.aws.amazon.com/ko_kr/documentdb/latest/developerguide/images/ec-gs-type.png)

1. **구성** 섹션에서 다음을 구성합니다.

   1. **클러스터 이름** 필드에 고유한 클러스터 식별자를 입력합니다(필드 아래의 이름 지정 요구 사항 준수).

   1. **샤드 수** 필드에서, 클러스터에 포함하려는 샤드 수를 입력합니다. 클러스터당 최대 샤드 수는 32개입니다.
**참고**  
각 샤드마다 두 개의 노드가 배포됩니다. 두 노드의 샤드 용량은 동일합니다.

   1. **샤드 인스턴스 수** 필드에서 각 샤드와 연결할 복제본 인스턴스 수를 선택합니다. 최대 샤드 인스턴스 수는 16개이며 1씩 증가합니다. 모든 복제본 인스턴스는 다음 필드에 정의된 것과 동일한 샤드 용량을 갖습니다. 테스트 목적으로는 기본값인 2로 충분합니다.
**참고**  
복제본 인스턴스의 수는 탄력적 클러스터의 모든 샤드에 적용됩니다. 샤드 인스턴스 수의 값이 1이면 쓰기 인스턴스가 하나라는 의미이며, 추가 인스턴스는 읽기에 사용할 수 있고 가용성을 개선하는 복제본입니다. 테스트 목적으로는 기본값인 2로 충분합니다.

   1. **샤드 용량** 필드에서 각 샤드 인스턴스에 연결할 가상 CPU(vCPU) 수를 선택합니다. 샤드 인스턴스당 최대 vCPU 수는 64개입니다. 허용되는 값은 2, 4, 8, 16, 32, 64입니다. 테스트 목적으로는 기본값인 2로 충분합니다.

   1. **가상 프라이빗 클라우드(VPC)** 필드에서 드롭다운 목록 중 VPC를 선택합니다.

   1. **서브넷** 및 **VPC 보안 그룹**의 경우, 기본값을 사용하거나 원하는 서브넷 3개와 **VPC 보안 그룹** 최대 3개(최소 1개)를 선택할 수 있습니다.  
![\[구성 가능한 필드를 보여주는 탄력적 클러스터 구성 대화 상자입니다.\]](http://docs.aws.amazon.com/ko_kr/documentdb/latest/developerguide/images/ec-gs-configuration.png)

1. **인증** 섹션의 **사용자 이름** 필드에 기본 사용자의 로그인 이름을 식별하는 문자열을 입력합니다.

   **암호** 필드에 지침을 준수하는 고유한 암호를 입력한 후 확인합니다.  
![\[사용자 이름 및 암호에 대한 입력 필드가 포함된 인증 섹션입니다.\]](http://docs.aws.amazon.com/ko_kr/documentdb/latest/developerguide/images/ec-gs-authentication.png)

1. **암호화** 섹션에서 기본 설정(**기본 키**)을 유지합니다.

   선택적으로 생성한 AWS KMS key ARN을 입력할 수 있습니다. 자세한 내용은 [Amazon DocumentDB 탄력적 클러스터에 대한 저장 데이터 암호화](elastic-encryption.md) 단원을 참조하십시오.
**중요**  
엘라스틱 클러스터에 대해 암호화를 활성화해야 합니다.

1. **백업** 섹션에서 백업 요구 사항에 따라 필드를 편집합니다. 테스트 목적으로 기본 설정을 유지할 수 있습니다.  
![\[클러스터 백업 기간을 구성하는 단계를 보여주는 백업 창의 스크린샷입니다.\]](http://docs.aws.amazon.com/ko_kr/documentdb/latest/developerguide/images/ec-gs-backup.png)

   1. **백업 보존 기간** - 목록에서 이 클러스터의 자동 백업을 삭제하지 않고 유지하는 일 수를 선택합니다.

   1. **백업 기간** - Amazon DocumentDB에서 이 클러스터를 백업하는 일별 시간과 기간을 설정합니다.

      1. 백업이 생성되는 시간과 기간을 구성하려면 **창 선택**을 선택합니다.

         **시작 시간** - 첫 번째 목록에서 자동 백업 시작 시간(UTC)을 선택합니다. 두 번째 목록에서 자동 백업 시작 시간의 분을 선택합니다.

         **기간** - 목록에서 자동 백업 생성에 할당된 시간 수를 선택합니다.

      1. Amazon DocumentDB가 백업이 생성되는 시간과 기간을 선택하도록 하려면 **기본 설정 없음**을 선택합니다.

1. **유지 관리** 섹션에서 클러스터에 수정 사항 또는 패치를 적용할 날짜, 시간, 기간을 선택합니다. 테스트 목적으로 기본 설정을 유지할 수 있습니다.  
![\[유지 관리 기간 옵션을 보여주는 유지 관리 섹션입니다.\]](http://docs.aws.amazon.com/ko_kr/documentdb/latest/developerguide/images/ec-gs-maintenance.png)

1. **클러스터 생성**을 선택합니다.

이제 엘라스틱 클러스터를 프로비저닝하는 중입니다. 이 과정은 완료하는 데 최대 수분 소요될 수 있습니다. **클러스터** 목록에서 탄력적 클러스터 상태가 **사용 가능**으로 표시되면 클러스터에 연결할 수 있습니다.

------
#### [ Using the AWS CLI ]

를 사용하여 탄력적 클러스터를 생성하려면 다음 파라미터와 함께 `create-cluster` 작업을 AWS CLI사용합니다.
+ **--cluster-name** - 필수입니다. 생성시 입력했거나 마지막으로 수정한 엘라스틱 스케일 클러스터의 현재 이름.
+ **--shard-capacity** - 필수입니다. 각 샤드에 할당된 vCPU 개수입니다. 최대값은 64입니다. 허용되는 값은 2, 4, 8, 16, 32, 64입니다.
+ **--shard-count** - 필수입니다. 클러스터에 할당된 샤드 개수입니다. 최대 값은 32입니다.
+ **--shard-instance-count** - 선택 사항. 이 클러스터의 모든 샤드에 적용되는 복제본 인스턴스 수입니다. 최대 값은 16입니다.
+ **--admin-user-name** - 필수입니다. 관리자 사용자와 연결된 사용자 이름입니다.
+ **--admin-user-password** - 필수입니다. 관리자와 연결된 암호입니다.
+ **--auth-type** - 필수입니다. 엘라스틱 클러스터에 액세스하는 데 사용되는 암호를 가져올 위치를 결정하는 데 사용되는 인증 유형입니다. 유효한 형식은 `PLAIN_TEXT` 또는 `SECRET_ARN`입니다.
+ **--vpc-security-group-ids** - 선택 사항. 이 클러스터와 연결할 EC2 VPC 보안 그룹 목록을 구성합니다.
+ **--preferred-maintenance-window** - 선택 사항. 시스템 유지보수가 수행될 수 있는 주간 시간 범위를 UTC(Universal Coordinated Time)로 구성합니다.

  형식은 `ddd:hh24:mi-ddd:hh24:mi`입니다. 유효한 요일(ddd): 월, 화, 수, 목, 금, 토, 일

  기본값은 각 Amazon Web Services Region(아마존 웹 서비스 리전)의 8시간 블록에서 임의로 선택된 30분 창으로, 주 마다 임의의 요일에 발생합니다.

  최소 30분의 시간.
+ **--kms-key-id** - 선택 사항. 암호화된 클러스터의 KMS 키 식별자를 구성하세요.

  KMS 키 식별자는 AWS KMS 암호화 키의 Amazon 리소스 이름(ARN)입니다. 새 클러스터를 암호화하는 데 사용되는 KMS 암호화 키를 소유한 동일한 Amazon Web Services 계정을 사용하여 클러스터를 생성하는 경우, KMS 암호화 키에 대한 ARN 대신 KMS 키 별칭을 사용할 수 있습니다.

  암호화 키가 KmsKeyId에 지정되어 있지 않고 `StorageEncrypted` 파라미터가 참이면 Amazon DocumentDB는 기본 암호화 키를 사용합니다.
+ **--preferred-backup-window** - 선택 사항. 자동 백업이 생성되는 일일 선호 시간 범위입니다. 기본값은 각각에 대해 8시간 블록 시간 중에서 임의로 선택한 30분 기간입니다 AWS 리전.
+ **--backup-retention-period** - 선택 사항. 자동 백업이 보존되는 일수입니다. 기본값은 1입니다.
+ **--storage-encrypted** - 선택 사항. 클러스터의 암호화 여부를 구성합니다.

  `--no-storage-encrypted`은 클러스터가 암호화되지 않도록 지정합니다.
+ **--subnet-ids** - 선택 사항. 네트워크 서브넷 ID를 구성합니다.

다음 예제에서는 자신의 정보로 각각의 *사용자 입력 자리 표시자*를 바꿉니다.

**참고**  
다음 예에는 특정 KMS 키 생성이 포함됩니다. 기본 KMS 키를 사용하려면 `--kms-key-id` 파라미터를 포함하지 마세요.

Linux, macOS 또는 Unix의 경우:

```
aws docdb-elastic create-cluster \
     --cluster-name sample-cluster-123 \
     --shard-capacity 8 \
     --shard-count 4 \
     --shard-instance-count 3 \
     --auth-type PLAIN_TEXT \
     --admin-user-name testadmin \
     --admin-user-password testPassword \
     --vpc-security-group-ids ec-65f40350 \
     --kms-key-id arn:aws:docdb-elastic:us-east-1:477568257630:cluster/b9f1d489-6c3e-4764-bb42-da62ceb7bda2 \
     --subnet-ids subnet-9253c6a3, subnet-9f1b5af9 \
     --preferred-backup-window 18:00-18:30 \ 
     --backup-retention-period 7
```

Windows의 경우:

```
aws docdb-elastic create-cluster ^
     --cluster-name sample-cluster-123 ^
     --shard-capacity 8 ^
     --shard-count 4 ^
     --shard-instance-count 3 ^
     --auth-type PLAIN_TEXT ^
     --admin-user-name testadmin ^
     --admin-user-password testPassword ^
     --vpc-security-group-ids ec-65f40350 ^
     --kms-key-id arn:aws:docdb-elastic:us-east-1:477568257630:cluster/b9f1d489-6c3e-4764-bb42-da62ceb7bda2 ^
     --subnet-ids subnet-9253c6a3, subnet-9f1b5af9 \
     --preferred-backup-window 18:00-18:30 \ 
     --backup-retention-period 7
```

------

## 2단계: 탄력적 클러스터에 연결
<a name="ec-gs-connect"></a>

를 사용하여 Amazon DocumentDB 탄력적 클러스터에 연결합니다 AWS CloudShell.

1. Amazon DocumentDB 관리 콘솔의 **클러스터**에서 생성한 탄력적 클러스터를 찾습니다. 클러스터 옆의 확인란을 클릭하여 클러스터를 선택합니다.  
![\[탄력적 클러스터를 보여주는 Amazon DocumentDB 클러스터 관리 인터페이스입니다.\]](http://docs.aws.amazon.com/ko_kr/documentdb/latest/developerguide/images/ec-gs-cluster-new.png)

1. **작업** 드롭다운 메뉴 옆에 있는 **클러스터에 연결**을 클릭합니다. 이 버튼은 클러스터 옆의 확인란을 클릭한 후에만 활성화되며 클러스터의 상태는 **사용 가능**으로 표시됩니다. CloudShell **명령 실행** 화면이 나타납니다.

1. **새 환경 이름** 필드에 “테스트”와 같은 고유한 이름을 입력하고 **생성 및 실행**을 클릭합니다. VPC 환경 세부 정보는 Amazon DocumentDB 데이터베이스에 대해 자동으로 구성됩니다.  
![\[새 환경 이름을 요청하는 탄력적 클러스터 CloudShell 실행 명령 화면\]](http://docs.aws.amazon.com/ko_kr/documentdb/latest/developerguide/images/ec-gs-run-command.png)

1. 메시지가 표시되면 1단계: Amazon DocumentDB 탄력적 클러스터 생성(하위 5단계)에서 생성한 암호를 입력합니다.  
![\[사용자 암호를 요청하는 탄력적 클러스터 CloudShell 화면\]](http://docs.aws.amazon.com/ko_kr/documentdb/latest/developerguide/images/ec-gs-cs-password.png)

   암호를 입력한 후 프롬프트에 `direct: mongos] <env-name>>`이 표시되면 Amazon DocumentDB 클러스터에 성공적으로 연결된 것입니다.

**참고**  
흐름 문제 해결에 대한 자세한 내용은 [Amazon DocumentDB 문제 해결](https://docs.aws.amazon.com/documentdb/latest/developerguide/troubleshooting.html)을 참조하십시오.

## 3단계: 컬렉션 샤드, 데이터 삽입 및 쿼리
<a name="elastic-get-started-shard"></a>

엘라스틱 클러스터는 Amazon DocumentDB에서 샤딩에 대한 지원을 추가합니다. 이제 클러스터에 연결되었으므로 클러스터를 샤딩, 데이터를 삽입하고 몇 가지 쿼리를 실행할 수 있습니다.

1. 컬렉션을 샤드하려면 다음을 입력합니다.

   ```
   sh.shardCollection("db.Employee1" , { "Employeeid" : "hashed" })
   ```

1. 단일 문서를 삽입하려면 다음을 입력합니다:

   ```
   db.Employee1.insertOne({"Employeeid":1, "Name":"Joe", "LastName": "Bruin", "level": 1 })
   ```

   다음 결과가 표시됩니다:

   ```
   WriteResult({ "nInserted" : 1 })
   ```

1. 작성한 문서를 읽으려면 `findOne()` 명령을 입력합니다(단일 문서만 반환함).

   ```
   db.Employee1.findOne()
   ```

   다음 결과가 표시됩니다:

   ```
   {
   "_id" : ObjectId("61f344e0594fe1a1685a8151"),
   "EmployeeID" : 1,
   "Name" : "Joe",
   "LastName" : "Bruin",
   "level" : 1
   }
   ```

1. 쿼리를 몇 개 더 수행하려면 게임 프로필 사용 사례를 고려하세요. 먼저 "직원"이라는 제목이 붙은 컬렉션에 몇 개의 항목을 삽입합니다. 다음을 입력합니다.

   ```
   db.profiles.insertMany([ { "_id": 1, "name": "Matt", "status": "active", "level": 12, "score": 202 }, 
        { "_id": 2, "name": "Frank", "status": "inactive", "level": 2, "score": 9 }, 
        { "_id": 3, "name": "Karen", "status": "active", "level": 7, "score": 87 }, 
        { "_id": 4, "name": "Katie", "status": "active", "level": 3, "score": 27 }
   ])
   ```

   다음 결과가 표시됩니다:

   ```
   { acknowledged: true, 
        insertedIds: { 
           '0': ObjectId('679d02cd6b5a0581be78bcbd'),
           '1': ObjectId('679d02cd6b5a0581be78bcbe'),
           '2': ObjectId('679d02cd6b5a0581be78bcbf'),
           '3': ObjectId('679d02cd6b5a0581be78bcc0')
       }
   }
   ```

1. `find`() 명령을 사용하여 프로필 컬렉션의 모든 문서를 반환합니다.

   ```
   db.Employee.find()
   ```

   4단계에서 입력한 데이터가 표시됩니다.

1. 단일 문서를 쿼리하려면 필터(예: "Katie")를 포함하세요. 다음을 입력합니다.

   ```
   db.Employee.find({name: "Katie"})
   ```

    다음 결과가 표시됩니다:

   ```
   [ 
      { 
        _id: ObjectId('679d02cd6b5a0581be78bcc0'), 
        Employeeid: 4, 
        name: 'Katie', 
        lastname: 'Schaper', 
        level: 3 
      } 
   ]
   ```

1. 프로필을 찾아 수정하려면 `findAndModify` 명령을 입력합니다. 이 예에서는 직원 "Matt"에게 더 높은 레벨인 "14"가 지정되었습니다.

   ```
   db.Employee.findAndModify({     
       query: { "Employeeid" : 1, "name" : "Matt"},     
       update: { "Employeeid" : 1, "name" : "Matt", "lastname" : "Winkle", "level" : 14 } 
   })
   ```

   다음 결과가 표시됩니다(레벨은 아직 변경되지 않음).

   ```
   { 
      _id: ObjectId('679d02cd6b5a0581be78bcbd'), 
      Employeeid: 1, 
      name: 'Matt', 
      lastname: 'Winkle', 
      level: 12 
   }
   ```

1. 레벨 증가를 확인하려면 다음 쿼리를 입력합니다:

   ```
   db.Employee.find({name: "Matt"})
   ```

   다음 결과가 표시됩니다:

   ```
   [
      { 
      _id: ObjectId('679d02cd6b5a0581be78bcbd'), 
      Employeeid: 1, 
      name: 'Matt', 
      lastname: 'Winkle', 
      level: 14 
      }
   ]
   ```

## 4단계: 탐색
<a name="ec-gs-congrats"></a>

축하합니다\$1 Amazon DocumentDB 탄력적 클러스터에 대한 시작하기 절차를 성공적으로 완료했습니다.

다음 단계? 몇 가지 인기 있는 기능을 통해 이 데이터베이스를 최대한 활용하는 방법을 알아보십시오:
+  [Amazon DocumentDB 탄력적 클러스터 모범 사례](elastic-best-practices.md) 
+  [Amazon DocumentDB 탄력적 클러스터 관리](elastic-managing.md) 

**참고**  
이 시작 절차를 통해 생성한 탄력적 클러스터는 삭제하지 않는 한 계속 비용이 누적됩니다. 지침은 [엘라스틱 클러스터 삭제](elastic-managing.md#elastic-delete) 섹션을 참조하세요.