Amazon EC2 사용하여 Connect - Amazon DocumentDB

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

Amazon EC2 사용하여 Connect

이 단원에서는 Amazon EC2를 사용하여 Amazon DocumentDB (MongoDB 호환 가능) 클러스터를 시작하고 몽고 셸을 사용하여 클러스터와 상호 작용하는 방법을 설명합니다. 아래 비디오는 이 가이드의 단계를 보여줍니다.

사전 조건

Amazon DocumentDB 클러스터를 생성하기 전에 다음을 수행해야 합니다.

Amazon Web Services (AWS) 계정 생성

Amazon DocumentDB를 사용하기 전에 먼저 Amazon Web Services (AWS) 계정이 있어야 합니다. AWS 계정은 무료입니다. 사용하는 서비스 및 리소스에 대해서만 비용을 지불하는 것입니다.

AWS 계정이 없는 경우 다음 절차에 따라 계정을 생성합니다.

AWS 계정에 가입
  1. https://portal.aws.amazon.com/billing/signup을 엽니다.

  2. 온라인 지시 사항을 따릅니다.

    등록 절차 중 전화를 받고 전화 키패드를 사용하여 확인 코드를 입력하는 과정이 있습니다.

    AWS 계정 루트 사용자에 가입하면 AWS 계정 루트 사용자가 생성됩니다. 루트 사용자에게는 계정의 모든 AWS 서비스 및 리소스에 액세스하는 권한이 있습니다. 보안 모범 사례는 관리 사용자에게 관리자 액세스 권한을 할당하고, 루트 사용자만 사용하여 루트 사용자 액세스 권한이 필요한 태스크를 수행하는 것입니다.

필요한AWS Identity and Access Management (IAM) 권한을 설정합니다.

클러스터, 인스턴스 및 클러스터 파라미터 그룹과 같은 Amazon DocumentDB 리소스를 관리하려면 요청을 인증하는 데 사용할AWS 수 있는 자격 증명이 필요합니다. 자세한 정보는 Amazon DocumentDB Docue에 대한 Identity and Access Management을 참조하세요.

  1. 의 검색 표시줄에 IAM을 입력하고 나타나는 드롭다운 메뉴에서 IAM을 선택합니다.AWS Management Console

  2. IAM 콘솔에서 탐색 창에서 사용자를 선택합니다.

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

  4. 권한 추가 버튼을 클릭합니다.

  5. Attach existing policies directly(기존 정책 직접 연결)를 선택합니다.

  6. 검색AmazonDocDBFullAccess 표시줄에 입력하고 검색 결과에 표시되면 선택합니다.

  7. 하단에 있는 다음: 검토라고 표시된 파란색 버튼을 클릭합니다.

  8. 하단에 있는 권한 추가라고 표시된 파란색 버튼을 클릭합니다.

Amazon Virtual Private Cloud (Amazon VPC) 생성

AWS 리전현재 위치에 따라 기본 VPC가 이미 생성되어 있을 수도 있고 그렇지 않을 수도 있습니다. 기본 VPC가 없는 경우 Amazon VPC 사용 설명서의 Amazon VPC 시작하기 1단계를 완료하십시오. 5분도 채 걸리지 않을 것입니다.

1단계: Amazon EC2 인스턴스 생성

이 단계에서는 동일한 지역 및 Amazon VPC Amazon EC2 인스턴스를 생성하여 나중에 Amazon DocumentDB 클러스터를 프로비저닝하는 데 사용합니다.

  1. Amazon EC2 콘솔에서 인스턴스 시작을 선택합니다.

  2. 아마존 리눅스 2 AMI를 찾아 선택을 선택합니다.

  3. t3.micro 인스턴스 유형을 선택합니다.

  4. [Review and Launch] 를 선택하면 콘솔의 7단계: 인스턴스 시작 검토 페이지로 건너뛸 수 있습니다.

  5. 보안 그룹에서 보안 그룹 편집을 선택합니다.

  6. 기본값은 새 보안 그룹 만들기로 설정됩니다. 보안 그룹 이름 필드에 를 입력합니다demoEC2.

  7. 유형을 SSH로 변경합니다. 그러면 포트 범위가 22로 자동 설정됩니다.

  8. Source의 드롭다운 메뉴를 선택하고 My IP를 선택합니다.

    참고

    현재 IP 주소에서만 DemoEC2 보안 그룹에 액세스할 수 있습니다. IP 주소가 변경되면 보안 그룹을 업데이트해야 합니다.

  9. 이제 [검토 및 실행] 을 선택합니다. 이제 보안 그룹 섹션에 DemoEC2 보안 그룹이 보일 것입니다.

  10. 정보를 확인하고 Launch를 선택합니다.

  11. 기존 key pair 선택 또는 새 key pair 생성이라는 제목의 창이 표시됩니다. 형식은 다음과 같습니다.

    Amazon EC2 key pair 페어를 제공해야 합니다. Amazon EC2 key pair 페어가 있어야 합니다.

    1. key pair 선택하고 목록에서 key pair 선택합니다.

    2. Amazon EC2 인스턴스에 로그인하려면 프라이빗 키 파일 (.pem 파일) 이 있어야 합니다.

    Amazon EC2 key pair 페어가 있어야 합니다.

    1. [Create a new key pair]를 선택합니다.

    2. 페어 이름 필드에 키 바의 이름을 입력합니다.

    3. 프라이빗 키 파일 (.pem 파일) 을 다운로드합니다. 나중에 Amazon EC2 인스턴스에 로그인할 때 이 파일이 필요합니다.

  12. 인스턴스 시작(Launch Instances)을 선택합니다.

2단계: 보안 그룹 만들기

이제 기본 Amazon VPC 새 보안 그룹을 생성합니다. 보안 그룹을demoDocDB 사용하면 Amazon EC2 인스턴스에서 포트 27017 (Amazon DocumentDB의 기본 포트) 에서 Amazon DocumentDB 클러스터에 연결할 수 있습니다.

  1. Amazon EC2 콘솔의 네트워크 및 보안에서 보안 그룹을 선택합니다.

  2. 보안 그룹 생성을 선택합니다.

  3. 보안 그룹 이름(Security group name)demoDocDB를 입력합니다.

  4. 설명에 설명을 입력합니다.

  5. VPC의 경우 기본 VPC의 사용을 수락합니다.

  6. 인바운드 규칙 섹션에서 규칙 추가를 선택합니다.

  7. [Type]의 경우 [Custom TCP Rule]을 선택합니다.

  8. 포트 범위에 를 입력합니다27017.

  9. 목적지에서 사용자 지정을 선택합니다. 옆의 필드에서 방금 호출한 보안 그룹을demoEC2 검색합니다. Amazon EC2 콘솔에서demoEC2 소스 이름을 자동으로 채우려면 브라우저를 새로 고쳐야 할 수 있습니다.

  10. 다른 모든 기본값을 적용하고 보안 그룹 생성을 선택합니다.

3단계: Amazon DocumentDB 클러스터 생성

Amazon EC2 인스턴스를 프로비저닝하는 동안 Amazon DocumentDB 클러스터를 생성합니다.

  1. Amazon DocumentDB 콘솔로 이동하여 탐색 창에서 클러스터를 선택합니다.

  2. Create(생성)를 선택합니다.

  3. 인스턴스 수에서 1을 선택합니다. 이렇게 하면 비용이 최소화됩니다. 기타 설정은 기본값을 유지합니다.

  4. 인증에 로그인 자격 증명을 입력합니다. 중요: 이후 단계에서 클러스터를 인증하려면 로그인 자격 증명이 필요합니다.

  5. 고급 설정 보기를 켜십시오.

  6. 네트워크 설정 섹션에서 Amazon VPC 보안 그룹의 경우 DemoDocDB를 선택합니다.

  7. 클러스터 생성(Create cluster)을 선택합니다.

4단계: Amazon EC2 인스턴스에 Connect

mongo 셸을 설치하려면 먼저 Amazon EC2 인스턴스에 연결해야 합니다. mongo 셸을 설치하면 Amazon DocumentDB 클러스터에 연결하고 쿼리할 수 있습니다. 다음 단계를 완료합니다.

  1. Amazon EC2 콘솔에서 인스턴스로 이동하여 방금 생성한 인스턴스가 실행 중인지 확인합니다. 그럴 경우 해당 인스턴스를 선택합니다.

  2. Connect(연결)를 선택합니다.

  3. Connect 방법에는 Amazon EC2 인스턴스 연결, 세션 관리자 또는 SSH 클라이언트의 세 가지 옵션이 표시됩니다. 하나를 선택하고 지침을 따라야 합니다.

참고

이 안내를 시작한 후 IP 주소가 변경되었거나 나중에 해당 환경으로 돌아오는 경우demoEC2 보안 그룹 인바운드 규칙을 업데이트하여 새 API 주소의 인바운드 트래픽을 활성화해야 합니다.

5단계: 몽고 셸 설치

이제 Amazon DocumentDB 클러스터를 연결하고 쿼리하는 데 사용하는 명령줄 유틸리티인 mongo 셸을 설치할 수 있습니다. 아래 지침에 따라 사용 중인 운영 체제에 mongo 셸을 설치합니다.

Amazon Linux에서 mongo 셸을 설치하려면
  1. 리포지토리 파일을 생성합니다. 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
  2. 작업이 완료되면 다음 명령을 실행하여 mongo 셸을 설치합니다.

    sudo yum install -y mongodb-org-shell
Ubuntu 18.04에서 mongo 셸을 설치하려면
  1. 패키지 관리 시스템에서 사용할 퍼블릭 키를 가져옵니다.

    sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5
  2. 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 셸을 설치합니다.

  3. 다음 명령을 사용하여 로컬 패키지 데이터베이스를 다시 로드합니다.

    sudo apt-get update
  4. 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

  1. Amazon Document DB 콘솔의 클러스터에서 클러스터를 찾습니다. 생성한 클러스터를 선택합니다.

  2. 연결 상자로 이동합니다. 형식은 다음과 같아야 합니다.

    제공된 연결 문자열을 복사합니다.

    터미널에 붙여넣은 후 다음과 같이 변경하십시오. 먼저 문자열에 올바른 사용자 이름이 있는지 확인하십시오. 그런 다음 연결할 때 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

  3. 이제 터미널에서 Enter 키를 누릅니다. 이제 비밀번호를 입력하라는 메시지가 표시됩니다. 암호를 입력합니다.

  4. 암호를 입력하고rs0:PRIMARY> 프롬프트가 표시되면 Amazon DocumentDB 클러스터에 성공적으로 연결된 것입니다.

연결에 문제가 있나요? Amazon DocumentDB 문제 해결을 참조하십시오.

8단계: 데이터 삽입 및 쿼리

이제 클러스터에 연결되었으므로 몇 가지 쿼리를 실행하여 문서 데이터베이스 사용에 익숙해질 수 있습니다.

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

    db.collection.insert({"hello":"DocumentDB"})
  2. 출력은 다음과 같습니다.

    WriteResult({ "nInserted" : 1 })

  3. findOne()명령으로 작성한 문서는 한 개의 문서만 반환하므로 읽을 수 있습니다. 다음을 입력합니다.

    db.collection.findOne()
  4. 출력은 다음과 같습니다.

    { "_id" : ObjectId("5e401fe56056fda7321fbd67"), "hello" : "DocumentDB" }

  5. 쿼리를 몇 개 더 수행하려면 게임 프로필 사용 사례를 고려해 보십시오. 먼저 제목의 컬렉션에 몇 개의 항목을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} ])
  6. 출력은 다음과 같습니다.

    { "acknowledged" : true, "insertedIds" : [ 1, 2, 3, 4 ] }

  7. find()명령을 사용하여 프로필 컬렉션의 모든 문서를 반환할 수 있습니다. 다음을 입력합니다.

    db.profiles.find()
  8. 5단계에서 입력한 데이터와 일치하는 출력이 표시됩니다.

  9. 필터를 사용하여 단일 문서에 대한 쿼리를 사용하십시오. 다음을 입력합니다.

    db.profiles.find({name: "Katie"})
  10. 출력은 다음과 같습니다.

    { "_id" : 4, "name" : "Katie", "status": "active", "level": 3, "score":27}

  11. 이제findAndModify 명령을 사용하여 프로필을 찾고 수정해 보겠습니다. 다음 코드를 사용하여 사용자 Matt에게 10점을 추가로 부여합니다.

    db.profiles.findAndModify({ query: { name: "Matt", status: "active"}, update: { $inc: { score: 10 } } })
  12. 다음과 같은 결과를 얻을 수 있습니다 (참고로 그의 점수는 아직 올라가지 않았습니다).

    { "_id" : 1, "name" : "Matt", "status" : "active", "level" : 12, "score" : 202 }
  13. 다음 쿼리를 통해 그의 점수가 변경되었는지 확인할 수 있습니다.

    db.profiles.find({name: "Matt"})

  14. 출력은 다음과 같습니다.

    { "_id" : 1, "name" : "Matt", "status" : "active", "level" : 12, "score" : 212 }

9단계: 살펴보기

축하합니다! Amazon DocumentDB에 대한 퀵 스타트 안내서를 성공적으로 완료했습니다.

다음은 무엇일까요? 몇 가지 인기 있는 기능과 함께 이 강력한 데이터베이스를 최대한 활용하는 방법을 알아보십시오.

참고

비용을 절감하려면 Amazon DocumentDB 클러스터를 중지하여 비용을 절감하거나 클러스터를 삭제할 수 있습니다. 기본적으로 30분 동안 활동이 없으면 해당AWS Cloud9 환경에서 기본 Amazon EC2 인스턴스가 중지됩니다.