Community코딩 & 개발github.com

cline/cosmosdb-모범-사례

Azure Cosmos DB 사용 시 성능, 비용 및 보안을 최적화하기 위한 모범 사례를 제공합니다.

cosmosdb-모범-사례란 무엇인가요?

이 스킬은 Azure Cosmos DB를 활용하는 개발자 및 AI 에이전트 사용자에게 최적의 성능, 비용 효율성, 보안을 달성하기 위한 포괄적인 지침을 제공합니다. CLI 도구 및 AI 에이전트 플랫폼(예: Claude Code, Cursor)과 함께 사용하도록 설계되었으며, SKILL.md 문서를 기반으로 실제 구현 시 따라야 할 구체적인 권장 사항을 설명합니다. 주요 내용으로는 파티션 키 전략, 인덱싱 정책, 요청 단위 최적화, 글로벌 배포 설정, 네트워크 격리 및 인증 구성 등이 포함됩니다. 이 스킬을 통해 사용자는 Cosmos DB 계정을 더 효율적으로 설계하고, 쿼리 성능을 개선하며, 운영 비용을 절감할 수 있습니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/cline/skills/tree/main/skills/cosmosdb-best-practices

Installed? Explore more 코딩 & 개발 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

cosmosdb-모범-사례은(는) 무엇을 하나요?

'cosmosdb-best-practices' 에이전트 스킬 (cline/skills)

이 스킬은 Azure Cosmos DB를 사용할 때 따라야 할 주요 모범 사례를 제공합니다.

개요

Azure Cosmos DB는 전 세계적으로 분산된 다중 모델 데이터베이스 서비스로, 높은 가용성, 짧은 지연 시간, 그리고 유연한 스키마를 제공합니다. 이 스킬은 Cosmos DB의 성능, 비용, 그리고 보안을 최적화하는 방법을 안내합니다.

주요 모범 사례

1. 파티션 키 선택

  • 균일한 분포: 파티션 키는 요청이 여러 파티션에 균등하게 분산되도록 선택하십시오.
  • 핫 파티션 방지: 데이터 액세스 패턴이 특정 파티션에 집중되지 않도록 하십시오.
  • 쿼리 범위 고려: 대부분의 쿼리가 동일한 파티션 내에서 수행되도록 설계하십시오.

2. 인덱싱 정책

  • 기본 인덱싱: 모든 필드에 대해 자동 인덱싱이 활성화되어 있으므로, 필요 없는 경우 특정 경로를 제외하십시오.
  • 복합 인덱스: 다중 필드 정렬이나 필터가 필요한 쿼리의 성능을 위해 복합 인덱스를 사용하십시오.
  • 인덱스 크기 최적화: 인덱싱하지 않을 필드를 명시적으로 제외하여 저장 비용을 절감하십시오.

3. 요청 단위(RU) 최적화

  • 프로비저닝 모드 선택: 워크로드 특성에 따라 프로비저닝된 처리량과 서버리스 모드 중 선택하십시오.
  • 쿼리 비용 평가: 각 쿼리의 RU 비용을 x-ms-request-charge 헤더로 모니터링하십시오.
  • 일괄 처리: 가능한 경우 여러 작업을 하나의 트랜잭션으로 결합하여 RU 사용량을 줄이십시오.

4. 글로벌 분배

  • 다중 마스터: 여러 지역에 데이터를 쓰기 위해 다중 마스터 구성을 사용하십시오.
  • 자동 장애 조치: 고가용성을 위해 자동 장애 조치 정책을 구성하십시오.
  • 읽기 기본 설정: 사용자와 가까운 지역에서 읽기를 수행하도록 애플리케이션을 설정하십시오.

5. 보안

  • 네트워크 격리: VNet 서비스 끝점 또는 프라이빗 엔드포인트를 사용하여 데이터베이스에 대한 액세스를 제한하십시오.
  • 인증: Azure AD 관리 ID를 사용하여 서비스 간 인증을 처리하십시오.
  • 암호화: 전송 중 데이터 암호화를 위해 TLS 1.2 이상을 사용하고, 저장 데이터 암호화는 기본 설정을 그대로 사용하십시오.

예제 코드

다음은 Node.js SDK를 사용하여 Cosmos DB 데이터베이스에 연결하고 항목을 쿼리하는 간단한 예제입니다.

const { CosmosClient } = require("@azure/cosmos");

const endpoint = process.env.COSMOS_DB_ENDPOINT;
const key = process.env.COSMOS_DB_KEY;

const client = new CosmosClient({ endpoint, key });

async function queryItems() {
  const database = client.database("mydb");
  const container = database.container("mycontainer");

  const querySpec = {
    query: "SELECT * FROM c WHERE c.category = @category",
    parameters: [
      { name: "@category", value: "electronics" }
    ]
  };

  const { resources: items } = await container.items.query(querySpec).fetchAll();
  console.log(items);
}

queryItems().catch(console.error);

환경 변수

변수 이름설명
COSMOS_DB_ENDPOINTCosmos DB 계정 엔드포인트 (예: https://myaccount.documents.azure.com:443/)
COSMOS_DB_KEYCosmos DB 계정의 기본 키 또는 보조 키

참고 링크


이 스킬은 Azure Cosmos DB 사용 시 효율성과 신뢰성을 높이기 위해 설계되었습니다.

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

관련 스킬