빠른 시작: Java 및 Azure Cosmos DB for MongoDB를 사용하여 콘솔 앱 만들기
적용 대상: MongoDB
이 빠른 시작에서는 Azure Portal에서 Azure Cosmos DB for MongoDB 계정을 생성 및 관리하고 GitHub에서 복제된 Java SDK 앱을 사용하여 데이터를 추가합니다. Azure Cosmos DB는 글로벌 배포 및 수평적 크기 조정 기능을 사용하여 문서, 테이블, 키 값 및 그래프 데이터베이스를 빠르게 만들고 쿼리할 수 있는 다중 모델 데이터베이스 서비스입니다.
필수 조건
- 활성 구독이 있는 Azure 계정. 체험 계정 만들기 또는 Azure 구독 없이 무료로 Azure Cosmos DB를 사용할 수 있습니다. 연결 문자열
.mongodb://localhost:C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw==@localhost:10255/admin?ssl=true
와 함께 Azure Cosmos DB 에뮬레이터를 사용할 수도 있습니다. - JDK(Java Development Kit) 버전 8.
- Maven 또는
apt-get install maven
을 실행하여 Maven을 설치합니다. - Git
데이터베이스 계정 만들기
새 브라우저 창에서 Azure Portal에 로그인합니다.
왼쪽 메뉴에서 + 리소스 만들기를 선택합니다.
새로 만들기 페이지에서 데이터베이스>Azure Cosmos DB를 차례로 선택합니다.
API 옵션 선택 페이지에서 Azure Cosmos DB for MongoDB>만들기를 선택합니다.
API는 만들 계정의 형식을 결정합니다. 이 빠른 시작에서는 MongoDB에서 사용하는 컬렉션을 만들기 때문에 Azure Cosmos DB for MongoDB를 선택합니다. 자세한 내용은 Azure Cosmos DB for MongoDB 개요를 참조하세요.
Azure Cosmos DB 계정 만들기 페이지에서 새 Azure Cosmos DB 계정에 대한 설정을 입력합니다.
설정 값 Description 구독 구독 이름 이 Azure Cosmos DB 계정에 사용할 Azure 구독을 선택합니다. 리소스 그룹 리소스 그룹 이름 리소스 그룹을 선택하거나 새로 만들기를 선택한 후, 새 리소스 그룹에 고유한 이름을 입력합니다. 계정 이름 고유한 이름 입력 내 Azure Cosmos DB 계정을 식별하는 고유한 이름을 입력합니다. 계정 URI는 고유한 계정 이름에 mongo.cosmos.azure.com이 추가됩니다.
계정 이름은 소문자, 숫자 및 하이픈(-) 문자만 포함할 수 있으며, 3-44자여야 합니다.위치 사용자와 가장 가까운 지역 Azure Cosmos DB 계정을 호스트할 지리적 위치를 선택합니다. 데이터에 가장 빨리 액세스할 수 있도록 사용자와 가장 가까운 위치를 사용합니다. 용량 모드 프로비저닝된 처리량 또는 서버리스 프로비저닝된 처리량을 선택하여 프로비저닝된 처리량 모드에서 계정을 만듭니다. 서버리스를 선택하여 서버리스 모드에서 계정을 만듭니다.
참고: API for MongoDB 버전 4.2, 4.0 및 3.6만 서버리스 계정에서 지원합니다. 3.2 버전을 선택하면 계정이 프로비저닝된 처리량 모드로 강제 적용됩니다.Azure Cosmos DB 체험 계층 할인 적용 적용 또는 적용 안 함 Azure Cosmos DB 무료 계층을 사용하면 계정 하나에 처음 1000RU/초 및 25GB의 스토리지가 별도의 비용 없이 제공됩니다. 체험 계층에 대해 자세히 알아보세요. 버전 필요한 서버 버전 선택 Azure Cosmos DB for MongoDB는 서버 버전 4.2, 4.0, 3.6 및 3.2와 호환됩니다. 계정을 만든 후 업그레이드하거나 다운그레이드할 수 있습니다. 참고 항목
Azure 구독당 최대 1개의 체험 계층 Azure Cosmos DB 계정을 사용할 수 있으며 계정을 만들 때 옵트인해야 합니다. 체험 계층 할인을 적용하는 옵션이 표시되지 않으면 구독의 다른 계정에서 이미 체험 계층을 사용하도록 설정되었음을 의미합니다.
전역 배포 탭에서 다음 세부 정보를 구성합니다. 이 빠른 시작의 목적을 위해 기본값을 그대로 둘 수 있습니다.
설정 값 Description 지리적 중복 사용 안 함 지역에 쌍 영역을 페어링하여 계정에서 글로벌 배포를 사용하거나 사용하지 않도록 설정합니다. 나중에 계정에 더 많은 지역을 추가할 수 있습니다. 다중 지역 쓰기 사용 안 함 다중 영역 쓰기 기능을 사용하면 전 세계의 데이터베이스 및 컨테이너에 대해 프로비저닝된 처리량을 활용할 수 있습니다. 참고 항목
용량 모드로 서버리스를 선택한 경우 다음 옵션을 사용할 수 없습니다.
- 무료 계층 할인 적용
- 지리적 중복도
- 다중 지역 쓰기
필요에 따라 다음 탭에서 추가 세부 정보를 구성할 수 있습니다.
- 네트워킹 - 가상 네트워크에서 액세스를 구성합니다.
- 백업 정책 - 주기적 또는 지속적인 백업 정책을 구성합니다.
- 암호화 - 서비스 관리형 키 또는 고객 관리형 키를 사용합니다.
- 태그 - 태그는 동일한 태그를 여러 개의 리소스 및 리소스 그룹에 적용하여 리소스를 범주화하고 통합된 청구를 볼 수 있는 이름/값 쌍입니다.
검토 + 만들기를 선택합니다.
계정 생성에는 몇 분 정도가 소요됩니다. 포털에 축하합니다! Azure Cosmos DB for MongoDB 계정이 준비되었습니다. 페이지가 표시될 때까지 기다리세요.
컬렉션 추가
새 사용자 데이터베이스 이름을 db로 지정하고 새로운 컬렉션 이름을 coll로 지정합니다.
이제 Azure Portal에서 Data Explorer 도구를 사용하여 Azure Cosmos DB의 API for MongoDB 데이터베이스 및 컨테이너를 만들 수 있습니다.
Data Explorer>새 컨테이너를 선택합니다.
맨 오른쪽에 컨테이너 추가 영역이 표시되는데, 안 보이면 오른쪽으로 스크롤해야 합니다.
컨테이너 추가 페이지에서 새 컨테이너의 설정을 입력합니다.
설정 제안 값 설명 데이터베이스 ID db 새 데이터베이스의 이름으로 db를 입력합니다. 데이터베이스 이름은 1~255자여야 하며, /, \\, #, ?
또는 후행 공백은 포함할 수 없습니다. 데이터베이스 처리량 프로비전 옵션을 선택합니다. 그러면 데이터베이스에 프로비저닝된 처리량을 데이터베이스 내 모든 컨테이너가 공유할 수 있습니다. 이 옵션은 비용 절감에도 도움이 됩니다.처리량 400 처리량을 400RU/s(초당 요청 단위)로 유지합니다. 대기 시간을 줄여야 하는 경우, 나중에 처리량을 늘리면 됩니다. 필요에 따라 동적으로 증가하고 감소하는 RU/s 범위를 제공하는 자동 크기 조정 모드를 선택할 수도 있습니다. 컬렉션 ID coll 새 컨테이너의 이름으로 coll
을 입력합니다. 컨테이너 ID에는 데이터베이스 이름과 동일한 문자 요구 사항이 적용됩니다.스토리지 용량 고정(10GB) 이 애플리케이션에 고정(10GB)을 입력합니다. 무제한을 선택하면 삽입된 모든 항목에 필요한 Shard Key
를 만들어야 합니다.분할 키 /_id 이 문서에서 설명하는 샘플은 분할 키를 사용하지 않으므로 /_id로 설정하면 자동으로 생성된 ID 필드가 분할 키로 사용됩니다. Azure Cosmos DB에서 분할(파티셔닝)에서 분할(파티셔닝이라고도 함)에 대해 자세히 알아봅니다. 확인을 선택합니다. Data Explorer에 새 데이터베이스와 컨테이너가 표시됩니다.
샘플 애플리케이션 복제
이제 GitHub에서 앱을 복제하고, 연결 문자열을 설정하고, 앱을 실행하겠습니다. 프로그래밍 방식으로 데이터를 사용하여 얼마나 쉽게 작업할 수 있는지 알게 될 것입니다.
명령 프롬프트를 열고, git-samples라는 새 폴더를 만든 다음 명령 프롬프트를 닫습니다.
md "C:\git-samples"
Git Bash와 같은 Git 터미널 창을 열고,
cd
명령을 사용하여 샘플 앱을 설치할 새 폴더로 변경합니다.cd "C:\git-samples"
다음 명령을 실행하여 샘플 리포지토리를 복제합니다. 이 명령은 컴퓨터에서 샘플 앱의 복사본을 만듭니다.
git clone https://github.com/Azure-Samples/azure-cosmos-db-mongodb-java-getting-started.git
그런 다음, 선호하는 편집기에서 코드를 엽니다.
코드 검토
이 단계는 선택 사항입니다. 데이터베이스 리소스를 코드로 만드는 방법을 알아보려는 경우 다음 코드 조각을 검토할 수 있습니다. 그렇지 않으면 연결 문자열 업데이트로 건너뛸 수 있습니다.
다음 코드 조각은 모두 Program.java 파일에서 가져옵니다.
이 콘솔 앱은 MongoDB Java 드라이버를 사용합니다.
DocumentClient가 초기화됩니다.
MongoClientURI uri = new MongoClientURI("FILLME");` MongoClient mongoClient = new MongoClient(uri);
새 데이터베이스 및 컬렉션이 만들어집니다.
MongoDatabase database = mongoClient.getDatabase("db"); MongoCollection<Document> collection = database.getCollection("coll");
MongoCollection.insertOne
을 사용하여 일부 문서가 삽입됩니다.Document document = new Document("fruit", "apple") collection.insertOne(document);
MongoCollection.find
을 사용하여 일부 쿼리가 수행됩니다.Document queryResult = collection.find(Filters.eq("fruit", "apple")).first(); System.out.println(queryResult.toJson());
연결 문자열 업데이트
이제 Azure Portal로 다시 이동하여 연결 문자열 정보를 가져와서 앱에 복사합니다.
Azure Cosmos DB 계정에서 빠른 시작을 선택하고 Java를 선택한 다음, 연결 문자열을 클립보드에 복사합니다.
Program.java 파일을 열고 MongoClientURI 생성자에 대한 인수를 연결 문자열로 바꿉니다. 이제 Azure Cosmos DB와 통신하는 데 필요한 모든 정보로 앱이 업데이트되었습니다.
콘솔 앱 실행
터미널에서
mvn package
를 실행하여 필요한 패키지 설치터미널에서
mvn exec:java -D exec.mainClass=GetStarted.Program
을 실행하여 Java 애플리케이션을 시작합니다.
이제 Robomongo / Studio 3T를 사용하여 이 새 데이터를 쿼리, 수정 및 사용할 수 있습니다.
Azure Portal에서 SLA 검토
Azure Portal에서는 Azure Cosmos DB 계정 처리량, 스토리지, 가용성, 대기 시간 및 일관성을 모니터링합니다. Azure Cosmos DB SLA(서비스 수준 계약)와 관련된 메트릭 차트에는 실제 성능 대비 SLA 값이 표시됩니다. 이 메트릭 모음을 통해 SLA를 투명하게 모니터링할 수 있습니다.
메트릭 및 SLA를 검토하려면 다음을 수행합니다.
Azure Cosmos DB 계정의 탐색 메뉴에서 메트릭을 선택합니다.
대기 시간과 같은 탭을 선택하고, 오른쪽에서 시간 프레임을 선택합니다. 차트의 실제 및 SLA 줄을 비교합니다.
다른 탭의 메트릭을 검토합니다.
리소스 정리
앱과 Azure Cosmos DB 계정을 모두 사용했으면 추가로 비용을 지불하지 않도록 만든 Azure 리소스를 삭제할 수 있습니다. 리소스를 삭제하려면:
Azure Portal 검색 창에서 리소스 그룹을 검색하고 선택합니다.
목록에서 이 빠른 시작에서 만든 리소스 그룹을 선택합니다.
리소스 그룹 개요 페이지에서 리소스 그룹 삭제를 선택합니다.
새 창에서 삭제할 리소스 그룹의 이름을 입력한 다음, 삭제를 선택합니다.
다음 단계
이 빠른 시작에서는 Azure Cosmos DB for MongoDB 계정을 만들고, Data Explorer를 사용하여 데이터베이스 및 컨테이너를 추가하고, Java 콘솔 앱을 사용하여 데이터를 추가하는 방법을 알아보았습니다. 이제 Azure Cosmos DB 데이터베이스로 추가 데이터를 가져올 수 있습니다.
Azure Cosmos DB로 마이그레이션하기 위한 용량 계획을 수행하려고 하시나요? 용량 계획을 위해 기존 데이터베이스 클러스터에 대한 정보를 사용할 수 있습니다.
- 기존 데이터베이스 클러스터의 vCore 및 서버 수만을 알고 있는 경우, vCore 또는 vCPU를 사용하여 요청 단위 추정을 참조하세요
- 현재 데이터베이스 워크로드에 대한 일반적인 요청 비율을 알고 있는 경우 Azure Cosmos DB 용량 계획 도구를 사용하여 요청 단위 예측에 대해 읽어보세요.