Edge Server 구성 - 미리 보기
이 페이지의 내용
에서 Edge Server Atlas인스턴스를 만든 후에는 에지 인스턴스를 실행하는 하드웨어를 구성해야 합니다.Edge Server 대부분의 사용 사례에서는 Edge Server 인스턴스를 호스팅하기 위해 하드웨어를 온프레미스로 프로비저닝합니다. Edge Server 애플리케이션을 개발하는 동안 편의를 위해 클라우드 서버에서 호스팅할 수 있습니다.
클라이언트 장치 온프레미스가 Edge Server 인스턴스에 연결됩니다. 인스턴스는 생성 방법에 따라 Edge Server 서비스 또는 Device Sync 서비스에 연결됩니다. 클라이언트는 MongoDB Atlas에 직접 연결하지 않습니다.
이 페이지에서는 Edge Server 인스턴스에서 작업을 구성하고 수행하는 방법에 대해 자세히 설명합니다.
전제 조건
각 Edge Server 인스턴스는 Atlas 프로젝트의 서비스에 연결됩니다. Edge Server 인스턴스를 사용하려면 먼저 관련 서비스를 생성하고 에지 Edge Server 인스턴스에 대한 인증 제공자 및 권한을 구성해야 합니다.
자세한 내용 은 Edge Server 서비스 생성을 참조하세요.
에지 서버 호스트 요구 사항
Edge Server 인스턴스를 실행하는 호스트는 EC2 인스턴스 또는 기타 클라우드 서버이거나 온사이트에서 프로비저닝하는 하드웨어일 수 있습니다.
팁
개념 증명 테스트를 위해 Ubuntu 서버 18.x를 실행하는 EC2 인스턴스를 시작할 수 있습니다. 네트워크 설정에서 HTTP/포트 80을 통한 액세스를 허용하는 규칙을 추가합니다. 소규모 PoC 프로젝트의 경우 무료 계층 설정으로 충분합니다.
필수 하드웨어
Edge Server 인스턴스를 실행하기 위한 현재 최소 하드웨어 요구 사항은 다음과 같습니다.
CPU: 64-비트, 쿼드 코어 프로세서
RAM: 8GB 메모리
스토리지: 32GB 디스크 공간
이러한 요구 사항은 Edge Server 벤치마킹이 완료된 후 변경될 수 있습니다.
OS 호환성
Edge Server 는 다음 운영 체제에서 확인되었습니다.
M1 또는 Intel 2018+ Macbook Pro에서 실행되는 macOS 11.x 이상
Raspberry Pi OS 12
Ubuntu Server 18+
다른 운영 체제도 가능할 수 있지만 아직 확인되지 않았습니다.
필수 소프트웨어
편의를 위해 개발 중에 Swarm 모드에서 를 사용하여 인스턴스를 관리할 수 있습니다.Edge Server Docker 프로덕션 환경에서는 Kubernetes 를 사용하여 Edge Server 컨테이너를 관리하세요.
Docker 가 설치되어 있지 않고 Swarm이 활성화되어 있지 않은 경우, Edge Server 를 실행하기 전에 이러한 종속성을 해결하라는 메시지가 표시됩니다.
필수 네트워크 액세스
동기화 클라이언트의 연결 또는 MongoDB URI를 사용하는 연결을 허용하려면 Edge Server 를 실행하는 호스트가 들어오는 연결에 대한 액세스를 허용해야 합니다.
자체 인프라에서 Edge Server 를 실행하는 경우 인스턴스를 일반 인터넷에 열 필요가 없습니다. 클라이언트 장치가 액세스할 수 있도록 하기만 하면 됩니다.
EC2에서 개발 환경을 실행하는 것과 같은 클라우드 인프라의 경우 들어오는 연결을 수락하려면 포트를 열어야 합니다.
개발: 단순성과 개발 속도를 위해 포트 80에서 HTTP를 사용합니다.
프로덕션: 포트 443과 함께 SSL을 사용하여 프로덕션 데이터에 대한 액세스를 보호합니다.
Edge Server 는 TLS를 지원합니다.
Kubernetes 컨트롤러를 통해 Device SDK 트래픽을 포함한 HTTP 액세스에 대한 TLS 종료를 설정하는 것이 좋습니다.
MongoDB URI를 통한 연결은 edgectl
를 통해 TLS를 구성할 수 있습니다.
Edge Server 인스턴스 설치 및 구성
Edge Server 서비스 또는 Device Sync 서비스를 생성한 후에는 Edge Server 인스턴스를 생성해야 합니다. 각 서비스에는 여러 개의 Edge Server 인스턴스가 있을 수 있습니다. 에지 서버 인스턴스를 생성하면 Edge Server Edge Server edgectl
를 설치 및 관리하는 도구를 다운로드하는 데 사용할 수 있는 설치 스크립트를 받게 됩니다. Edge Server 인스턴스를 등록하는 데 사용할 수 있는 토큰도 얻을 수 있습니다. 자세한 내용 은 Edge Server 인스턴스 생성을 참조하세요.
설치 스크립트를 사용하여 호스트에서 Edge Server 인스턴스를 설정하고 실행합니다.
중요
사용하지 않을 때 에지 서버 중지
Edge Server 인스턴스를 시작한 후에는 클라이언트 애플리케이션이 연결되어 있지 않더라도 Atlas 에 대한 웹 소켓 연결을 유지하여 동기화를 유지하려고 시도합니다. 데모를 실행 중이거나 다른 방식으로 PoC를 작업 중인 경우, 사용이 끝나면 edgectl stop
을(를) 사용하여 Edge Server 인스턴스를 중지해야 합니다. 그렇지 않으면 호스트의 컴퓨팅 및 Device Sync 시간을 계속 사용하게 됩니다.
Edge Server 코드 설치
Edge Server 는 edgectl
라는 명령줄 도구를 사용하여 호스트 하드웨어에서 Edge Server 인스턴스를 관리합니다. 여기에는 설치를 관리하고 필요한 종속성을 설치하기 위한 설치 스크립트가 포함되어 있습니다.
이 명령을 사용하여 Edge Server 인스턴스를 실행하려는 장치에 명령줄 도구와 Edge Server 코드를 설치합니다.
curl -s https://services.cloud.mongodb.com/edge/install.sh | bash
안내에 따라 Edge Server 코드를 다운로드하여 설치합니다.
Edge Server 인스턴스 초기화
edgectl
를 사용하여 Edge Server 인스턴스를 설정합니다.
edgectl init --app-id="<INSERT-YOUR-APP-ID-HERE>" --platform=compose
최소 필수 매개변수는 app-id
및 platform
입니다.
--app-id
: Edge Server 앱 ID 를 입력합니다. 예를 예시--app-id="edge-server-vtoyh"
입니다. 자세한 내용은 앱 ID 찾기를 참조하세요.--platform
: Docker Compose를 사용하여 개발 환경에서 Edge Server 인스턴스를 설치 및 관리하거나 Kubernetes 를 사용하여 프로덕션 환경에서 인스턴스를 관리할 수 있습니다. 유효한 값은compose
또는kubernetes
입니다.
다음과 같은 선택적 플래그를 제공하여 추가 구성 세부 정보를 지정할 수 있습니다.
필드 이름 | 유형 | 값 |
---|---|---|
--edge-root-dir | 문자열 | 구성 파일을 저장할 디스크의 위치입니다. 기본값은 ~/.mongodb-edge/ 입니다. 대체 위치를 지정하는 경우 이후에 edgectl 명령을 실행할 때마다 대체 위치와 함께 이 플래그를 전달해야 합니다. |
--query | 문자열 | Edge Server 인스턴스 와 Atlas 간에 동기화 할 데이터를 정의하는 쿼리 입니다. 쿼리 를 제공하지 않으면 인스턴스 는 액세스 권한이 있는 모든 데이터를 동기화합니다. 쿼리 채우기에 대한 자세한 내용은 Edge Server 의 쿼리 지정을 참조하세요. |
--global-query | 문자열 | 연결된 데이터 소스의 모든 컬렉션에 적용되는 쿼리입니다. 자세한 내용 은 Edge Server 의 쿼리 지정을 참조하세요. |
--query-file | 문자열 | 연결된 데이터 소스의 컬렉션에 대한 쿼리가 포함된 JSON 파일의 경로를 전달합니다. 자세한 내용 은 Edge Server 의 쿼리 지정을 참조하세요. |
--http-port | Int | 인스턴스가 HTTP 연결을 수신하는 포트입니다. 기본값은 80 입니다. |
--wire-protocol-port | Int | 인스턴스가 MongoDB 유선 프로토콜 연결(예: MongoDB 드라이버의 연결)을 수신하는 포트입니다. 기본값은 27021 입니다. |
--insecure-disable-auth | 부울 | true 인 경우, 사용자는 유선 프로토콜 또는 Atlas Device SDK 클라이언트를 통해 인스턴스에 익명으로 연결할 수 있습니다. 기본값은 false 입니다. |
--skip-user-prompt | 부울 | true 인 경우 Edge Server 는 사용자 생성을 요청하지 않습니다. false 인 경우, Edge Server 는 Atlas 에 연결하여 서비스에 이메일/비밀번호 사용자 가 존재하는지 확인합니다. 해당 이메일/비밀번호 사용자가 존재하지 않는 경우 사용자를 생성하기 위해 사용자 이름 과 비밀번호를 입력하라는 대화형 메시지가 표시됩니다. 기본값은 false 입니다. |
--disable-local-ui | 부울 | true 인 경우 Edge Server 인스턴스는 등록된 http-port 에서 UI를 실행하지 않습니다. 기본값은 false 입니다. |
--profile | 문자열 | 지정된 edgectl 명령을 실행할 때 사용할 프로필의 이름입니다. 이름을 제공하지 않으면 프로필 이름은 기본적으로 app-id 이 되고 -01 로 시작하는 증가 숫자가 추가됩니다. 프로필 플래그를 제공하지 않으면 edgectl 는 명령을 실행할 때 기본 프로필을 사용합니다. 자세한 내용 은 호스트에서 여러 Edge Server 인스턴스 실행을 참조하세요. |
--registration-token | 문자열 | Edge Server 인스턴스에 대한 일회성 사용 등록 토큰입니다. 이 플래그를 토큰과 함께 전달하지 않으면 초기 설정 중에 edgectl 에서 대화형으로 토큰을 입력하라는 메시지를 표시합니다. |
Edge Server 토큰 제공
Edge Server 인스턴스를 처음 구성할 때 Edge Server 토큰을 제공하라는 메시지가 표시됩니다. 이는 서비스에 인스턴스를 추가할 때 얻은 토큰입니다.
토큰이 더 이상 없는 경우 서비스의 Edge Server 인스턴스 세부 정보 에서 새 토큰을 생성할 수 있습니다.
Edge Server 인스턴스는 이 토큰을 시크릿으로 교환합니다. 데이터를 동기화할 때 이 시크릿을 사용하여 Atlas로 인증합니다.
(선택 사항) 새 사용자 만들기
드라이버 또는 도구를 사용하여 Edge Server 인스턴스에 연결하려면 사용자 이름/비밀번호 자격 증명이 있거나 인증을 우회해야 합니다.MongoDB 사용자 이름/비밀번호 자격 증명이 Edge Server 이미 있거나 드라이버 또는 도구를 사용하여 인스턴스에 연결할 계획이 없는 MongoDB 경우 이 단계를 건너뛸 수 있습니다.
자세한 내용 은 드라이버 Edge Server MongoDB 및 도구를 사용하여 에 연결을 참조하세요.
사용자 이름/비밀번호 자격 증명이 아직 없는 경우 edgectl init
동안 안내에 따라 생성할 수 있습니다.
그렇지 않으면 나중에 Atlas App Services UI, 또는 를 사용하여 수동으로 이메일/비밀번호 사용자 생성 을 할 수 App Services CLI App Services Admin API있습니다.
또는 나중에 권한 부여 흐름을 구현하려는 경우 다음 명령 및 플래그를 사용하여 권한 부여를 우회할 수 있습니다.
edgectl config --insecure-disable-auth=true
에지 서버 시작 및 중지
edgectl
을(를) 사용하여 Edge Server 인스턴스를 시작 및 중지합니다.
모든 Edge Server 인스턴스 컨테이너를 시작하려면 start
명령을 사용합니다.
edgectl start
모든 Edge Server 인스턴스 컨테이너를 중지하려면 stop
명령을 사용합니다.
edgectl stop
중요
사용하지 않을 때 에지 서버 중지
Edge Server 인스턴스를 시작한 후에는 클라이언트 애플리케이션이 연결되어 있지 않더라도 Atlas 에 대한 웹 소켓 연결을 유지하여 동기화를 유지하려고 시도합니다. 데모를 실행 중이거나 다른 방식으로 PoC를 작업 중인 경우, 사용이 끝나면 edgectl stop
을(를) 사용하여 Edge Server 인스턴스를 중지해야 합니다. 그렇지 않으면 호스트의 컴퓨팅 및 Device Sync 시간을 계속 사용하게 됩니다.
에지 서버 상태 확인
Edge Server 인스턴스가 실행 중일 때 다음을 사용하여 인스턴스의 상태를 볼 수 있습니다.
edgectl status
이렇게 하면 Edge Server 컨테이너의 상태에 대한 정보와 중요한 정보가 분석된 동기화 서버의 자세한 상태가 제공됩니다. 다음과 유사할 수 있습니다.
{ "mongoContainerStatus": { "message": "running" }, "mongoDBStatus": { "message": "ready" }, "syncServerContainerStatus": { "message": "running" }, "syncServerStatus": { "message": "ACTIVE" }, "syncServerDetailedStatus": { "version": "v0.22.3", "status": "ACTIVE", "cloud_connected": true, "num_local_clients": 0, "query": { "Item": "truepredicate" } } }
syncServerDetailedStatus
에는 Edge Server 인스턴스의 상태에 대한 정보가 포함되어 있습니다. 여기에는 다음과 같이 Atlas와의 연결 및 연결된 클라이언트에 대한 세부 정보가 포함됩니다.
필드 이름 | 유형 | 값 |
---|---|---|
version | 문자열 | 인스턴스가 실행 중인 Edge Server 코드의 현재 버전입니다. Edge Server 인스턴스가 사용 가능한 최신 버전보다 하나 이상의 주요 버전으로 떨어지면 Atlas 에 연결할 수 없으므로 초기화하고 업데이트해야 합니다. 자세한 내용 은 Edge Server 버전 업그레이드를 참조하세요. |
status | 문자열 | Edge Server 인스턴스의 현재 상태입니다. 가능한 값은
|
cloud_connected | 부울 | true 인 경우 Edge Server 인스턴스가 현재 Atlas 에 연결되어 있는 것입니다. false 인 경우 Edge Server 인스턴스가 Atlas 에 연결되어 있지 않습니다. 인스턴스가 Atlas에 연결되어 있지 않은 경우에도 로컬 연결을 수신하고 로컬 클라이언트와 데이터를 동기화할 수 있습니다. Atlas와 다시 연결되면 연결되지 않은 동안 변경된 데이터의 동기화를 시도합니다. |
num_local_clients | Int | 현재 를 통해 인스턴스에 연결된 Edge Server 클라이언트 Atlas Device SDK 수입니다. 여기에는 유선 프로토콜을 통한 연결은 포함 되지 않습니다 . |
query | 객체 | Edge Server 객체로 JSON 제공되는 인스턴스 동기화 쿼리입니다. 자세한 내용 은 Edge Server 의 쿼리 지정을 참조하세요. |
Edge Server 인스턴스 구성 업데이트
edgectl
을(를) 사용하여 기존 Edge Server 인스턴스를 변경할 수 있습니다. 구성을 변경한 후 인스턴스를 다시 시작하여 업데이트를 적용합니다.
Edge Server 구성 업데이트
적절한 플래그와 함께 edgectl config
명령을 사용하여 인스턴스를 업데이트합니다.
edgectl config --YOUR-FLAG-HERE
필드 이름 | 유형 | 값 |
---|---|---|
--edge-root-dir | 문자열 | 구성 파일을 저장할 디스크의 위치입니다. 기본값은 ~/.mongodb-edge/ 입니다. 초기 설정 중에 대체 위치를 제공한 경우, edgectl 명령을 실행할 때마다 대체 명령과 함께 이 플래그를 전달해야 합니다. |
--query | 문자열 | Edge Server 인스턴스와 Atlas 간에 동기화할 데이터를 정의하는 쿼리입니다. 쿼리를 제공하지 않으면 인스턴스는 액세스 권한이 있는 모든 데이터를 동기화합니다. 쿼리 채우기에 대한 자세한 내용은 Edge Server 쿼리 지정을 참조하세요. |
--global-query | 문자열 | 연결된 데이터 소스의 모든 컬렉션에 적용되는 쿼리입니다. 자세한 내용 은 Edge Server 의 쿼리 지정을 참조하세요. |
--query-file | 문자열 | 연결된 데이터 소스의 컬렉션에 대한 쿼리가 포함된 JSON 파일의 경로를 전달합니다. 자세한 내용 은 Edge Server 의 쿼리 지정을 참조하세요. |
--http-port | Int | 인스턴스가 HTTP 연결을 수신하는 포트입니다. 기본값은 80 입니다. |
--wire-protocol-port | Int | 인스턴스가 MongoDB 유선 프로토콜 연결(예: MongoDB 드라이버의 연결)을 수신하는 포트입니다. 기본값은 27021 입니다. |
--insecure-disable-auth | 부울 | true 인 경우, 사용자는 유선 프로토콜 또는 Atlas Device SDK 클라이언트를 통해 인스턴스에 익명으로 연결할 수 있습니다. 기본값은 false 입니다. |
--skip-user-prompt | 부울 | true 인 경우 Edge Server 는 사용자 생성을 요청하지 않습니다. false 인 경우, Edge Server 는 Atlas 에 연결하여 서비스에 이메일/비밀번호 사용자 가 존재하는지 확인합니다. 해당 이메일/비밀번호 사용자가 존재하지 않는 경우 사용자를 생성하기 위해 사용자 이름 과 비밀번호를 입력하라는 대화형 메시지가 표시됩니다. 기본값은 false 입니다. |
--disable-local-ui | 부울 | true 인 경우 Edge Server 인스턴스는 등록된 http-port 에서 UI를 실행하지 않습니다. 기본값은 false 입니다. |
--profile | 문자열 | 지정된 edgectl 명령을 실행할 때 사용할 프로필의 이름입니다. 이름을 제공하지 않으면 프로필 이름은 기본적으로 app-id 이 되고 -01 로 시작하는 증가 숫자가 추가됩니다. 프로필 플래그를 제공하지 않으면 edgectl 는 명령을 실행할 때 기본 프로필을 사용합니다. 자세한 내용 은 호스트에서 여러 Edge Server 인스턴스 실행을 참조하세요. |
--registration-token | 문자열 | Edge Server 인스턴스에 대한 일회성 사용 등록 토큰입니다. 이 토큰과 함께 플래그를 전달하여 Edge Server 인스턴스에 API 키를 업데이트하라는 메시지를 표시할 수 있습니다. |
--update-registration-token | 부울 | 새 일회성 등록 토큰을 대화형으로 요청하라는 메시지를 edgectl 에 표시합니다. 새 토큰을 제공하면 Edge Server 인스턴스가 해당 API 키를 업데이트합니다. |
에지 서버 버전 업그레이드
Edge Server 가 발전함에 따라 새로운 기능을 활용하려면 Edge Server 버전을 업그레이드해야 할 수 있습니다. 또한 Edge Server 인스턴스는 사용 가능한 최신 버전보다 하나 이하인 주요 버전이어야 하며, 그렇지 않으면 FAILED
상태가 되어 Atlas 에 연결할 수 없습니다.
중요
필수 네트워크 액세스
Edge Server 버전을 업그레이드하려면 edgectl
에 네트워크 액세스 권한이 있어야 합니다. edgectl
이(가) 온라인 상태가 아닌 경우 Edge Server 버전을 업그레이드할 수 없습니다.
업그레이드 명령 실행
edgectl
을(를) 사용하여 Edge Server 버전을 업그레이드할 수 있습니다.
edgectl update
hardware 및 네트워크 연결에 따라 업그레이드 프로세스는 몇 초에서 몇 분 정도 걸릴 수 있습니다.
선택적으로 인수를 지정하여 특정 버전으로 업그레이드할 수 있습니다.
필드 이름 | 유형 | 값 |
---|---|---|
--config-path | 문자열 | 구성 파일을 저장할 디스크의 위치입니다. 기본값은 ~/.mongodb-edge/ 입니다. |
--minor | 부울 | 현재 메이저 버전의 최신 마이너 버전으로 업그레이드합니다. 기본값은 true 입니다. |
--major | 부울 | 다음 주요 버전으로 업그레이드합니다. 기본값은 false 입니다. |
--to | 문자열 | 정확한 버전으로 업그레이드(또는 다운그레이드)합니다. 기본값 "" . |
Edge Server API 키 순환
Edge Server API 키를 순환하려면 다음을 수행합니다.
Atlas에서 새 토큰 생성
Edge Server 인스턴스 세부 정보Edge Server 에서 새 토큰을 생성할 수 있습니다. Regenerate Token 버튼을 사용하여 새 토큰을 가져와 복사합니다. 이 토큰은 다시 볼 수 없으며, 복사하지 않으면 새 토큰을 생성해야 합니다.
새 Edge Server 토큰 제공
Edge Server 인스턴스에서 새 토큰을 입력하라는 메시지를 표시하려면 edgectl
를 사용합니다.
edgectl config --update-registration-token=true
이 Atlas는 edgectl
을(를) 트리거하여 토큰을 입력하라는 메시지를 표시합니다. 이를 제공하면 Edge Server 인스턴스가 이 토큰을 시크릿으로 교환합니다. 데이터를 동기화할 때 이 시크릿을 사용하여 Atlas로 인증합니다.
중요
필수 네트워크 액세스
토큰을 API 키로 교환하려면 edgectl
에 네트워크 액세스 권한이 있어야 합니다. edgectl
이(가) 온라인 상태가 아닌 경우 API 키를 순환할 수 없습니다.
Edge Server 의 쿼리 지정
쿼리를 지정하지 않으면 Edge Server 인스턴스는 기본적으로 글로벌 쿼리 "*"
을 사용하며, 연결된 데이터 소스의 모든 컬렉션에 있는 모든 데이터를 자동으로 동기화합니다.
edgectl config
명령과 함께 몇 가지 인수를 사용하여 Edge Server 인스턴스 동기화 쿼리를 지정할 수 있습니다.
간단한 string 쿼리를 전달합니다.
edgectl config --query="Store: store_id == 42" 여러 쿼리 플래그를 전달하여 여러 컬렉션에 대한 쿼리를 제공합니다.
edgectl config --query="Person: age > 10" --query "Pet: type = 'cat'" 더 복잡한 쿼리를 매핑하는 JSON 객체가 포함된 파일의 경로를 전달합니다.
edgectl config --query-file="/Users/my.user/edge-server/query.json" 모든 컬렉션에 대해 동일한 쿼리를 사용하려면 글로벌 쿼리를 전달합니다.
edgectl config --global-query="shouldSync == true"
글로벌 쿼리를 사용하지 않는 한 Edge Server 쿼리는 YOUR-SCHEMA-TITLE: YOUR-QUERY
형식을 취합니다.
YOUR-SCHEMA-TITLE
: 스키마 의title
필드로, 일반적으로 데이터베이스의 컬렉션 이름과 일치합니다. 서로 다른 데이터베이스에 동일한 이름을 가진 두 개의 컬렉션이 있는 경우 데이터베이스 이름 앞에 컬렉션 이름을 붙입니다. 예:databaseName_collectionName
.연결된 Atlas 데이터 소스에는 각각 일치하는 스키마를 가진 여러 컬렉션이 포함될 수 있습니다. 기본 Edge Server 쿼리
"*"
또는 모든 항목을 동기화하는 글로벌 쿼리를 사용하지 않는 경우 동기화하려는 각 스키마에 고유한 쿼리가 있어야 합니다.템플릿 앱을 사용하는 경우 이는
Item
컬렉션입니다.YOUR-QUERY
: Edge Server 가 컬렉션과 동기화할 수 있는 문서를 결정하는 쿼리입니다. RQL 을 사용하여 이 쿼리를 정의할 수 있으며, Flexible Sync RQL 제한과 동일한 주의 사항이 적용됩니다.
참고
쿼리 가능 필드
에지 서버는 Device Sync 를 사용하여 데이터를 Atlas 와 동기화하므로 Edge Server 인스턴스에서 사용하는 쿼리는 쿼리 가능 필드 를 사용해야 합니다. Edge Server 서비스를 사용하는 경우 Edge Server 인스턴스 쿼리에서 사용하는 필드를 쿼리 가능 필드에 자동으로 추가합니다. 에지 서버와 함께 Device Sync 서비스를 사용하는 경우 개발 모드가 활성화된 경우에만 쿼리 가능 필드를 추가합니다.
자세한 내용은 쿼리 가능 필드를 참조하세요.
Edge Server 쿼리 예시
모든 문서 동기화
Edge Server 인스턴스와 Atlas 간에 모든 문서를 동기화할 수 있습니다. truepredicate
또는 "*"
쿼리를 사용합니다. 이는 글로벌 쿼리이므로 edgectl --global-query
인수를 사용하여 string 로 전달할 수 있습니다.
Edge Server 인스턴스를 구성할 때 쿼리를 제공하지 않는 경우 이 쿼리가 기본 쿼리가 됩니다.
edgectl config --global-query="truepredicate"
모든 컬렉션에서 문서의 하위 집합 동기화
문서의 하위 집합만 Edge Server 인스턴스와 동기화할 수 있습니다. 예를 들어 특정 스토어에 있는 인스턴스의 경우 해당 스토어와 관련된 문서만 동기화하고 싶을 수 있습니다. 이에 대한 RQL 쿼리는 다음과 유사할 수 있습니다.
edgectl config --global-query="store_id == 42"
1개의 컬렉션에서 문서의 하위 집합 동기화
에지 서버 호환 서비스에 연결된 데이터 소스에 둘 이상의 컬렉션이 포함되어 있고 특정 컬렉션에 대한 쿼리를 정의하려는 경우 컬렉션에 대한 스키마 제목의 매핑과 관련 쿼리를 제공할 수 있습니다.
이 예에서는 스키마 제목이 Inventory
인 Inventory
컬렉션에 대한 쿼리를 설정합니다. Edge Server 인스턴스는 store_id
가 Edge Server 인스턴스가 위치한 매장 번호인 42
와 일치하는 컬렉션의 문서만 동기화합니다.
edgectl config --query="Inventory: store_id == 42"
연결된 데이터 소스에는 Customers
컬렉션도 포함되어 있습니다. 그러나 해당 컬렉션에 대한 인스턴스의 쿼리가 없기 때문에 컬렉션의 문서 중 어느 것도 Edge Server Edge Server 에지 인스턴스에 store_id
42
동기화되지 Edge Server 않습니다. .
여러 컬렉션에 대해 서로 다른 쿼리 지정
여러 컬렉션에 대해 서로 다른 쿼리를 전달하려는 더 복잡한 쿼리의 경우 두 가지 옵션이 있습니다.
각 컬렉션에 하나씩 여러
--query
플래그를 전달합니다.쿼리를 JSON으로 정의하는 파일의 경로를 전달합니다.
이 예제에는 컬렉션 이름이 스키마 제목과 일치하는 Project
, Item
및 Team
의 세 가지 컬렉션이 있습니다. 이러한 쿼리는 Item
및 Project
컬렉션 중 두 개와 데이터를 동기화합니다. Project
컬렉션에는 Item
컬렉션에 대한 대다 관계 를 나타내는 목록 속성이 있습니다. Team
컬렉션을 Edge Server 인스턴스에 동기화하고 싶지 않습니다. 쿼리에서 이 스키마 제목을 생략하면 해당 데이터가 인스턴스에 동기화되지 않습니다.
이러한 쿼리를 사용하면 시설 42 에 대한 Project
문서만 동기화합니다. 또한 priority
필드 값이 3
이상인 Item
문서만 동기화하고 있습니다. 이러한 방식으로 쿼리를 결합하여 지정된 Edge Server 인스턴스와 관련된 문서만 동기화할 수 있습니다.
여러 쿼리 플래그 전달
edgectl config
와 함께 여러 쿼리 플래그를 전달하여 여러 컬렉션에 대한 쿼리를 제공할 수 있습니다.
edgectl config --query="Project: facility_id == 42" --query "Item: priority >= 3"
쿼리를 JSON 파일로 전달
다양한 쿼리를 정의하는 JSON 파일의 경로를 전달할 수 있습니다. 예를 들면 다음과 같습니다.
edgectl config --query-file="/Users/my.user/edge-server/query.json"
JSON 파일에는 다음이 포함됩니다.
{ "Project": "facility_id == 42", "Item": "priority >= 3" }
오프라인 연결 시뮬레이션
Edge Server 는 Edge Server 인스턴스가 Atlas 와의 연결이 끊어지는 것을 시뮬레이션하는 데 사용할 수 있는 데모 모드를 제공합니다. Edge Server 인스턴스가 오프라인 데모 모드에 있는 CRUD 동안,MongoDB 드라이버나 도구 또는 애플리케이션을 사용하여 인스턴스로 작업을 계속 수행할 수 Atlas Device SDK 있습니다.
Edge Server 인스턴스에 연결된 클라이언트를 통해 로컬로 데이터 변경 사항을 볼 수 있지만 Atlas 에는 반영된 변경 사항이 표시되지 않습니다. Atlas 마찬가지로 Edge Server 인스턴스가 오프라인 상태일 때 에서 변경한 Edge Server 내용도 에지 에 동기화되지 않고 로컬 클라이언트에 반영됩니다.
Edge Server 인스턴스를 오프라인 데모 모드에서 해제하면 자동으로 Atlas 와의 동기화가 다시 시작됩니다. 에 반영된 인스턴스의 데이터를 볼 Edge Server 수 Atlas 있으며, 에서 변경된 데이터는 Atlas 인스턴스와 연결된 클라이언트에 표시됩니다.
오프라인 데모 모드 설정
오프라인 데모 기능을 설정하려면 init
명령 또는 config
명령과 함께 다음 edgectl
플래그를 사용합니다.
edgectl config --insecure-enable-offline-demo
edgectl config
명령과 함께 이 플래그를 실행하는 경우 변경 사항을 적용하려면 Edge Server 인스턴스를 다시 시작해야 합니다.
오프라인 데모 모드 활성화
오프라인 연결을 시뮬레이션하려면 먼저 Edge Server 인스턴스가 Atlas 에 성공적으로 연결되어야 합니다. Edge Server 와의 초기 동기화를 수행한 Atlas 적이 없는 인스턴스에서는 이 기능을 사용할 수 없습니다.
오프라인 데모 모드를 설정하고 Atlas에 성공적으로 연결한 후 다음 edgectl
명령을 실행하여 오프라인 연결을 시뮬레이션합니다.
edgectl offline-demo disable-connection
인터넷 연결이 성공적으로 비활성화되었다는 메시지가 표시됩니다. Edge Server 인스턴스 상태를 확인하면 cloud_connected
부울이 true
에서 false
로 변경됩니다.
이제 CRUD 로컬에서 인스턴스로 작업을 수행할 수 Edge Server 있으며, 변경 사항이 에 반영되지 않아야 합니다.Atlas
오프라인 데모 모드 비활성화
네트워크에 다시 연결하는 것을 시뮬레이션하려면 다음 edgectl
명령을 실행합니다.
edgectl offline-demo enable-connection
인터넷 연결이 성공적으로 활성화되었다는 메시지가 표시됩니다. Edge Server 인스턴스 상태를 확인하면 cloud_connected
부울이 false
에서 true
로 변경됩니다.
변경 사항이 동기화될 때까지 잠시 기다리면 에 로컬 변경 사항이 반영되고 인스턴스에 반영된 변경 사항을 확인할 수 Atlas Atlas Edge Server 있습니다.
호스트에서 여러 Edge Server 인스턴스 실행
Edge Server 아키텍처를 개발하는 동안 단일 호스트(예: 로컬 시스템)에서 여러 Edge Server 인스턴스를 실행할 수 있습니다. edgectl
프로필 기능을 사용하여 이 작업을 수행할 수 있습니다.
Edge Server 인스턴스를 만들면 edgectl
가 자동으로 기본 프로필을 만듭니다. 프로필은 명령을 특정 Edge Server 인스턴스에 매핑합니다.
동일한 머신에서 새 Edge Server 인스턴스를 만들면 edgectl
이(가) 새 프로필을 기본 프로필로 설정합니다. 기본값 이외의 프로필을 사용하는 명령을 실행하려면 각 명령에 --profile
플래그를 추가합니다.
edgectl start --profile=YOUR-PROFILE-NAME
다음에서 프로필 및 관련 구성 파일을 볼 수 있습니다.
~/.mongodb-edge/profiles/
프로필 이름 지정
edgectl init
명령을 실행할 때 --profile
플래그를 사용하여 프로필 이름을 지정할 수 있습니다.
edgectl init --app-id="YOUR-APP-ID" --platform=compose --profile=YOUR-PROFILE-NAME
프로필 나열
다음 edgectl
명령을 사용하여 모든 프로필을 나열하고 현재 기본값으로 설정된 프로필을 확인할 수 있습니다.
edgectl profile list
프로필 세부 정보 가져오기
다음 edgectl
명령을 사용하여 프로필에 대한 세부 정보를 가져올 수 있습니다.
edgectl profile inspect YOUR-PROFILE-NAME
프로필과 연결된 앱 ID 및 플랫폼에 대한 정보를 제공합니다.
{ "appId" : "YOUR-APP-ID", "platform" : "compose" }
기본 프로필 설정
새 프로필을 만들면 이 프로필이 기본 프로필이 됩니다. 다음 edgectl
명령을 사용하여 다른 기본 프로필을 설정할 수 있습니다.
edgectl profile set-default YOUR-PROFILE-NAME
모든 프로필을 다시 나열하면 새로운 기본값을 볼 수 있습니다.
프로필 삭제
다음 edgectl
명령을 사용하여 프로필을 삭제할 수 있습니다.
edgectl profile delete YOUR-PROFILE-NAME
기본 프로필을 삭제하는 경우 새 기본 프로필을 설정하거나 실행할 때마다 --profile
플래그를 전달해야 합니다.