> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-postgresql-tls-support.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# 웨어하우스

> ClickHouse Cloud의 컴퓨트-컴퓨트 분리

export const ScalePlanFeatureBadge = ({feature = '이 기능', linking_verb_are = false}) => {
  return <div className="scalePlanFeatureContainer">
            <div className="scalePlanFeatureBadge">
                Scale 플랜 기능
            </div>
            <div>
                <p>{feature} Scale 및 Enterprise 플랜에서 제공됩니다. 업그레이드하려면 Cloud Console의 플랜 페이지를 방문하세요.</p>
            </div>
        </div>;
};

export const Image = ({img, alt, size = "lg"}) => {
  const normalizedSize = ["sm", "md", "lg"].includes(size) ? size : "lg";
  return <div className={`ch-image-${normalizedSize}`}>
      <Frame>
        <img src={img} alt={alt} />
      </Frame>
    </div>;
};

<div id="what-is-compute-compute-separation">
  ## 컴퓨트-컴퓨트 분리란 무엇입니까?
</div>

컴퓨트-컴퓨트 분리를 설명하기 전에, 먼저 ClickHouse Cloud에서 **서비스**가 무엇을 의미하는지 이해하면 도움이 됩니다.

각 ClickHouse Cloud 서비스에는 다음이 포함됩니다:

* 전용 CPU 및 메모리 클러스터를 갖춘 ClickHouse 컴퓨트 노드(이를 **레플리카**라고 함)
* 서비스에 연결하기 위한 endpoint(또는 ClickHouse Cloud UI 콘솔을 통해 생성한 여러 endpoint)로, 로컬 및 서드파티 앱 연결에 사용됩니다(예: `https://dv2fzne24g.us-east-1.aws.clickhouse.cloud:8443`)
* 서비스의 모든 데이터와 일부 메타데이터를 저장하는 객체 스토리지 폴더:

<Image img="https://mintcdn.com/private-7c7dfe99-postgresql-tls-support/BpOjJtP59hA3M9fS/images/cloud/reference/compute-compute-1.webp?fit=max&auto=format&n=BpOjJtP59hA3M9fS&q=85&s=682a3b2726f965d3b34e99664f535596" size="md" alt="ClickHouse Cloud의 단일 서비스" width="1349" height="1100" data-path="images/cloud/reference/compute-compute-1.webp" />

<br />

*그림 1 - ClickHouse Cloud의 단일 서비스*

단일 서비스만 사용하는 대신, 동일한 공유 스토리지에 액세스하는 여러 서비스를 생성할 수 있습니다. 이를 통해 데이터를 복제하지 않고도 특정 워크로드에 리소스를 전용 할당할 수 있습니다.
이 개념을 **컴퓨트-컴퓨트 분리**라고 합니다.

컴퓨트-컴퓨트 분리에서는 각 서비스가 자체 레플리카 세트와 endpoint를 가지지만, 동일한 객체 스토리지 폴더를 사용하고 같은 테이블, 뷰 등에 액세스합니다.
즉, 각 워크로드에 맞는 적절한 크기의 컴퓨트를 선택할 수 있습니다. 일부 워크로드는 소형 레플리카 1개만으로도 충분할 수 있지만, 다른 워크로드는 완전한 고가용성(HA)과 여러 레플리카에 걸친 수백 GB의 메모리가 필요할 수 있습니다.

또한 컴퓨트-컴퓨트 분리를 사용하면 읽기 작업과 쓰기 작업을 분리하여 서로 간섭하지 않도록 할 수 있습니다:

<Image img="https://mintcdn.com/private-7c7dfe99-postgresql-tls-support/BpOjJtP59hA3M9fS/images/cloud/reference/compute-compute-2.webp?fit=max&auto=format&n=BpOjJtP59hA3M9fS&q=85&s=1110029d393df1216752054f1a42fdad" size="md" alt="ClickHouse Cloud의 컴퓨트 분리" width="1349" height="1100" data-path="images/cloud/reference/compute-compute-2.webp" />

<br />

*그림 2 - ClickHouse Cloud의 컴퓨트 분리*

<div id="what-is-a-warehouse">
  ## 웨어하우스란 무엇입니까?
</div>

ClickHouse Cloud에서 *웨어하우스* 는 동일한 데이터를 공유하는 **서비스** 집합입니다.
각 웨어하우스에는 기본 서비스(가장 먼저 생성된 서비스)와 하나 이상의 보조 서비스가 있습니다.
예를 들어, 아래 스크린샷에서는 두 개의 서비스로 구성된 웨어하우스 "DWH Prod"를 확인할 수 있습니다.

* 기본 서비스 `DWH Prod`
* 보조 서비스 `DWH Prod Subservice`

<Image img="https://mintcdn.com/private-7c7dfe99-postgresql-tls-support/BpOjJtP59hA3M9fS/images/cloud/reference/compute-compute-8.webp?fit=max&auto=format&n=BpOjJtP59hA3M9fS&q=85&s=7b3e988f2b13f133433c7f17894d94d3" size="lg" alt="기본 서비스와 보조 서비스가 있는 웨어하우스 예시" background="white" width="1582" height="226" data-path="images/cloud/reference/compute-compute-8.webp" />

<br />

*그림 3 - 웨어하우스 예시*

웨어하우스의 모든 서비스는 다음 항목을 공유합니다.

* Region(예: us-east1)
* Cloud 서비스 제공업체(AWS, GCP 또는 Azure)
* ClickHouse 데이터베이스 버전
* ClickHouse Keeper(레플리카 관리용)

<div id="access-controls">
  ## 액세스 제어
</div>

<div id="database-credentials">
  ### 데이터베이스 자격 증명
</div>

웨어하우스의 모든 서비스는 동일한 테이블 집합을 공유하므로, 서비스 전반에서 액세스 제어도 함께 공유됩니다.
즉, Service 1에서 생성된 모든 데이터베이스 사용자는 동일한 권한(테이블, 뷰 등에 대한 권한 부여)으로 Service 2도 사용할 수 있으며, 반대의 경우도 마찬가지입니다.
각 서비스는 서로 다른 엔드포인트를 사용하지만, 모든 서비스에서 동일한 사용자 이름과 비밀번호를 사용합니다. 다시 말해, 아래 그림과 같이 **동일한 스토리지를 사용하는 서비스 간에는 사용자가 공유됩니다**.

<Image img="https://mintcdn.com/private-7c7dfe99-postgresql-tls-support/BpOjJtP59hA3M9fS/images/cloud/reference/compute-compute-3.webp?fit=max&auto=format&n=BpOjJtP59hA3M9fS&q=85&s=4d0863c30e6626136ed7e4772f7240fb" size="md" alt="동일한 데이터를 공유하는 서비스 간 사용자 액세스" width="1349" height="1100" data-path="images/cloud/reference/compute-compute-3.webp" />

<br />

*그림 4 - 사용자 Alice는 Service 1에서 생성되었지만, 동일한 자격 증명을 사용해 동일한 데이터를 공유하는 모든 서비스에 액세스할 수 있습니다*

<div id="network-access-control">
  ### 네트워크 액세스 제어
</div>

다른 애플리케이션이나 임시 사용자의 특정 서비스에 대한 액세스를 제한하려면 네트워크 제한을 적용할 수 있습니다.
이렇게 하려면 ClickHouse Cloud 콘솔에서 액세스를 제한하려는 서비스의 서비스 탭으로 이동한 뒤 **설정**으로 이동하십시오.

IP 필터링 설정은 각 서비스에 개별적으로 적용할 수 있으므로, 어떤 애플리케이션이 어떤 서비스에 액세스할 수 있는지 제어할 수 있습니다.
이를 통해 사용자의 특정 서비스 사용을 제한할 수 있습니다.

아래 예시에서는 Alice가 웨어하우스의 서비스 2에 액세스하지 못하도록 제한되어 있습니다:

<Image img="https://mintcdn.com/private-7c7dfe99-postgresql-tls-support/BpOjJtP59hA3M9fS/images/cloud/reference/compute-compute-4.webp?fit=max&auto=format&n=BpOjJtP59hA3M9fS&q=85&s=54b8b96c0af6a4957ecd642e14242c7b" size="md" alt="네트워크 액세스 제어 설정" width="1349" height="1100" data-path="images/cloud/reference/compute-compute-4.webp" />

<br />

*그림 5 - 네트워크 액세스 제어 설정으로 인해 Alice는 서비스 2에 액세스할 수 없습니다*

사용자가 *default* 사용자 대신 개별 사용자로 연결하는 경우에는 데이터에 대한 액세스를 제어하기 위해 ClickHouse 역할 및 권한 부여를 적용할 수도 있습니다.

<div id="read-vs-read-write">
  ### 읽기 전용 서비스와 읽기-쓰기 서비스
</div>

서비스는 다음 유형 중 하나입니다.

* **읽기-쓰기**
  * ClickHouse에서 데이터를 읽고 쓸 수 있습니다
  * 백그라운드 머지 작업(예: 데이터 삽입 후 파트 머지)을 수행하며, 이 과정에서 CPU와 메모리를 사용합니다
  * 데이터를 외부로 내보낼 수 있습니다
* **읽기 전용**
  * 데이터를 읽기만 할 수 있으며, ClickHouse에서 데이터를 쓰거나 수정할 수 없습니다
  * system table 외부에서는 백그라운드 머지 작업을 수행하지 않으므로, 리소스를 읽기 쿼리에 온전히 사용할 수 있습니다
  * 여전히 데이터를 외부로 내보낼 수는 있지만(예: 테이블 함수 사용), ClickHouse 내부 데이터는 변경할 수 없습니다
  * 백그라운드 머지로 인해 활성 상태가 유지될 수 있는 읽기-쓰기 서비스와 달리, 지연 없이 유휴 상태로 전환됩니다

중요한 읽기 workload를 쓰기/머지 오버헤드와 분리하기 위해 서비스를 읽기 전용으로 설정해야 할 때가 있습니다.
이렇게 설정할 수 있는 대상은 두 번째 서비스와 그 이후에 추가로 생성하는 서비스이며, 첫 번째 서비스는 아래 그림과 같이 항상 읽기-쓰기입니다.

<Image img="https://mintcdn.com/private-7c7dfe99-postgresql-tls-support/BpOjJtP59hA3M9fS/images/cloud/reference/compute-compute-5.webp?fit=max&auto=format&n=BpOjJtP59hA3M9fS&q=85&s=e68a0d1451ea515ebd39472d5479b55a" size="lg" alt="웨어하우스의 읽기-쓰기 및 읽기 전용 서비스" width="1349" height="1100" data-path="images/cloud/reference/compute-compute-5.webp" />

<br />

*그림 6 - 웨어하우스의 읽기-쓰기 및 읽기 전용 서비스*

<Note>
  1. 읽기 전용 서비스는 현재 사용자 관리 작업(CREATE, DROP 등)을 지원합니다.
  2. [갱신 가능 구체화 뷰](/ko/concepts/features/materialized-views/refreshable-materialized-view)는 웨어하우스의 읽기-쓰기(RW) 서비스에서만 실행됩니다.
  3. 서비스 유형(읽기 전용 또는 읽기-쓰기)은 생성 시 고정되며, 이후에는 Cloud Console에서 변경할 수 없습니다. 읽기 전용과 읽기-쓰기 액세스 간에 전환하려면 원하는 유형으로 웨어하우스에 새 서비스를 생성하십시오.
</Note>

<div id="scaling">
  ## 스케일링
</div>

웨어하우스의 각 서비스는 다음 항목을 기준으로 workload에 맞게 조정할 수 있습니다:

* 노드(레플리카) 수. 기본 서비스(웨어하우스에서 처음 생성된 서비스)는 2개 이상의 노드를 가져야 합니다. 각 보조 서비스는 1개 이상의 노드를 가질 수 있습니다.
* 노드(레플리카) 크기
* 서비스를 자동으로 스케일링할지 여부(수평 및 수직)
* 비활성 상태일 때 서비스를 유휴 상태로 전환할지 여부

자세한 내용은 ["자동 스케일링"](/ko/products/cloud/features/autoscaling/overview) 페이지를 참조하십시오.

<div id="changes-in-behavior">
  ## `clusterAllReplicas` 동작 변경 사항
</div>

하나의 웨어하우스에 여러 서비스가 있으면 `clusterAllReplicas()`의 동작이 달라집니다.
`default` 클러스터 이름을 사용하면 웨어하우스의 모든 서비스가 아니라 현재 서비스 내의 레플리카만 대상으로 합니다.

예를 들어, 서비스 1에서 `clusterAllReplicas(default, system, processes)`를 호출하면 서비스 1에서 실행 중인 프로세스만 반환됩니다.
웨어하우스의 모든 서비스에 걸쳐 쿼리하려면 대신 `all_groups.default` 클러스터 이름을 사용하십시오:

```sql theme={null}
SELECT * FROM clusterAllReplicas('all_groups.default', system, processes)
```

<Note>
  보조 서비스 단일 노드 서비스는 수직 확장이 가능하지만, 기본 서비스 단일 노드 서비스는 수직 확장이 불가능합니다.
</Note>

<div id="limitations">
  ## 제한 사항
</div>

<div id="workload-isolation-limitations">
  ### 워크로드 격리의 제한 사항
</div>

일부 워크로드는 특정 서비스로 격리할 수 없습니다. 한 서비스의 워크로드가 웨어하우스의 다른 서비스에 영향을 미치는 예외적인 경우가 있습니다. 예를 들면 다음과 같습니다:

* **모든 읽기-쓰기 서비스는 기본적으로 백그라운드 머지 작업을 처리합니다.** ClickHouse에 데이터를 삽입할 때 데이터베이스는 먼저 데이터를 일부 스테이징 파티션에 삽입한 다음 백그라운드에서 머지를 수행합니다. 이러한 머지는 메모리와 CPU 리소스를 소모할 수 있습니다. 두 개의 읽기-쓰기 서비스가 동일한 스토리지를 공유하면 둘 다 백그라운드 작업을 수행합니다. 즉, Service 1에서 `INSERT` 쿼리가 실행되었더라도 머지 작업은 Service 2에서 완료될 수 있습니다.
  읽기 전용 서비스는 백그라운드 머지를 실행하지 않으므로 이 작업에 리소스를 사용하지 않습니다. 지원팀을 통해 서비스에서 머지를 비활성화할 수도 있습니다.

* **모든 읽기-쓰기 서비스는 S3Queue 테이블 엔진 삽입 작업을 수행합니다.** 읽기-쓰기 서비스에서 S3Queue 테이블을 생성하면, 웨어하우스의 다른 모든 읽기-쓰기 서비스도 S3에서 데이터를 읽고 데이터베이스에 데이터를 쓸 수 있습니다.

* **유휴 상태 전환이 활성화된 경우, 한 읽기-쓰기 서비스의 삽입으로 인해 다른 읽기-쓰기 서비스가 유휴 상태로 전환되지 않을 수 있습니다.** 다음과 같은 상황이 있습니다
  한 서비스가 다른 서비스의 백그라운드 머지 작업을 수행할 수 있습니다. 이러한 백그라운드 작업으로 인해 두 번째 서비스가 유휴 상태로 전환되지 않을 수 있습니다. 백그라운드 작업이 끝나면 해당 서비스는 유휴 상태가 됩니다. 읽기 전용 서비스는 영향을 받지 않습니다.

<div id="callouts">
  ### 알아두면 유용한 사항
</div>

* **ClickHouse 버전**: [업그레이드 일정](/ko/products/cloud/features/admin-features/upgrades)은 기본 서비스의 설정에 따라 결정됩니다. 보조 서비스는 기본 서비스와 별개의 릴리스 일정을 가질 수 없습니다.

* **서비스가 기본적으로 유휴 상태이거나 중지되어 있으면 `CREATE`/`RENAME`/`DROP DATABASE` 쿼리가 차단될 수 있습니다.** 서비스가 유휴 상태이거나 중지된 상태에서 이러한 쿼리를 실행하면 쿼리가 응답 없이 대기할 수 있습니다. 이를 우회하려면 세션 수준 또는 개별 쿼리 수준에서 [`settings distributed_ddl_task_timeout=0`](/ko/reference/settings/session-settings#distributed_ddl_task_timeout)을 사용하여 데이터베이스 관리 쿼리를 실행할 수 있습니다.

예시:

```sql theme={null}
CREATE DATABASE db_test_ddl_single_query_setting
SETTINGS distributed_ddl_task_timeout=0
```

서비스를 수동으로 중지한 경우, 쿼리를 실행하려면 다시 시작해야 합니다.

* **레플리카 1개 기본 서비스** 현재 기본 동작에서는 보조 서비스는 레플리카를 1개까지 가질 수 있지만, 기본 서비스는 최소 2개여야 합니다.
  레플리카 1개 기본 서비스를 사용하려면 지원팀에 문의하십시오. 이 동작은 2026년 2분기부터 기본으로 활성화될 예정입니다.
* **기본 서비스 유휴 상태 전환**: 기본 서비스의 자동 유휴 상태 전환은 기본으로 활성화되어 있습니다.

<div id="pricing">
  ## 요금
</div>

컴퓨트 가격은 웨어하우스의 모든 서비스(기본 서비스 및 보조 서비스)에서 동일합니다. 스토리지는 한 번만 청구되며 첫 번째(원본) 서비스에 포함됩니다.

워크로드 크기와 선택한 티어를 기준으로 비용을 추정하는 데 도움이 되는 [pricing](https://clickhouse.com/pricing) 페이지의 요금 계산기를 참조하십시오. Usage Breakdown 테이블에는 서비스별 컴퓨트 비용 내역이 표시됩니다.

<div id="backups">
  ## 백업
</div>

* 단일 웨어하우스의 모든 서비스는 동일한 스토리지를 공유하므로 백업은 기본(초기) 서비스에서만 수행됩니다. 이렇게 하면 웨어하우스 내 모든 서비스의 데이터가 백업됩니다.
* 웨어하우스의 기본 서비스에서 백업을 복원하면 기존 웨어하우스와 연결되지 않은 완전히 새로운 서비스로 복원됩니다. 그런 다음 복원이 완료되는 즉시 새 서비스에 서비스를 추가할 수 있습니다.

<div id="setup-warehouses">
  ## 웨어하우스를 설정하는 방법
</div>

<div id="creating-a-warehouse">
  ### 웨어하우스 생성하기
</div>

웨어하우스를 생성하려면 기존 서비스와 데이터를 공유할 두 번째 서비스를 만들어야 합니다. 기존 서비스에서 더하기 기호를 클릭하면 됩니다.

<Image img="https://mintcdn.com/private-7c7dfe99-postgresql-tls-support/BpOjJtP59hA3M9fS/images/cloud/reference/compute-compute-7.webp?fit=max&auto=format&n=BpOjJtP59hA3M9fS&q=85&s=966e1eaf54e370999cff48edd776ff41" size="md" alt="웨어하우스에서 새 서비스 생성하기" width="1504" height="484" data-path="images/cloud/reference/compute-compute-7.webp" />

<br />

*그림 7 - 더하기 기호를 클릭하여 웨어하우스에 새 서비스를 생성합니다*

서비스 생성 화면에서는 새 서비스의 데이터 원본으로 드롭다운에서 원본 서비스가 선택되어 있습니다. 생성이 완료되면 이 두 서비스가 하나의 웨어하우스를 구성합니다.

<div id="renaming-a-warehouse">
  ### 웨어하우스 이름 변경하기
</div>

웨어하우스 이름을 변경하는 방법은 두 가지입니다:

* 서비스 페이지 오른쪽 상단에서 "Sort by warehouse"를 선택한 다음, 웨어하우스 이름 옆의 연필 아이콘을 클릭할 수 있습니다
* 어떤 서비스에서든 웨어하우스 이름을 클릭한 다음, 해당 위치에서 웨어하우스 이름을 변경할 수 있습니다

<div id="deleting-a-warehouse">
  ### 웨어하우스 삭제하기
</div>

웨어하우스를 삭제하면 모든 컴퓨트 서비스와 데이터(테이블, 뷰, 사용자 등)가 함께 삭제됩니다. 이 작업은 되돌릴 수 없습니다.
웨어하우스는 처음 생성된 서비스를 삭제해야만 삭제할 수 있습니다. 절차는 다음과 같습니다.

1. 처음 생성된 서비스를 제외하고, 이후에 추가로 생성한 모든 서비스를 삭제합니다.
2. 처음 생성된 서비스를 삭제합니다(경고: 이 단계에서 웨어하우스의 모든 데이터가 삭제됩니다).
