기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Amazon DocumentDB 엘라스틱 클러스터 시작하기
이 시작하기 섹션에서는 첫 번째 엘라스틱 클러스터를 생성하고 쿼리하는 방법을 안내합니다. 엘라스틱 클러스터를 연결하고 시작하는 방법에는 여러 가지가 있습니다. 이 안내서는 Amazon Elastic Compute Cloud(Amazon EC2)를 사용하여 Amazon DocumentDB 탄력적 클러스터를 AWS Management Console에서 직접 연결하고 쿼리합니다.
설정
Amazon EC2 인스턴스에 대한 SSH 연결을 생성하여 로컬 시스템에서 Amazon DocumentDB에 연결하려면 Amazon EC2와 연결을 참조하세요
필수 조건
첫 번째 Amazon DocumentDB 클러스터를 작성하기 전에 다음 작업을 수행해야 합니다:
- Amazon Web Services(AWS) 계정 만들기
-
Amazon DocumentDB 사용을 시작하기 전에 Amazon Web Services(AWS) 계정이 있어야 합니다. AWS 계정은 무료입니다. 사용하는 서비스 및 리소스에 대해서만 비용을 지불하는 것입니다.
AWS 계정이 없는 경우 다음 절차에 따라 계정을 생성합니다.
AWS 계정에 가입
https://portal.aws.amazon.com/billing/signup
을 엽니다. 온라인 지시 사항을 따릅니다.
등록 절차 중 전화를 받고 전화 키패드로 확인 코드를 입력하는 과정이 있습니다.
AWS 계정 루트 사용자에 가입하면 AWS 계정 루트 사용자가 생성됩니다. 루트 사용자에게는 계정의 모든 AWS 서비스 및 리소스에 액세스할 권한이 있습니다. 보안 모범 사례는 사용자에게 관리 액세스 권한을 할당하고, 루트 사용자만 사용하여 루트 사용자 액세스 권한이 필요한 작업을 수행하는 것입니다.
- 필요한 AWS Identity and Access Management(IAM) 권한을 설정하세요.
-
클러스터, 인스턴스 및 클러스터 파라미터 그룹과 같은 Amazon DocumentDB 리소스를 관리하기 위해 액세스하려면 AWS에서 요청을 인증하는 데 사용할 수 있는 자격 증명이 필요합니다. 자세한 내용은 Amazon DocumentDB의 ID 및 액세스 관리(을)를 참조하세요.
-
AWS Management Console의 검색창에서, IAM을 입력하고 드롭다운 메뉴에서 IAM을 선택합니다.
-
IAM 콘솔에 들어가면 탐색 창에서 사용자를 선택합니다.
-
사용자 이름을 선택합니다.
-
권한 추가 버튼을 클릭합니다.
-
정책 직접 연결을 선택합니다.
-
검색 창에
AmazonDocDBFullAccess
을 입력하고 검색 결과에 표시되면 선택합니다. -
다음(Next) 버튼을 클릭합니다.
-
권한 추가 버튼을 클릭합니다.
-
- Amazon Virtual Private Cloud (Amazon VPC) 생성
-
AWS 계정에는 각 리전의 기본 VPC가 포함되어 있습니다. 이 단계는 기본 Amazon VPC 사용을 선택하는 경우에만 필요합니다. 이 경우 Amazon VPC 사용 설명서의 Amazon VPC 생성 주제의 단계를 완료합니다.
- Amazon EC2 인스턴스 시작하기
-
Amazon Elastic Compute Cloud 사용 설명서의 Amazon EC2 시작하기 주제의 1단계와 2단계를 완료합니다.
참고
Amazon EC2 인스턴스에 대해 생성된 보안 그룹의 이름과 ID를 기록합니다.
1단계: 엘라스틱 클러스터 생성
이 섹션에서는 다음 지침을 포함하여 AWS Management Console 또는 AWS CLI을 사용하여 새로운 엘라스틱 클러스터를 생성하는 방법을 설명합니다.
2단계: 인바운드 연결 활성화
Amazon DocumentDB 클러스터에 대한 액세스는 연결된 보안 그룹에 의해 제어됩니다. 이 단계에서는 Amazon DocumentDB 보안 그룹을 수정하여 탄력적 클러스터로 구성된 포트(기본값 27017)를 통해 Amazon EC2 인스턴스에서 통신을 허용합니다.
-
Amazon DocumentDB 관리 콘솔의 클러스터에서 클러스터를 찾습니다.
클러스터 식별자를 클릭하여 생성한 클러스터를 선택합니다.
연결 및 보안 탭의 보안 섹션에서 VPC 보안 그룹을 선택합니다.
그러면 Amazon EC2 관리 콘솔 보안 그룹 목록이 열립니다. 또는 Amazon EC2 관리 콘솔에 액세스하여 네트워크 및 보안 섹션에서 보안 그룹을 선택할 수 있습니다.
Amazon DocumentDB(기본값 ) 보안 그룹을 선택합니다.
-
인바운드 규칙 탭을 선택한 다음(창 하단으로 스크롤해야 할 수 있음) 인바운드 규칙 편집을 선택합니다.
-
인바운드 규칙 편집에서 규칙 추가를 선택합니다.
포트 범위에
27017
를 입력합니다.소스를 사용자 지정으로 두고 에서 생성한 EC2 인스턴스에서 기록한 보안 그룹 값을 검색합니다필수 조건.
규칙 저장을 선택합니다.
3단계: mongo 쉘 설치
필수 조건에서 생성한 Amazon EC2 인스턴스에 mongo 쉘을 설치합니다. mongo 쉘은 DocumentDB 클러스터에 연결하고 쿼리하는 데 사용하는 명령줄 유틸리티입니다.
Amazon EC2 인스턴스에 연결하고 명령 프롬프트에서 다음 명령을 사용하여 리포지토리 파일을 생성합니다.
echo -e "[mongodb-org-5.0] \nname=MongoDB Repository\nbaseurl=https://repo.mongodb.org/yum/amazon/2023/mongodb-org/5.0/x86_64/\ngpgcheck=1 \nenabled=1 \ngpgkey=https://pgp.mongodb.com/server-5.0.asc" | sudo tee /etc/yum.repos.d/mongodb-org-5.0.repo
완료되면 다음 명령을 사용하여 mongo 쉘을 설치합니다:
sudo yum install -y mongodb-org-shell
4단계: 엘라스틱 클러스터에 연결
2단계에서 설치한 mongo 쉘을 사용하여 클러스터에 연결합니다.
-
Amazon DocumentDB 관리 콘솔의 클러스터에서 클러스터의 위치를 찾습니다. 역할별로 정렬하면 엘라스틱 클러스터 역할을 가진 모든 클러스터가 표시됩니다.
-
클러스터 식별자를 선택하여 생성한 클러스터를 선택합니다. 연결 및 보안에서 엔드포인트를 복사하여 Amazon EC2 환경에 붙여넣습니다.
-
연결되면 다음 출력과 유사한 결과가 나타날 것입니다.
5단계: 컬렉션 샤드, 데이터 삽입 및 쿼리
엘라스틱 클러스터는 Amazon DocumentDB에서 샤딩에 대한 지원을 추가합니다. 이제 클러스터에 연결되었으므로 클러스터를 샤딩, 데이터를 삽입하고 몇 가지 쿼리를 실행할 수 있습니다.
-
컬렉션을 샤드하려면 다음을 입력합니다.
sh.shardCollection("db.Employee1" , { "Employeeid" : "hashed" })
-
단일 문서를 삽입하려면 다음을 입력합니다:
db.Employee1.insert({"Employeeid":1, "Name":"Joe", "LastName": "Bruin", "level": 1 })
다음 결과가 표시됩니다:
WriteResult({ "nInserted" : 1 })
-
작성한 문서를 읽으려면
findOne()
명령을 입력합니다(단일 문서만 반환함).db.Employee1.findOne()
다음 결과가 표시됩니다:
{ "_id" : ObjectId("61f344e0594fe1a1685a8151"), "EmployeeID" : 1, "Name" : "Joe", "LastName" : "Bruin", "level" : 1 }
-
쿼리를 몇 개 더 수행하려면 게임 프로필 사용 사례를 고려하세요. 먼저 "직원"이라는 제목이 붙은 컬렉션에 몇 개의 항목을 삽입합니다. 다음을 입력합니다.
db.Employee1.insertMany([ { "Employeeid" : 1, "name" : "Matt", "lastname": "Winkle", "level": 12}, { "Employeeid" : 2, "name" : "Frank", "lastname": "Chen", "level": 2}, { "Employeeid" : 3, "name" : "Karen", "lastname": "William", "level": 7}, { "Employeeid" : 4, "name" : "Katie", "lastname": "Schaper", "level": 3} ])
다음 결과가 표시됩니다:
{ "acknowledged" : true, "insertedIds" : [ 1, 2, 3, 4 ] }
-
find
() 명령을 사용하여 프로필 컬렉션의 모든 문서를 반환합니다.db.Employee1.find()
4단계에서 입력한 데이터가 표시됩니다.
-
단일 문서를 쿼리하려면 필터(예: "Katie")를 포함하세요. 다음을 입력합니다.
db.Employee1.find({name: "Katie"})
다음 결과가 표시됩니다:
{ "_id" : 4, "name" : "Katie", "lastname": "Schaper", "level": 3}
-
프로필을 찾아 수정하려면
findAndModify
명령을 입력합니다. 이 예에서는 직원 "Matt"에게 더 높은 레벨인 "14"가 지정되었습니다.db.Employee1.findAndModify({ query: { "Employeeid" : 1, "name" : "Matt"}, update: { "Employeeid" : 1, "name" : "Matt", "lastname" : "Winkle", "level" : 14 } })
다음 결과가 표시됩니다(레벨은 아직 변경되지 않음).
{ "_id" : 1, "name" : "Matt", "lastname" : "Winkle", "level" : 12, }
-
레벨 증가를 확인하려면 다음 쿼리를 입력합니다:
db.Employee1.find({name: "Matt"})
다음 결과가 표시됩니다:
{ "_id" : 1, "name" : "Matt", "lastname" : "winkle", "level" : 14 }