Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/

Google 클라우드로 연결 관리

Google Cloud Platform FunctionsGoogle Cloud Platform Run을 사용하여 Atlas 클러스터와 상호 작용 수 있습니다.

다음 권장사항을 사용하여 Google Cloud 함수와 Atlas 간의 연결을 올바르게 관리합니다.

  • 함수 범위의 데이터베이스 연결이 아닌 글로벌 범위의 데이터베이스 연결을 사용하여 Cloud Function을 만드세요.

    함수를 호출할 때마다 새 클라이언트 객체 정의하지 마세요. 이렇게 하면 드라이버 각 함수 호출에 대해 새 데이터베이스 연결을 생성하게 됩니다. 이 경우 비용이 많이 들 수 있으며 애플리케이션 데이터베이스 연결 제한을 초과할 수 있습니다. 최상의 성능을 얻으려면 다음 지침을 따르세요.

    1. 클라이언트 객체 한 번 생성합니다.

    2. 함수가 함수 호출 전반에서 클라이언트 재사용할 수 있도록 객체 를 저장합니다.

    연결 예시는 기존 데이터베이스 연결을 재사용하여 데이터베이스와의 통신 속도를 높이고 애플리케이션 트래픽과 관련하여 데이터베이스에 대한 연결 수를 합리적인 수준으로 유지합니다.

    샤드가 많은 샤딩된 클러스터 에 연결하는 함수가 있는 경우 성능 문제가 발생할 수 있습니다. 예시 들어, 10개의 샤드 Atlas 클러스터 의 경우 드라이버 기본값 으로 30개의 mongos 인스턴스 모두에 연결됩니다. 연결 문자열 에 srvMaxHosts 옵션을 사용하여 드라이버 연결하는 최대 호스트 수를 설정할 수 있습니다. 드라이버 성능을 개선하려면 srvMaxHosts=3을(를) 설정하다. 예시 들면 다음과 같습니다.

    mongodb+srv://<db_username>:<db_password>@<clusterName>.mongodb.net/?retryWrites=true&w=majority&srvMaxHosts=3

    자세한 사항은 연결 옵션을 참조하세요.

  • Atlas 클러스터에 대한 네트워크 액세스를 제한합니다.

    Atlas 클러스터 Atlas 와 GCP 함수 간의 네트워크 피어링 연결 을 사용하거나 비공개 엔드포인트 를 사용하여 비공개 네트워킹을 통해 클러스터 에 연결하여 IP 액세스 IP 목록 에서 비공개 주소만 허용할 수 있습니다.

    개인 네트워킹을 사용하지 않는 경우 NAT 게이트웨이를 통해 Atlas 클러스터에 연결하는 방식을 고려해 보세요. . 그렇지 않으면 모든 IP 주소(0.0.0.0/0)가 Atlas 클러스터에 액세스할 수 있도록 허용해야 합니다.

    경고

    IP 액세스 목록에 0.0.0.0/0 추가하면 공용 인터넷의 어디에서든지 cluster에 액세스할 수 있습니다. 어디에서든 액세스를 허용하는 경우 데이터베이스 사용자 에 대해 강력한 자격 증명을 사용해야 합니다.

    참고

    프로젝트 액세스 목록에 0.0.0.0/0 CIDR을 추가하면 Atlas 프로젝트 에 직접 역할 부여하거나 팀 멤버십을 통해 역할 간접적으로 부여받은 모든 사용자( 팀 에 프로젝트 에 역할 부여된 경우)에게 경고 이메일 보냅니다. .

  • 유휴 시간 1분 후 자동으로 연결을 종료하려면 maxIdleTimeMS60000으로 설정합니다. maxIdleTimeMS를 조정하면 서버리스 함수에서 시간 초과 오류 발생을 줄이는 데 유용할 수 있습니다.

  • 동시성을 구성합니다. 새 Google Cloud 기능을 만드는 경우:

    • 여러 개의 동시 요청을 처리할 수 있는 2nd gen 환경을 선택합니다. 2ndgen은 또한 함수가 많은 동시 호출로 단일 MongoClient 를 공유할 수 있도록 허용하여 서버의 연결 로드를 줄입니다.

    • 동시성 설정을 높이면 콜드 부팅을 최소화하고 지연 시간을 개선할 수 있습니다.

    참고

    동시성 설정을 늘리는 경우 최상의 성능을 위해 CPU를 늘려야 할 수 있습니다. 자세한 학습 은 동시성을 참조하세요.

다음 예시에서는 Node.js Google Cloud 함수를 Atlas 배포셔벼에 연결합니다. <YOUR-ATLAS-CONNECTION-STRING>을 Atlas 연결 문자열로 바꿉니다.

const { MongoClient } = require('mongodb');
let client;
async function getConnection() {
if (!client) {
const client = new MongoClient('<YOUR-ATLAS-CONNECTION-STRING>');
client.on('connectionCreated', () => {
console.log('New connection created successfully.');
});
// Connect to the database in the global scope
await client.connect();
}
return client;
}

돌아가기

Azure Functions

이 페이지의 내용