기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Amazon EC2 사용하여 Connect
이 단원에서는 Amazon EC2를 사용하여 Amazon DocumentDB (MongoDB 호환 가능) 클러스터를 시작하고 몽고 셸을 사용하여 클러스터와 상호 작용하는 방법을 설명합니다. 아래 비디오는 이 가이드의 단계를 보여줍니다.
사전 조건
Amazon DocumentDB 클러스터를 생성하기 전에 다음을 수행해야 합니다.
- Amazon Web Services (AWS) 계정 생성
-
Amazon DocumentDB를 사용하기 전에 먼저 Amazon Web Services (AWS) 계정이 있어야 합니다. AWS 계정은 무료입니다. 사용하는 서비스 및 리소스에 대해서만 비용을 지불하는 것입니다.
AWS 계정이 없는 경우 다음 절차에 따라 계정을 생성합니다.
AWS 계정에 가입
온라인 지시 사항을 따릅니다.
등록 절차 중 전화를 받고 전화 키패드를 사용하여 확인 코드를 입력하는 과정이 있습니다.
AWS 계정 루트 사용자에 가입하면 AWS 계정 루트 사용자가 생성됩니다. 루트 사용자에게는 계정의 모든 AWS 서비스 및 리소스에 액세스하는 권한이 있습니다. 보안 모범 사례는 관리 사용자에게 관리자 액세스 권한을 할당하고, 루트 사용자만 사용하여 루트 사용자 액세스 권한이 필요한 태스크를 수행하는 것입니다.
- 필요한AWS Identity and Access Management (IAM) 권한을 설정합니다.
-
클러스터, 인스턴스 및 클러스터 파라미터 그룹과 같은 Amazon DocumentDB 리소스를 관리하려면 요청을 인증하는 데 사용할AWS 수 있는 자격 증명이 필요합니다. 자세한 정보는 Amazon DocumentDB Docue에 대한 Identity and Access Management을 참조하세요.
-
의 검색 표시줄에 IAM을 입력하고 나타나는 드롭다운 메뉴에서 IAM을 선택합니다.AWS Management Console
-
IAM 콘솔에서 탐색 창에서 사용자를 선택합니다.
-
사용자 이름을 선택합니다.
-
권한 추가 버튼을 클릭합니다.
-
Attach existing policies directly(기존 정책 직접 연결)를 선택합니다.
-
검색
AmazonDocDBFullAccess
표시줄에 입력하고 검색 결과에 표시되면 선택합니다. -
하단에 있는 다음: 검토라고 표시된 파란색 버튼을 클릭합니다.
-
하단에 있는 권한 추가라고 표시된 파란색 버튼을 클릭합니다.
-
- Amazon Virtual Private Cloud (Amazon VPC) 생성
-
AWS 리전현재 위치에 따라 기본 VPC가 이미 생성되어 있을 수도 있고 그렇지 않을 수도 있습니다. 기본 VPC가 없는 경우 Amazon VPC 사용 설명서의 Amazon VPC 시작하기 1단계를 완료하십시오. 5분도 채 걸리지 않을 것입니다.
1단계: Amazon EC2 인스턴스 생성
이 단계에서는 동일한 지역 및 Amazon VPC Amazon EC2 인스턴스를 생성하여 나중에 Amazon DocumentDB 클러스터를 프로비저닝하는 데 사용합니다.
-
Amazon EC2 콘솔에서 인스턴스 시작을 선택합니다.
-
아마존 리눅스 2 AMI를 찾아 선택을 선택합니다.
-
t3.micro 인스턴스 유형을 선택합니다.
-
[Review and Launch] 를 선택하면 콘솔의 7단계: 인스턴스 시작 검토 페이지로 건너뛸 수 있습니다.
-
보안 그룹에서 보안 그룹 편집을 선택합니다.
-
기본값은 새 보안 그룹 만들기로 설정됩니다. 보안 그룹 이름 필드에 를 입력합니다
demoEC2
. -
유형을 SSH로 변경합니다. 그러면 포트 범위가 22로 자동 설정됩니다.
-
Source의 드롭다운 메뉴를 선택하고 My IP를 선택합니다.
참고
현재 IP 주소에서만 DemoEC2 보안 그룹에 액세스할 수 있습니다. IP 주소가 변경되면 보안 그룹을 업데이트해야 합니다.
-
이제 [검토 및 실행] 을 선택합니다. 이제 보안 그룹 섹션에 DemoEC2 보안 그룹이 보일 것입니다.
-
정보를 확인하고 Launch를 선택합니다.
-
기존 key pair 선택 또는 새 key pair 생성이라는 제목의 창이 표시됩니다. 형식은 다음과 같습니다.
Amazon EC2 key pair 페어를 제공해야 합니다. Amazon EC2 key pair 페어가 있어야 합니다.
-
key pair 선택하고 목록에서 key pair 선택합니다.
-
Amazon EC2 인스턴스에 로그인하려면 프라이빗 키 파일 (.pem 파일) 이 있어야 합니다.
Amazon EC2 key pair 페어가 있어야 합니다.
-
[Create a new key pair]를 선택합니다.
-
키 페어 이름 필드에 키 바의 이름을 입력합니다.
-
프라이빗 키 파일 (.pem 파일) 을 다운로드합니다. 나중에 Amazon EC2 인스턴스에 로그인할 때 이 파일이 필요합니다.
-
-
인스턴스 시작(Launch Instances)을 선택합니다.
2단계: 보안 그룹 만들기
이제 기본 Amazon VPC 새 보안 그룹을 생성합니다. 보안 그룹을demoDocDB
사용하면 Amazon EC2 인스턴스에서 포트 27017 (Amazon DocumentDB의 기본 포트) 에서 Amazon DocumentDB 클러스터에 연결할 수 있습니다.
-
Amazon EC2 콘솔의 네트워크 및 보안에서 보안 그룹을 선택합니다.
-
보안 그룹 생성을 선택합니다.
-
보안 그룹 이름(Security group name)에
demoDocDB
를 입력합니다. -
설명에 설명을 입력합니다.
-
VPC의 경우 기본 VPC의 사용을 수락합니다.
-
인바운드 규칙 섹션에서 규칙 추가를 선택합니다.
-
[Type]의 경우 [Custom TCP Rule]을 선택합니다.
-
포트 범위에 를 입력합니다
27017
. -
목적지에서 사용자 지정을 선택합니다. 옆의 필드에서 방금 호출한 보안 그룹을
demoEC2
검색합니다. Amazon EC2 콘솔에서demoEC2
소스 이름을 자동으로 채우려면 브라우저를 새로 고쳐야 할 수 있습니다. -
다른 모든 기본값을 적용하고 보안 그룹 생성을 선택합니다.
3단계: Amazon DocumentDB 클러스터 생성
Amazon EC2 인스턴스를 프로비저닝하는 동안 Amazon DocumentDB 클러스터를 생성합니다.
-
Amazon DocumentDB 콘솔로 이동하여 탐색 창에서 클러스터를 선택합니다.
-
Create(생성)를 선택합니다.
-
인스턴스 수에서 1을 선택합니다. 이렇게 하면 비용이 최소화됩니다. 기타 설정은 기본값을 유지합니다.
-
인증에 로그인 자격 증명을 입력합니다. 중요: 이후 단계에서 클러스터를 인증하려면 로그인 자격 증명이 필요합니다.
-
고급 설정 보기를 켜십시오.
-
네트워크 설정 섹션에서 Amazon VPC 보안 그룹의 경우 DemoDocDB를 선택합니다.
-
클러스터 생성(Create cluster)을 선택합니다.
4단계: Amazon EC2 인스턴스에 Connect
mongo 셸을 설치하려면 먼저 Amazon EC2 인스턴스에 연결해야 합니다. mongo 셸을 설치하면 Amazon DocumentDB 클러스터에 연결하고 쿼리할 수 있습니다. 다음 단계를 완료합니다.
-
Amazon EC2 콘솔에서 인스턴스로 이동하여 방금 생성한 인스턴스가 실행 중인지 확인합니다. 그럴 경우 해당 인스턴스를 선택합니다.
-
Connect(연결)를 선택합니다.
-
Connect 방법에는 Amazon EC2 인스턴스 연결, 세션 관리자 또는 SSH 클라이언트의 세 가지 옵션이 표시됩니다. 하나를 선택하고 지침을 따라야 합니다.
참고
이 안내를 시작한 후 IP 주소가 변경되었거나 나중에 해당 환경으로 돌아오는 경우demoEC2
보안 그룹 인바운드 규칙을 업데이트하여 새 API 주소의 인바운드 트래픽을 활성화해야 합니다.
5단계: 몽고 셸 설치
이제 Amazon DocumentDB 클러스터를 연결하고 쿼리하는 데 사용하는 명령줄 유틸리티인 mongo 셸을 설치할 수 있습니다. 아래 지침에 따라 사용 중인 운영 체제에 mongo 셸을 설치합니다.
Amazon Linux에서 mongo 셸을 설치하려면
-
리포지토리 파일을 생성합니다. EC2 인스턴스의 명령줄에서 follow 명령을 실행합니다.
echo -e "[mongodb-org-4.0] \nname=MongoDB Repository\nbaseurl=https://repo.mongodb.org/yum/amazon/2013.03/mongodb-org/4.0/x86_64/\ngpgcheck=1 \nenabled=1 \ngpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc" | sudo tee /etc/yum.repos.d/mongodb-org-4.0.repo
-
작업이 완료되면 다음 명령을 실행하여 mongo 셸을 설치합니다.
sudo yum install -y mongodb-org-shell
Ubuntu 18.04에서 mongo 셸을 설치하려면
-
패키지 관리 시스템에서 사용할 퍼블릭 키를 가져옵니다.
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5
-
Ubuntu 버전에 맞는 명령을 사용하여 MongoDB의 목록 파일
/etc/apt/sources.list.d/mongodb-org-3.6.list
를 생성합니다.Ubuntu 18.04
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.6 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.6.list
참고
위의 명령은 Bionic과 Xenial 모두에 대한 mongo 3.6 셸을 설치합니다.
-
다음 명령을 사용하여 로컬 패키지 데이터베이스를 다시 로드합니다.
sudo apt-get update
-
MongoDB 셸을 설치합니다.
sudo apt-get install -y mongodb-org-shell
Ubuntu 시스템에서 이전 버전의 MongoDB를 설치하는 방법에 대한 자세한 내용은 Install MongoDB Community Edition on Ubuntu
다른 운영 체제에서 mongo 셸을 설치하려면 MongoDB 설명서의 MongoDB Community Edition 설치
6단계: Amazon DocumentDB TLS 관리
다음 코드를 사용하여 Amazon DocumentDB용 CA 인증서를 다운로드합니다.wget https://truststore.pki.rds.amazonaws.com/global/global-bundle.pem
참고
전송 계층 보안 (TLS) 은 모든 새 Amazon DocumentDB 클러스터에 대해 기본적으로 활성화됩니다. 자세한 내용은 Amazon DocumentDB 클러스터 TLS 설정 관리를 참조하세요.
7단계: Amazon DocumentDB 클러스터에 Connect
-
Amazon Document DB 콘솔의 클러스터에서 클러스터를 찾습니다. 생성한 클러스터를 선택합니다.
-
연결 상자로 이동합니다. 형식은 다음과 같아야 합니다.
제공된 연결 문자열을 복사합니다.
터미널에 붙여넣은 후 다음과 같이 변경하십시오. 먼저 문자열에 올바른 사용자 이름이 있는지 확인하십시오. 그런 다음 연결할 때 mongo 셸에서 암호를 입력하라는 메시지가
<insertYourPassword>
표시되도록 생략하십시오. 연결 문자열은 다음과 같아야 합니다.mongo --ssl host docdb-2020-02-08-14-15-11. cluster.region.docdb.amazonaws.com:27107 --sslCAFile global-bundle.pem --username demoUser --password
-
이제 터미널에서 Enter 키를 누릅니다. 이제 비밀번호를 입력하라는 메시지가 표시됩니다. 암호를 입력합니다.
-
암호를 입력하고
rs0:PRIMARY>
프롬프트가 표시되면 Amazon DocumentDB 클러스터에 성공적으로 연결된 것입니다.
연결에 문제가 있나요? Amazon DocumentDB 문제 해결을 참조하십시오.
8단계: 데이터 삽입 및 쿼리
이제 클러스터에 연결되었으므로 몇 가지 쿼리를 실행하여 문서 데이터베이스 사용에 익숙해질 수 있습니다.
-
단일 문서를 삽입하려면 다음을 입력합니다.
db.collection.insert({"hello":"DocumentDB"})
-
출력은 다음과 같습니다.
WriteResult({ "nInserted" : 1 })
-
findOne()
명령으로 작성한 문서는 한 개의 문서만 반환하므로 읽을 수 있습니다. 다음을 입력합니다.db.collection.findOne()
-
출력은 다음과 같습니다.
{ "_id" : ObjectId("5e401fe56056fda7321fbd67"), "hello" : "DocumentDB" }
-
쿼리를 몇 개 더 수행하려면 게임 프로필 사용 사례를 고려해 보십시오. 먼저 제목의 컬렉션에 몇 개의 항목을
profiles
삽입합니다. 다음을 입력합니다.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" : [ 1, 2, 3, 4 ] }
-
find()
명령을 사용하여 프로필 컬렉션의 모든 문서를 반환할 수 있습니다. 다음을 입력합니다.db.profiles.find()
-
5단계에서 입력한 데이터와 일치하는 출력이 표시됩니다.
-
필터를 사용하여 단일 문서에 대한 쿼리를 사용하십시오. 다음을 입력합니다.
db.profiles.find({name: "Katie"})
-
출력은 다음과 같습니다.
{ "_id" : 4, "name" : "Katie", "status": "active", "level": 3, "score":27}
-
이제
findAndModify
명령을 사용하여 프로필을 찾고 수정해 보겠습니다. 다음 코드를 사용하여 사용자 Matt에게 10점을 추가로 부여합니다.db.profiles.findAndModify({ query: { name: "Matt", status: "active"}, update: { $inc: { score: 10 } } })
-
다음과 같은 결과를 얻을 수 있습니다 (참고로 그의 점수는 아직 올라가지 않았습니다).
{ "_id" : 1, "name" : "Matt", "status" : "active", "level" : 12, "score" : 202 }
-
다음 쿼리를 통해 그의 점수가 변경되었는지 확인할 수 있습니다.
db.profiles.find({name: "Matt"})
-
출력은 다음과 같습니다.
{ "_id" : 1, "name" : "Matt", "status" : "active", "level" : 12, "score" : 212 }
9단계: 살펴보기
축하합니다! Amazon DocumentDB에 대한 퀵 스타트 안내서를 성공적으로 완료했습니다.
다음은 무엇일까요? 몇 가지 인기 있는 기능과 함께 이 강력한 데이터베이스를 최대한 활용하는 방법을 알아보십시오.
참고
비용을 절감하려면 Amazon DocumentDB 클러스터를 중지하여 비용을 절감하거나 클러스터를 삭제할 수 있습니다. 기본적으로 30분 동안 활동이 없으면 해당AWS Cloud9 환경에서 기본 Amazon EC2 인스턴스가 중지됩니다.