Docs Menu
Docs Home
/ /
Atlas App Services
/

Edge Server 에 연결 - 미리 보기

이 페이지의 내용

  • 에서 에 연결 Edge Server Atlas Device SDK
  • 지원되는 인증 제공자
  • 에지 서버 간 로밍
  • 예시: SwiftUI 템플릿 앱
  • 드라이버 및 도구를 사용하여 Edge Server 에 연결 MongoDB
  • 익명 연결
  • 지원되는 MongoDB API
  • MongoDB Compass 와 연결

Edge Server 인스턴스가 구성 되어 실행 중이 면 클라이언트 애플리케이션에서 연결할 수 있습니다.

클라이언트 에서 Edge Server 인스턴스 에 연결할 수 있는 방법에는 세 가지가 있습니다.

  • Atlas Device SDK: Device Sync 는 여러 장치 및 Edge Server 와 데이터를 자동으로 동기화합니다.

  • MongoDB 드라이버 및 도구: 지원되는 MongoDB API의 하위 집합을 사용하여 CRUD 작업을 수행합니다.

  • MongoDB Compass: Edge Server 인스턴스 에 동기화되는 문서를 탐색하고 해당 문서를 업데이트합니다.

클라이언트 에서 인스턴스 에 연결하려면 Edge Server Atlas Device SDK 앱 이 다음을 충족해야 합니다.

  • 앱 구성의 동기화 URL을 에지 서버 edge_config.json baseURL 필드에 설정한 퍼블릭 액세스 가능 DNS 주소로 설정합니다.

  • TLS가 활성화되지 않은 경우 포트 80을 통해 HTTP를 사용합니다.

에지 서버 배포를 개발하는 동안에는 단순화를 위해 포트 80을 통해 HTTP에 연결하는 것이 좋습니다. 프로덕션으로 이동하기 전에 제품 또는 계정 담당자와 협력하여 자체 서명된 인증서로 HTTPS를 구성할 수 있습니다.

앱 구성 사용자 지정에 대한 자세한 내용은 선호하는 SDK의 설명서를 참조하세요.

Edge Server 는 현재 SDK와 연결할 때 다음과 같은 인증 제공자의 하위 집합을 지원합니다.

SDK 클라이언트는 Edge Server 인스턴스 간 또는 Edge Server 인스턴스와 Atlas 간에 로밍할 수 있습니다.

로밍을 사용하려면 클라이언트의 앱 구성에서 기본 URL 을 변경해야 합니다. 자세한 내용은 위에 링크된 SDK 설명서를 참조하세요.

SDK 사용자가 로밍하는 경우 클라이언트 앱 은 새 서버 에 연결할 때 클라이언트 재설정 을 수행해야 합니다. 클라이언트 재설정에 대한 자세한 내용은 클라이언트 재설정을 참조하세요 .

Edge Server 인스턴스 또는 Edge Server 인스턴스와 Atlas 간에 로밍할 때 익명 사용자는 서버 간에 유지되지 않습니다. Atlas는 클라이언트가 연결되는 각 서버에 대해 새로운 익명 사용자를 생성하며, 서버 간에 로컬 데이터를 유지하지 않습니다.

지원되는 다른 모든 인증 제공자의 경우 사용자는 지속되며 서버 전체에서 예상 데이터에 액세스 할 수 있습니다.

템플릿 앱 을 사용하여 빠른 개념 증명을 위해 Swift 템플릿 앱 을 다음과 Edge Server 같이 수정할 수 있습니다. 인스턴스 에 연결합니다.

1

Swift 템플릿 앱의 atlasConfig 에서 값을 다음으로 설정합니다.

baseUrl
Edge Server 인스턴스 호스트의 공개적으로 액세스할 수 있는 DNS입니다. 이 값은 http:// 이며, TLS가 활성화된https:// IP Edge Server 경우 뒤에 컨테이너 구성에 노출된 주소가 옵니다.
appId
에지 서버가 활성화된 App Services 앱의 앱 ID입니다. 앱 ID 찾기에 대한 자세한 내용은 앱 ID 찾기를 참조하세요.
2

앱에서 TLS를 사용하는 경우 이 단계를 무시해도 됩니다. 개발 중에 TLS를 사용하도록 설정하지 않은 상태로 에지 서버 앱을 개발하는 경우 이 단계를 완료해야 합니다.

iOS의 경우 Apple은 안전하지 않은 연결을 기본적으로 비활성화합니다. 클라이언트 앱이 연결할 수 있도록 허용하려면 공개적으로 액세스할 수 있는 DNS에 대한 예외를 추가해야 합니다.

앱 대상을 선택하고 Signing & Capabilities 탭으로 Go. + Capability 버튼을 누르고 App Transport Security Settings 을 검색합니다. 이 기능을 앱에 추가합니다.

공개 액세스 가능 DNS에 대한 예외 도메인을 추가합니다. 이는 ec2-13-58-70-88.us-east-2.compute.amazonaws.com 와 유사한 문자열 도메인이어야 합니다.

그러면 프로젝트에 Info.plist 파일이 만들어집니다. 이 파일로 이동하여 다음과 같이 조정합니다.

String 키를 Dictionary 로 변경합니다. 다음에 대한 키를 두 개 더 추가합니다.

유형
NSIncludesSubdomains
부울
YES
NSExceptionAllowsInsecureHTTPLoads
부울
YES

이렇게 하면 iOS 클라이언트가 안전하지 않은 HTTP DNS에 연결할 수 있습니다.

Info.plist 파일은 다음과 유사해야 합니다.

위의 설정을 보여주는 Info.plist 파일의 스크린샷
3

에지 서버와의 통신 상태에 대한 추가 세부 정보를 얻으려면 로그 수준을 조정할 수 있습니다.

App 파일에서 .onAppear 블록을 추가하여 로그 수준을 설정할 수 있습니다. 추가 정보를 얻으려면 이 블록에 로그 수준 줄을 추가합니다.

var body: some Scene {
WindowGroup {
ContentView(app: app)
.environmentObject(errorHandler)
.alert(Text("Error"), isPresented: .constant(errorHandler.error != nil)) {
Button("OK", role: .cancel) { errorHandler.error = nil }
} message: {
Text(errorHandler.error?.localizedDescription ?? "")
}
.onAppear {
Logger.shared.level = .trace
}
}
}

로그 수준 설정에 대한 자세한 내용은 로깅 - Swift SDK 를 참조하세요.

4

이제 앱 을 빌드 하고 실행 수 있습니다. 로그인 하면 앱 이 Edge Server 인스턴스 에 연결됩니다. 새 항목을 만들면 해당 항목이 인스턴스 와 동기화 됩니다. 그런 다음 인스턴스 는 Atlas App Services App과 동기화됩니다.

호스팅하다 에서 Edge Server 인스턴스 의 상태를 확인할 수 있습니다. 클라이언트 실행 면 인스턴스 상태에 "num_local_clients": 1 이(가) 표시됩니다. 동기화 상태에 반영된 오류 메시지도 확인할 수 있습니다.

다음에 Edge Server 인스턴스가 App Services App 과 동기화되면 연결된 Atlas 컬렉션에 동기화된 변경 사항이 반영된 것을 확인할 수 있습니다.

중요

이전에 Device Sync를 사용하여 클라이언트에서 App Services App에 직접 연결한 경우 시뮬레이터 또는 장치에서 상태를 지워야 할 수 있습니다. 캐시를 재설정하면 클라이언트가 Edge Server 인스턴스에 연결할 수 있습니다.

콘솔 앱에서 mongodb-realm 디렉토리를 삭제합니다. iOS 또는 Android 시뮬레이터 또는 기기를 사용하는 경우 앱을 제거했다가 다시 설치하세요.

표준 MongoDB 드라이버 및 도구를 사용하여 에지 서버에 연결할 수 있습니다. 클라이언트는 특수 MongoDB URI 연결 문자열을 사용하여 에지 서버에 연결하고 요청을 보냅니다.

유선 프로토콜 서버 는 이러한 수신 연결을 허용합니다. MongoDB URI를 사용하여 호스팅하다 머신에 연결할 수 있습니다.

이 URI는 인증 유형에 따라 다를 수 있습니다. 대체로 다음과 같은 형식과 유사합니다.

mongodb://<username>:<password>@<hostname>:<port>?authMechanism=PLAIN
요소
설명
<username>
Atlas user 의 사용자 이름입니다. 이메일/비밀번호 사용자 의 경우 first.last@example.com 와(과) 유사할 수 있습니다. 이 사용자 이름에 @ 기호가 포함된 경우 @ 기호를 이스케이프 처리해야 합니다. 예를 들어 john.doe@example.comjohn.doe%40example.com 이(가) 됩니다.
<password>
Atlas user 의 비밀번호입니다. 이는 myPassword123456 와 유사할 수 있습니다.
<hostname>
Edge Server 호스팅하다 의 공용 DNS입니다. 로컬 개발 중에는 localhost 일 수 있습니다. 그렇지 않으면 ec2-13-58-70-88.us-east-2.compute.amazonaws.com 과 유사하게 보일 수 있습니다. 자세한 내용 은 Edge Server 인스턴스 설치 및 구성을 참조하세요.
<port>
Edge Server 유선 프로토콜 수신 포트입니다. 기본값 포트는 27021 입니다. 자세한 내용 은 Edge Server 인스턴스 설치 및 구성을 참조하세요.
authMechanism=PLAIN
인증 메커니즘. 현재 지원되는 유일한 값은 PLAIN 입니다.

예시

EC 에서 호스팅되는 인스턴스 에 대한 유선 프로토콜 연결 URI는 Edge Server Amazon 2 다음과 유사할 수 있습니다.

mongodb://example-user:my-password@ec2-13-58-70-88.us-east-2.compute.amazonaws.com:27021?authMechanism=PLAIN

사용자 이름이나 비밀번호를 지정하지 않고도 익명 연결을 활성화하고 연결할 수 있습니다. 이 옵션은 기본적으로 비활성화되어 있습니다.

중요

프로덕션에서 익명 연결 비활성화

익명 연결을 활성화하면 인증 흐름을 우회하여 개발을 간소화할 수 있습니다. 이는 개발 보조용으로만 사용됩니다. 프로덕션 환경에서는 인증 흐름을 우회하지 마세요.

1

익명 연결을 활성화 하려면 --insecure-disable-auth 플래그를 true로 설정하다 하여 Edge Server 를 시작합니다. 이렇게 하면 사용자 이름 과 비밀번호를 지정하지 않고도 연결할 수 있습니다.

이 설정은 기본적으로 false 입니다. 이 값을 true 로 설정하면 연결에서 인증을 우회할 수 있습니다.

edgectl 를 사용하여 에지 서버 인스턴스를 구성하고 시작하는 방법에 대한 자세한 내용은 Edge Server 인스턴스 Edge Server 및 구성을 참조하세요.

2

인증 없이 연결할 때 MongoDB URI는 인증 관련 매개변수를 생략합니다. 이 간소화된 URI는 다음과 같습니다.

mongodb://<hostname>:<port>

예시

EC 에서 호스팅되는 인스턴스에 대한 익명 유선 프로토콜 연결 URI는 Edge Server Amazon 2 다음과 유사할 수 있습니다.

mongodb://ec2-13-58-70-88.us-east-2.compute.amazonaws.com:27021

개발 중 컴퓨터에서 실행 중인 Edge Server 인스턴스에 대한 익명 연결은 다음과 유사할 수 있습니다.

mongodb://localhost:27021

Edge Server 는 현재 MongoDB API의 하위 집합을 지원합니다. 지원되는 API에 대한 자세한 내용은 Edge Server MongoDB API 지원 - 미리 보기를 참조하세요.

MongoDB Compass Edge Server 통해 MongoDB URI를 사용하여 인스턴스 에 연결할 수 있습니다. Compass 를 사용하면 Edge Server 인스턴스 에 동기화되는 문서를 탐색하고 해당 문서를 업데이트할 수 있습니다.

Edge Server Compass 에 대한 지원은 제한적입니다. 다음과 같은 용도로 사용할 수 있습니다.

  • Edge Server 인스턴스 에서 데이터베이스, 컬렉션 및 문서를 찾습니다.

  • 인스턴스의 CRUD 문서에 Edge Server 대해 기본 작업을 수행합니다.

현재 Edge Server 는 Compass 를 사용한 애그리게이션을 지원하지 않습니다.

돌아가기

에지 서버 구성