서비스 제한 사항
이 페이지의 내용
개요
Atlas App Services에는 도구 및 클라이언트가 App Services를 통해 MongoDB와 상호 작용하는 방식을 설계할 때 염두에 두어야 할 몇 가지 지침이 있습니다. 쿼리 구조화 방법을 결정하고, 사용할 CRUD 및 집계 작업을 선택하고, 동시 워크로드를 처리하는 방법을 결정할 때 이 지침을 염두에 두세요.
집계
App Services 는 $currentOp
및 제외한 시스템 기능 의 모든 집계 파이프라인 단계 를 $indexStats
지원합니다.
보안상의 이유로 사용자 함수에서는 집계 파이프라인 단계의 하위 집합만 지원됩니다.
사용 가능한 파이프라인 단계 목록과 허용되는 함수 컨텍스트는 집계를 참조하세요.
Atlas
배치 로드
MongoDB Atlas에 데이터를 일괄/배치 로드하는 경우, App Services 프로세스가 변경되는 동안 기기에 데이터가 표시되는 데 지연이 발생할 수 있습니다.
연합 데이터베이스 인스턴스
연합 데이터베이스 인스턴스를 MongoDB 데이터 소스로 앱에 연결할 수 있습니다. 하지만 Atlas Data Federation으로 작업할 때 유의해야 할 몇 가지 주의 사항이 있습니다:
연합 데이터 소스는 쓰기 작업을 지원하지 않습니다.
연합된 데이터 소스에는 시스템 기능에서만 액세스할 수 있습니다.
유선 프로토콜을 통해서는 연합된 데이터 소스에 연결할 수 없습니다.
연합 데이터 소스에 대한 역할 및 사용 권한을 정의할 수 없습니다.
연합 데이터 소스에 대한 읽기 설정(read preference)을 지정할 수 없습니다.
연합 데이터 소스에서는 데이터베이스 트리거를 만들 수 없습니다.
연합 데이터 소스는 앱의 Device Sync 클러스터로 사용할 수 없습니다.
Serverless Instances
서버리스 인스턴스를 앱에 MongoDB 데이터 소스로 연결할 수 있습니다. 그러나 서버리스 인스턴스는 현재 변경 스트림을 지원하지 않으므로 다음 기능이 제한됩니다.
서버리스 인스턴스에서는 데이터베이스 트리거를 만들 수 없습니다.
서버리스 인스턴스는 앱의 Device Sync 클러스터로 사용할 수 없습니다.
서버리스 MongoDB Atlas 인스턴스인 변경 데이터 소스에 대한 컬렉션을 볼 수 없습니다.
샤딩된 클러스터
Atlas Device Sync는 현재 샤딩된 MongoDB Atlas 클러스터를 지원하지 않습니다. 그러나 샤딩된 클러스터를 데이터 소스로 추가하고 함수에서 액세스할 수 있습니다.
Time Series 컬렉션
Time series 컬렉션은 아직 변경 스트림을 지원하지 않습니다. 따라서 time series 컬렉션에서는 트리거를 정의할 수 없습니다.
Atlas Device Sync와 함께 time series 컬렉션을 사용할 수 있지만, 데이터 수집만 지원됩니다.
비공개 엔드포인트
App Services는 AWS PrivateLink를 통해 AWS 가상 비공개 클라우드에 안전하게 연결할 수 있는 비공개 엔드포인트를 지원합니다. 비공개 엔드포인트를 사용하려면 앱을 AWS의 리전에 로컬로 배포해야 합니다. App Services는 글로벌 앱 또는 GCP 또는 Azure에 배포된 앱의 비공개 엔드포인트를 지원하지 않습니다. 자세한 내용은 비공개 엔드포인트를 참조하세요.
변경 스트림
App Services는 클러스터의 크기를 기반으로 모든 앱에서 특정 클러스터에 대해 열려 있는 총 변경 스트림 수를 제한합니다. 다음 표에는 각 클러스터 크기에 대한 제한 사항이 나열되어 있습니다.
클러스터 크기 | 최대 Change Streams 수 |
---|---|
프리 티어( M0 ) | 5 |
공유 클러스터( M2 /M5 ) | 10 |
소규모 전용 클러스터( M10 /M20 ) | 100 |
표준 클러스터( M30 /M40 ) | 1000 |
표준 클러스터( M50 - M90 ) | 1000 |
고성능 클러스터( M100+ ) | 1000 |
참고
App Services는 데이터베이스 트리거 또는 Device Sync 작업과 연결된 각 컬렉션에서 단일 변경 스트림을 엽니다.
중요
사용 권장 사항
열려 있는 변경 스트림의 수를 최소화하려면 다음을 따릅니다:
필요한 경우에만 동기화 작업을 시작합니다. 더 이상 필요하지 않은 경우 열려 있는 동기화 스트림을 즉시 닫습니다.
무제한의 컬렉션을 동기화해야 하는 데이터 모델은 피합니다.
데이터베이스 명령
App Services 는 클라이언트 SDK 또는 함수 에서 데이터베이스 명령 을 지원 하지 않습니다. 그러나 유선 프로토콜 을 통해 MongoDB cluster 에 연결된 경우 데이터베이스 명령의 제한된 하위 집합을 호출할 수 있습니다. 지원되는 명령 목록은 데이터베이스 명령을 참조하세요.
Device Sync
동시 워크로드
최대 5 000 동시 동기화 연결을 가질 수 있습니다. 요청 트래픽을 참조하세요.
- 쓰기:
- 성능 향상을 위해 단일 MongoDB 문서에 대한 동시 쓰기 수를 제한할 수 있습니다. App Services에는 MongoDB 문서에 데이터를 동시에 쓰는 사용자 수에 대한 엄격한 제한이 없습니다. 그러나 동시 작성자가 30명을 초과하면 동기화 또는 충돌 해결이 지연될 수 있습니다.
- 읽기:
- 글로벌 영역에서 읽는 프론트엔드 클라이언트는 동시 사용자 수를 수만 명 이상으로 확장할 수 있습니다.
팁
확장성
다수의 동시 작성자를 보유하려는 경우 각 작성자가 별도의 문서에서 작업하도록 합니다.
기본 메시지 크기 제한
Device Sync 의 기본값 메시지 크기 제한은 클라이언트 애플리케이션 에서 전송되는 모든 메시지에 대해 압축되는 20 MB입니다. 메시지 크기는 클라이언트 장치에서 전송된 변경 사항의 압축된 크기에 따라 달라집니다. 변경 세트 및 동기화에서 사용하는 압축에 대한 자세한 내용은 변경 세트를 참조하세요 .
변경 세트의 압축된 크기는 업로드에 포함된 문서 의 크기와 직접적으로 동일하지 않습니다. 그러나 실제로 변경 세트 크기는 일반적으로 업로드에 포함된 문서 크기와 거의 동일합니다.
이 제한은 너무 많은 리소스를 소비하는 연결에 대한 대응책 역할을 합니다.
이 제한은 failed to read: read
limited at 20971521 bytes
과 유사한 오류 메시지로 표시될 수 있습니다.
지원 티켓 을 제출하여 더 높은 한도를 요청 수 있습니다.
비활성화로 인한 일시 중지
30일 동안 활동이 없으면 Device Sync가 일시 중지됩니다. Device Sync를 다시 활성화하는 방법에 대한 자세한 내용은 동기화 재활성화를 참조하세요.
MongoDB 버전 요건
MongoDB 서비스를 통해 MongoDB 버전 3.6의 CRUD 및 집계 기능 대부분에 액세스할 수 있지만, App Services는 표준 도구 및 클라이언트에서 사용할 수 있는 모든 작업 및 기능을 지원하지 않습니다. App Services를 통해 MongoDB에 연결할 때 사용할 수 있는 특정 MongoDB 작업 목록은 CRUD & 집계 API 레퍼런스를 참조하세요.
Device Sync를 사용하려면 MongoDB Atlas 클러스터가 특정 버전의 MongoDB를 실행해야 합니다. Flexible Sync에는 MongoDB 5.0.0 이상이 필요합니다.
HTTP 버전 요건
데이터 API 및 HTTPS 엔드포인트는 요청 시 HTTP/1.1 이상이 필요합니다.
쿼리 옵션
App Services는 시스템 함수의 모든 쿼리 옵션을 지원합니다. App Services는 사용자 함수에서 실행되는 CRUD 작업에 대한 특정 옵션을 지원하지 않습니다. App Services를 통해 MongoDB에 연결할 때 사용할 수 있는 특정 옵션의 목록은 쿼리 옵션을 참조하세요.
쿼리 결과
App Services를 통해 실행되는 MongoDB 쿼리는 최대 50,000개의 문서를 반환할 수 있습니다. 더 많은 문서를 반환해야 하는 경우 쿼리에 페이지 매김을 지정하는 것이 좋습니다.
요청 트래픽
App Services는 요청 트래픽을 다음 기본값으로 제한합니다:
10,000 동시 요청. 동기화되지 않은 동시 요청 제한을 초과하는 요청은 HTTP 응답 상태 코드 429 - 너무 많은 요청 을 받습니다. .
5,000개의 동시 Device Sync 연결.
App Services는 위 한도의 몇 배에 달하는 요청을 처리할 수 있습니다. 이러한 제한은 애플리케이션의 처리 가능한 범위 내 확장을 보장하고 DOS 공격 및 의도치 않은 요금 청구를 방지하기 위해 설정된 것입니다.
지원 티켓 을 제출하여 더 높은 한도를 요청 수 있습니다.
연결 풀링
App Services는 연결 풀링을 사용하여 요청과 트리거 실행 간에 연결을 자주 열고 닫을 때 발생하는 오버헤드를 줄입니다. 이 경우 연결이 필요에 따라 열립니다. 연결 풀링은 여러 가지 요인에 따라 달라집니다:
클러스터 계층. 클러스터 계층이 높을수록 풀에서 더 많은 연결을 사용할 수 있습니다.
배포 모드. 글로벌 배포는 각 리전에서 여러 서버를 사용하므로 전체적으로 더 큰 연결 풀을 갖습니다.
서비스. 각 서비스에는 독립적인 연결 풀이 있으므로 앱의 서비스 수가 사용 가능한 연결 수에 영향을 미치지 않습니다.
정적 호스팅
App Services는 정적 호스팅에 최대 25MB의 파일 크기 제한을 적용합니다.
중요
정적 호스팅은 더 이상 사용되지 않습니다. 자세히 알아보세요.