이 문서에서는 구성 컨트롤러 사용을 샤딩하는 방법에 대한 권장사항을 제공합니다. 샤딩은 구성 컨트롤러로 관리되는 Google Cloud 리소스를 여러 네임스페이스, 클러스터 또는 프로젝트 간에 분할하는 프로세스입니다.
샤딩은 다음과 같은 이점을 제공합니다.
- 상황 변화로 인한 영향 감소: 단일 샤드가 작동 중지해도 다른 샤드는 영향을 받지 않습니다.
- 보안 관리에 도움: 각 샤드에는 전용 IAM 및 RBAC 구성이 있을 수 있습니다. 하나의 샤드를 손상시키는 악의적인 공격자가 있어도 다른 샤드에 액세스하기는 어렵습니다. 한 샤드의 구성이 잘못되어도 다른 샤드에 영향을 줄 수 없습니다.
- 확장성 향상: 단일 샤드는 관리형 객체 수 또는 API 할당량과 같은 확장성 병목 현상을 보일 수 있습니다. 샤드가 여러 개 있으면 구성 컨트롤러 사용의 전반적인 확장성이 증가합니다.
구성 컨트롤러에서 샤딩 사용
샤딩을 구현하는 방법에는 몇 가지가 있습니다. 어느 방법이 가장 좋은지는 특정 니즈와 요구사항에 따라 달라집니다.
샤딩 모델
샤딩에는 다음과 같은 두 가지 주요 모델이 있습니다.
- 비즈니스 분야별 또는 애플리케이션팀별: 이 모델은 일반적으로 다른 팀에서 구성 컨트롤러를 사용할 때 사용됩니다. 이 모델에서는 팀마다 자체 샤드가 있습니다.
- 환경별: 이 모델은 일반적으로 구성 컨트롤러가 다른 환경에서 사용되는 경우에 사용됩니다. 예를 들어 개발 환경의 샤드, QA 환경의 샤드, 프로덕션 환경의 샤드가 있을 수 있습니다.
샤드 간 참조 필요성 최소화
구성 컨트롤러 사용을 샤딩할 때는 샤드 간 참조의 필요성을 최소화해야 합니다. 샤드 간 참조 때문에 구성이 더 복잡하고 관리하기 어려워질 수 있습니다. 자세한 내용은 인스턴스 간 리소스 참조를 참조하세요.
샤딩 메커니즘
샤딩에는 세 가지 주요 메커니즘이 있습니다.
- 네임스페이스별: 추가 네임스페이스를 만들고 구성 커넥터를 구성하여 해당 네임스페이스의 리소스를 관리할 수 있습니다.
- 구성 컨트롤러 인스턴스별: 하나의 Google Cloud 프로젝트에 여러 구성 컨트롤러 인스턴스를 만들 수 있습니다.
- 프로젝트별: 여러 Google Cloud 프로젝트에 구성 컨트롤러 인스턴스 여러 개를 만들 수 있습니다. 이러한 메커니즘은 하나의 프로젝트에서 할당량 병목 현상이 발생하는 경우 API 할당량 문제를 해결하는 데 도움이 됩니다. 자세한 내용은 리소스를 여러 프로젝트로 분할을 참조하세요.
샤딩 구현 시 주의사항
구성 컨트롤러 사용에 대해 샤딩을 구현할 때는 주의해야 하는 몇 가지 문제가 있으며 이러한 문제를 완화하기 위한 계획을 세워야 합니다.
인스턴스 간 리소스 참조
구성 컨트롤러를 샤딩할 때의 문제 중 하나는 인스턴스 간 리소스 참조를 처리하는 것입니다. 예를 들어 플랫폼팀은 하나의 인스턴스에 여러 프로젝트를 만들고, 앱팀은 다른 인스턴스에서 해당 프로젝트를 참조하는 리소스를 만들 수 있습니다. 이로 인해 다음과 같은 문제가 발생할 수 있습니다.
- 복잡성 증가: 클러스터 간 리소스 참조를 관리하면 구성이 더 복잡해지고 관리하기 어려울 수 있습니다.
- 위험 증가: 한 샤드에서 리소스가 삭제되어도 다른 샤드의 리소스에서 계속 참조할 수 있습니다. 이로 인해 예기치 않은 동작 및 데이터 손실이 발생할 수 있습니다.
- 성능 저하: 클러스터 간 리소스 참조로 인해 구성 변경 지연 시간이 늘어날 수 있습니다.
교차 참조 문제점을 해결하는 몇 가지 방법이 있습니다.
- 샤드 간 참조가 필요 없는 방식으로 샤딩. 이를 위해서는 환경 또는 팀별로 샤딩하면 됩니다.
- 외부 참조 사용. 즉, 참조되는 객체가 실제로는 구성 컨트롤러에서 관리되지 않습니다. 이는 객체가 자주 변경되지 않는 경우에 적합한 옵션일 수 있습니다.
- 모든 샤드에서 동일한 객체 사용. 이는 더 복잡한 옵션이지만 객체가 자주 변경되는 경우 가장 좋은 옵션일 수 있습니다.
객체는 서로 다른 샤드에서 이러한 객체 간의 조정 경합을 방지하기 위해 동일한 정보 소스를 공유해야 합니다. 이러한 객체에서 충돌 방지 정책을
none
으로 설정해야 합니다.
옵션을 선택하기 전에 각 방법의 장점과 단점을 신중하게 고려해야 합니다.
API 할당량
샤딩은 API 할당량을 늘릴 수 있습니다. 이를 충분히 인지하고 그에 따라 계획해야 합니다. API 할당량 한도 관리에 대한 권장사항은 API 할당량 한도 관리를 참조하세요.
다음 단계
- 구성 컨트롤러 확장성 자세히 알아보기