이 문서에서는 MongoDB Atlas와 Google Cloud 간의 데이터 변환을 배포하는 방법을 설명합니다. 이 문서에서는 MongoDB Atlas에서 BigQuery로 데이터 간에 추출, 변환, 로드(ETL) 프로세스를 배포합니다.
이 안내는 BigQuery를 사용하여 MongoDB Atlas에 저장된 운영 데이터에 대해 복잡한 분석을 수행하려는 데이터 관리자를 대상으로 합니다. MongoDB Atlas, BigQuery, Dataflow에 익숙해야 합니다.
아키텍처
다음 다이어그램은 이 솔루션을 배포할 때 사용하는 참조 아키텍처를 보여줍니다.
다이어그램에 표시된 것처럼 통합 프로세스를 처리하는 Dataflow 템플릿은 세 가지가 있습니다. 첫 번째 템플릿인 MongoDB to BigQuery는 MongoDB에서 문서를 읽고 BigQuery에 쓰는 일괄 파이프라인입니다. 두 번째 템플릿인 BigQuery to MongoDB는 BigQuery에서 분석된 데이터를 읽고 MongoDB에 쓸 수 있는 일괄 템플릿입니다. 세 번째 템플릿인 MongoDB to BigQuery(CDC)는 운영 데이터의 변경사항을 처리하기 위해 MongoDB 변경 내역과 함께 작동하는 스트리밍 파이프라인입니다. 자세한 내용은 MongoDB Atlas와 Google Cloud 간의 데이터 변환을 참고하세요.
목표
다음 배포 단계에서는 MongoDB to BigQuery 템플릿을 사용하여 MongoDB Atlas에서 BigQuery로 데이터 간의 ETL 프로세스를 수행하는 방법을 보여줍니다. 이 ETL 프로세스를 배포하려면 다음 작업을 실행합니다.
- Google Cloud에서 MongoDB Atlas 클러스터를 프로비저닝합니다.
- MongoDB 클러스터에 데이터를 로드합니다.
- 클러스터 액세스를 구성합니다.
- Google Cloud에서 BigQuery 테이블을 설정합니다.
- MongoDB 데이터를 BigQuery로 전송하는 Dataflow 작업을 만들고 모니터링합니다.
- BigQuery에서 출력 테이블을 검사합니다.
비용
이 문서에서는 비용이 청구될 수 있는 다음과 같은 Google Cloud 구성요소를 사용합니다.
프로젝트 사용량을 기준으로 예상 비용을 산출하려면 가격 계산기를 사용하세요.
이 문서에 설명된 태스크를 완료했으면 만든 리소스를 삭제하여 청구가 계속되는 것을 방지할 수 있습니다. 자세한 내용은 삭제를 참조하세요.
시작하기 전에
MongoDB to BigQuery 아키텍처의 환경을 설정하려면 다음 단계를 완료하세요.
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the BigQuery and Dataflow APIs.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the BigQuery and Dataflow APIs.
MongoDB Atlas 설치
이 섹션에서는 Cloud Marketplace를 사용하여 MongoDB Atlas 인스턴스를 설치합니다. 이 안내에서는 기존 MongoDB 계정이 없다고 가정합니다. 정기 결제를 설정하고 Google 결제 계정을 MongoDB 계정에 연결하는 방법에 관한 자세한 내용은 MongoDB 문서의 Google Cloud 셀프서비스 마켓플레이스를 참고하세요.
- Google Cloud 콘솔에서 탐색 메뉴를 펼친 다음 Marketplace를 선택합니다.
- Marketplace 검색창에 MongoDB Atlas를 입력합니다.
- 검색 결과에서 MongoDB Atlas(사용한 만큼만 지불)를 선택합니다.
- MongoDB Atlas(사용한 만큼만 지불) 페이지에서 이용약관에 대한 개요를 검토한 다음 MongoDB로 가입을 클릭합니다.
- MongoDB 구독 페이지에서 결제 계정을 선택하고 약관에 동의한 다음 구독을 클릭합니다.
- MongoDB에 등록 버튼을 클릭하고 MongoDB 계정을 만듭니다.
- 조직을 선택하라는 메시지가 표시되면 Google Cloud 결제 계정을 연결할 MongoDB 조직을 선택합니다.
- Google Cloud에서 조직 동기화를 완료할 때까지 기다립니다.
계정이 동기화되면 Google Cloud 콘솔의 MongoDB Atlas(사용한 만큼만 지불) 페이지가 업데이트되어 제공업체에서 관리 버튼이 표시됩니다.
MongoDB Atlas 클러스터 만들기
이 섹션에서는 MongoDB 클러스터를 만듭니다. 생성 과정에서 다음 정보를 선택합니다.
무료 MongoDB 클러스터를 만들고 배포하는 방법에 관한 자세한 내용은 MongoDB 문서의 무료 클러스터 배포를 참고하세요.
클러스터를 만들고 설정하려면 다음 단계를 따르세요.
- Google Cloud 콘솔의 MongoDB Atlas(사용한 만큼만 지불) 페이지에서 공급업체에서 관리를 클릭합니다.
MongoDB 로그인 페이지에서 Google을 클릭한 다음 MongoDB Atlas를 설치하는 데 사용한 Google 계정을 클릭합니다.
MongoDB UI는 신규 사용자의 경우 데이터베이스 배포 페이지가 자동으로 열립니다.
Atlas UI의 데이터베이스 배포 페이지에서 만들기를 클릭합니다.
클러스터 만들기 페이지에서 공유됨을 클릭합니다.
공유 옵션은 이 참조 아키텍처를 테스트하는 데 사용할 수 있는 무료 클러스터를 제공합니다.
공유 클러스터 만들기 페이지의 클라우드 제공업체 및 지역 섹션에서 다음을 수행합니다.
- Google Cloud를 선택합니다.
- 지리적으로 가장 가까우면서 원하는 특성을 가진 리전을 선택합니다.
Cluster Tier(클러스터 등급) 섹션에서 M0 옵션을 선택합니다.
M0
클러스터는 무료이며 소규모 개념 증명 애플리케이션에 적합합니다.클러스터 이름에 클러스터 이름을 입력합니다.
클러스터 만들기를 클릭하여 클러스터를 배포합니다.
MongoDB 클러스터 설정
이 섹션에서는 다음 절차를 완료합니다.
- 클러스터에 샘플 데이터를 로드합니다.
- 클러스터에 대한 액세스 구성
- 클러스터에 연결
MongoDB 클러스터에 샘플 데이터 로드
이제 MongoDB 클러스터를 만들었으므로 클러스터에 데이터를 로드해야 합니다. MongoDB는 다양한 샘플 데이터 세트를 로드합니다. 이러한 데이터 세트를 사용하여 이 배포를 테스트할 수 있습니다. 하지만 프로덕션 배포에 사용할 실제 데이터와 유사한 데이터 세트를 사용하는 것이 좋습니다.
샘플 데이터를 로드하는 방법에 관한 자세한 내용은 MongoDB 문서의 샘플 데이터 로드를 참고하세요.
샘플 데이터를 로드하려면 다음 단계를 따르세요.
- Atlas UI의 데이터베이스 배포 페이지에서 방금 배포한 클러스터를 찾습니다.
줄임표(...) 버튼을 클릭한 다음 샘플 데이터 세트 로드를 클릭합니다.
샘플 데이터를 로드하는 데 약 5분이 소요됩니다.
샘플 데이터 세트를 검토하고 이 배포를 테스트할 때 사용할 컬렉션을 기록해 둡니다.
클러스터 액세스 구성
클러스터를 연결하려면 데이터베이스 사용자를 만들고 클러스터의 IP 주소를 설정해야 합니다.
- 데이터베이스 사용자는 MongoDB 사용자와 별개입니다. Google Cloud에서 MongoDB에 연결하려면 데이터베이스 사용자가 필요합니다.
- 이 참조 아키텍처의 경우 IP 주소로
0.0.0.0/0
의 CIDR 블록을 사용합니다. 이 CIDR 블록은 어디서나 액세스를 허용하며 이와 같은 개념 증명 배포에만 적합합니다. 그러나 이 아키텍처의 프로덕션 버전을 배포할 때는 애플리케이션에 적합한 적절한 IP 주소 범위를 입력해야 합니다.
클러스터의 데이터베이스 사용자 및 IP 주소를 설정하는 방법에 관한 자세한 내용은 MongoDB 문서의 빠른 시작 마법사로 클러스터 액세스 구성을 참고하세요.
클러스터 액세스를 구성하려면 다음 단계를 따르세요.
- 왼쪽 탐색창의 보안 섹션에서 빠른 시작을 클릭합니다.
- 사용자 이름 및 비밀번호 페이지에서 다음을 수행하여 데이터베이스 사용자를 만듭니다.
- 사용자 이름에 데이터베이스 사용자의 이름을 입력합니다.
- 비밀번호에 데이터베이스 사용자의 비밀번호를 입력합니다.
- Create User(사용자 만들기)를 클릭합니다.
사용자 이름 및 비밀번호 페이지에서 다음 단계에 따라 클러스터의 IP 주소를 추가합니다.
IP 주소에 0.0.0.0/0을 입력합니다.
프로덕션 환경의 경우 해당 환경에 적합한 IP 주소를 선택합니다.
(선택사항) 설명에 클러스터에 대한 설명을 입력합니다.
항목 추가를 클릭합니다.
마침 및 닫기를 클릭합니다.
클러스터에 연결
클러스터에 대한 액세스 권한을 구성했으므로 이제 클러스터에 연결해야 합니다. 클러스터에 연결하는 방법에 관한 자세한 내용은 MongoDB 문서의 클러스터에 연결을 참고하세요.
클러스터에 연결하려면 다음 단계를 따르세요.
- Atlas UI의 데이터베이스 배포 페이지에서 방금 배포한 클러스터를 찾습니다.
- 연결을 선택합니다.
- 연결 페이지에서 Compass 옵션을 클릭합니다.
연결 문자열 복사 필드를 찾아 MongoDB 연결 문자열을 복사하여 저장합니다. Dataflow 템플릿을 실행하는 동안 이 연결 문자열을 사용합니다.
연결 문자열의 구문은 다음과 같습니다.
mongodb+srv://<UserName>:<Password>@<HostName>
연결 문자열에는 이전 단계에서 만든 데이터베이스 사용자의 사용자 이름이 자동으로 포함됩니다. 그러나 이 문자열을 사용하여 연결하면 데이터베이스 사용자의 비밀번호를 입력하라는 메시지가 표시됩니다.
닫기를 클릭합니다.
BigQuery에서 데이터 세트 만들기
BigQuery에서 데이터 세트를 만들 때 데이터 세트 이름을 입력하고 데이터 세트의 지리적 위치만 선택하면 됩니다. 하지만 데이터 세트에서 설정할 수 있는 선택사항 필드가 있습니다. 이러한 선택사항 필드에 관한 자세한 내용은 데이터 세트 만들기를 참고하세요.
Google Cloud 콘솔에서 BigQuery 페이지로 이동합니다.
탐색기 패널에서 데이터 세트를 만들 프로젝트를 선택합니다.
옵션을 펼치고 데이터 세트 만들기를 클릭합니다.
데이터 세트 만들기 페이지에서 다음을 수행합니다.
Dataflow 일괄 작업 만들기, 모니터링, 유효성 검사
Dataflow에서 다음 안내에 따라 MongoDB에서 BigQuery로 샘플 데이터를 로드하는 일회성 일괄 작업을 만듭니다. 일괄 작업을 만든 후 Dataflow 모니터링 인터페이스에서 작업 진행 상황을 모니터링합니다. 모니터링 인터페이스 사용에 관한 자세한 내용은 Dataflow 모니터링 인터페이스 사용을 참고하세요.
Google Cloud 콘솔에서 Dataflow 페이지로 이동합니다.
템플릿에서 작업 만들기를 클릭합니다.
템플릿에서 작업 만들기 페이지에서 다음 단계를 따르세요.
- 작업 이름에 고유한 작업 이름(예: mongodb-to-bigquery-batch)을 입력합니다. 해당 프로젝트에서 현재 이 이름으로 실행 중인 다른 Dataflow 작업이 없는지 확인합니다.
- 지역 엔드포인트의 경우 방금 만든 BigQuery 데이터 세트의 위치와 동일한 위치를 선택합니다.
- Dataflow 템플릿의 대량 데이터 처리(일괄 작업) 목록에서 MongoDB to BigQuery를 선택합니다.
필수 매개변수 섹션에 다음 매개변수를 입력합니다.
- MongoDB 연결 URI에 Atlas MongoDB 연결 문자열을 입력합니다.
- Mongo 데이터베이스에 이전에 만든 데이터베이스의 이름을 입력합니다.
- Mongo 컬렉션에 이전에 기록해 둔 샘플 컬렉션의 이름을 입력합니다.
- BigQuery 대상 테이블의 경우 찾아보기를 클릭한 다음 이전 단계에서 만든 BigQuery 테이블을 선택합니다.
사용자 옵션에 없음 또는 평면화를 입력합니다.
없음은 JSON 문자열 형식의 전체 문서를 BigQuery에 로드합니다. 평면화는 문서를 한 레벨로 평면화합니다. UDF를 제공하지 않으면 고정된 스키마가 있는 문서에서만 평면화 옵션이 작동합니다.
작업을 시작하려면 작업 실행을 클릭합니다.
다음 단계에 따라 Dataflow 모니터링 인터페이스를 열고 일괄 작업의 진행 상황을 확인하고 작업이 오류 없이 완료되었는지 확인할 수 있습니다.
- Google Cloud 콘솔에서 이 배포의 프로젝트에서 탐색 메뉴를 엽니다.
- 애널리틱스에서 Dataflow를 클릭합니다.
파이프라인이 성공적으로 실행되면 다음을 실행하여 표 출력의 유효성을 검사합니다.
- BigQuery에서 탐색기 창을 엽니다.
프로젝트를 펼치고 데이터 세트를 클릭한 다음 테이블을 더블클릭합니다.
이제 테이블에서 MongoDB 데이터를 볼 수 있습니다.
삭제
MongoDB 및 Google Cloud 계정에 요금이 청구되지 않도록 하려면 MongoDB Atlas 클러스터를 일시중지하거나 종료하고 이 참조 아키텍처용으로 만든 Google Cloud 프로젝트를 삭제해야 합니다.
MongoDB Atlas 클러스터 일시중지 또는 종료
다음 절차에서는 클러스터 일시중지를 위한 기본사항을 제공합니다. 자세한 내용은 MongoDB 문서의 클러스터 일시중지, 재개 또는 종료를 참고하세요.
- Atlas UI에서 Atlas 프로젝트의 데이터베이스 배포 페이지로 이동합니다.
- 일시중지하려는 클러스터에서 을 클릭합니다.
- 클러스터 일시중지를 클릭합니다.
- 클러스터 일시중지를 클릭하고 선택한 내용을 확인합니다.
프로젝트 삭제
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
다음 단계
- 템플릿을 맞춤설정하려면 GitHub에서 Google Dataflow 템플릿을 찾습니다.
- Cloud 기술 부스트에서 MongoDB Atlas 및 Google Cloud 솔루션에 대해 자세히 알아보기
- 이 참조 아키텍처에서 사용되는 Google Cloud 제품에 대해 자세히 알아보기
- 그 밖의 참조 아키텍처, 다이어그램, 튜토리얼, 권장사항을 알아보려면 클라우드 아키텍처 센터를 확인하세요.
참여자
저자:
- Saurabh Kumar | ISV 파트너 엔지니어
- Venkatesh Shanbhag | 선임 솔루션 설계자(MongoDB)
기타 참여자:
- Jun Liu | 지원 기술 책임자
- 마리디 (라주) 마카라주 | 지원 가능성 기술 책임자
- Sergei Lilichenko | 솔루션 설계자
- Shan Kulandaivel | 그룹 제품 관리자