> ## Documentation Index
> Fetch the complete documentation index at: https://clickhouse.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# AWS 사용자 지정 설정

> 기존 AWS VPC에 ClickHouse BYOC를 배포

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="customer-managed-vpc-aws">
  ## AWS용 고객 관리형 VPC(BYO-VPC)
</div>

ClickHouse Cloud가 새 VPC를 프로비저닝하는 대신 기존 VPC를 사용해 ClickHouse BYOC를 배포하려면 아래 단계를 따르십시오. 이 방식은 네트워크 구성에 대한 제어 범위를 넓혀 주며, ClickHouse BYOC를 기존 네트워크 인프라에 통합할 수 있도록 합니다.

<Steps>
  <Step title="기존 VPC 구성" id="configure-existing-vpc">
    1. VPC에 `clickhouse-byoc="true"` 태그를 추가합니다.
    2. ClickHouse Cloud에서 사용할 수 있도록 서로 다른 3개의 가용 영역에 걸쳐 최소 3개의 프라이빗 서브넷을 할당합니다.
    3. 각 서브넷이 ClickHouse 배포에 충분한 IP 주소를 제공할 수 있도록 최소 `/23` CIDR 범위(예: `10.0.0.0/23`)를 사용하는지 확인합니다.
    4. 각 서브넷에 `kubernetes.io/role/internal-elb=1` 및 `clickhouse-byoc="true"` 태그를 추가하여 로드 밸런서가 올바르게 구성되도록 합니다.

    <Image img="https://mintcdn.com/private-7c7dfe99/Ph2XgLY43sq6v4yO/images/cloud/reference/byoc-subnet-1.webp?fit=max&auto=format&n=Ph2XgLY43sq6v4yO&q=85&s=ca8491785aa957ce48e7826dadbd156d" size="lg" alt="BYOC VPC 서브넷" width="1600" height="827" data-path="images/cloud/reference/byoc-subnet-1.webp" />

    <Image img="https://mintcdn.com/private-7c7dfe99/Ph2XgLY43sq6v4yO/images/cloud/reference/byoc-subnet-2.webp?fit=max&auto=format&n=Ph2XgLY43sq6v4yO&q=85&s=4534989000d14a7b56e404febe355423" size="lg" alt="BYOC VPC 서브넷 태그" width="1600" height="406" data-path="images/cloud/reference/byoc-subnet-2.webp" />
  </Step>

  <Step title="S3 Gateway Endpoint 구성" id="configure-s3-endpoint">
    VPC에 S3 Gateway Endpoint가 아직 구성되어 있지 않다면, VPC와 Amazon S3 간의 안전한 프라이빗 통신을 위해 이를 생성해야 합니다. 이 엔드포인트를 사용하면 ClickHouse 서비스가 퍼블릭 인터넷을 거치지 않고 S3에 액세스할 수 있습니다. 예시 구성은 아래 스크린샷을 참고하십시오.

    <Image img="https://mintcdn.com/private-7c7dfe99/Ph2XgLY43sq6v4yO/images/cloud/reference/byoc-s3-endpoint.webp?fit=max&auto=format&n=Ph2XgLY43sq6v4yO&q=85&s=7413b52f024d68d7c9807f25bbc1209c" size="lg" alt="BYOC S3 Endpoint" width="1711" height="1559" data-path="images/cloud/reference/byoc-s3-endpoint.webp" />
  </Step>

  <Step title="네트워크 연결 확인" id="ensure-network-connectivity">
    **아웃바운드 인터넷 연결**
    VPC는 최소한 아웃바운드 인터넷 연결을 허용해야 ClickHouse BYOC 구성 요소가 Tailscale 컨트롤 플레인과 통신할 수 있습니다. Tailscale은 프라이빗 관리 작업을 위한 안전한 제로 트러스트 네트워킹을 제공하는 데 사용됩니다. Tailscale의 초기 등록 및 설정에는 퍼블릭 인터넷 연결이 필요하며, 이는 직접 연결하거나 NAT gateway를 통해 구현할 수 있습니다. 이 연결은 BYOC 배포의 프라이버시와 보안을 모두 유지하는 데 필요합니다.

    **DNS 확인**
    VPC에서 DNS 확인이 정상적으로 작동하고, 표준 DNS 이름을 차단하거나 간섭하거나 덮어쓰지 않는지 확인합니다. ClickHouse BYOC는 DNS를 사용해 Tailscale 컨트롤 서버와 ClickHouse 서비스 엔드포인트를 확인합니다. DNS를 사용할 수 없거나 잘못 구성된 경우, BYOC 서비스가 연결에 실패하거나 제대로 작동하지 않을 수 있습니다.
  </Step>

  <Step title="AWS 계정 구성" id="configure-aws-account">
    초기 BYOC 설정에서는 ClickHouse Cloud의 BYOC 컨트롤러가 인프라를 관리할 수 있도록 권한 있는 IAM 역할(`ClickHouseManagementRole`)을 생성합니다. 이는 [CloudFormation 템플릿](https://s3.us-east-2.amazonaws.com/clickhouse-public-resources.clickhouse.cloud/cf-templates/byoc.yaml) 또는 [Terraform 모듈](https://s3.us-east-2.amazonaws.com/clickhouse-public-resources.clickhouse.cloud/tf/byoc.tar.gz)을 사용해 수행할 수 있습니다.

    `BYO-VPC` 구성으로 배포하는 경우, ClickHouse Cloud가 고객 관리형 VPC를 수정할 권한을 받지 않도록 `IncludeVPCWritePermissions` 매개변수를 `false`로 설정하십시오.

    <Note>
      ClickHouse 실행에 필요한 스토리지 버킷, Kubernetes 클러스터, 컴퓨트 리소스는 이 초기 설정에 포함되지 않습니다. 이러한 항목은 이후 단계에서 프로비저닝됩니다. VPC는 직접 제어하더라도, ClickHouse Cloud는 AWS 계정에서 Kubernetes 클러스터, 서비스 계정용 IAM 역할, S3 버킷 및 기타 필수 리소스를 생성하고 관리할 수 있는 IAM 권한이 여전히 필요합니다.
    </Note>

    #### 대체 Terraform 모듈

    CloudFormation 대신 Terraform을 사용하려면 다음 모듈을 사용하십시오.

    ```hcl theme={null}
    module "clickhouse_onboarding" {
      source                     = "https://s3.us-east-2.amazonaws.com/clickhouse-public-resources.clickhouse.cloud/tf/byoc.tar.gz"
      byoc_env                   = "production"
      include_vpc_write_permissions = false
    }
    ```
  </Step>

  <Step title="BYOC 인프라 설정" id="set-up-byoc-infrastructure">
    ClickHouse Cloud 콘솔에서 새 인프라를 설정할 때 다음 항목을 구성합니다.

    1. **VPC configuration**에서 **Use existing VPC**를 선택합니다.
    2. **VPC ID**를 입력합니다(예: `vpc-0bb751a5b888ad123`).
    3. 앞에서 구성한 3개 서브넷의 **Private subnet IDs**를 입력합니다.
    4. 구성에 퍼블릭 로드 밸런서가 필요하면 선택적으로 **Public subnet IDs**를 입력합니다.
    5. **Set up Infrastructure**를 클릭하여 프로비저닝을 시작합니다.

    <Image img="https://mintcdn.com/private-7c7dfe99/REHSqgCLT_igIuJP/images/cloud/reference/byoc-aws-existing-vpc-ui.webp?fit=max&auto=format&n=REHSqgCLT_igIuJP&q=85&s=2749bf6db36338fa3f0fd889c41ee6f8" size="lg" alt="Use existing VPC가 선택된 ClickHouse Cloud BYOC 설정 UI" width="1392" height="1598" data-path="images/cloud/reference/byoc-aws-existing-vpc-ui.webp" />

    <Note>
      새 리전 설정에는 최대 40분이 소요될 수 있습니다.
    </Note>
  </Step>
</Steps>

<div id="customer-managed-iam-roles">
  ## 고객 관리형 IAM 역할
</div>

고급 보안 요구 사항이나 엄격한 컴플라이언스 정책이 있는 조직에서는 ClickHouse Cloud가 IAM 역할을 생성하도록 하는 대신 자체 IAM 역할을 제공할 수 있습니다. 이 방식은 IAM 권한을 완전히 제어할 수 있게 해 주며, 조직의 보안 정책을 강제 적용할 수 있도록 합니다.

<Info>
  고객 관리형 IAM 역할은 비공개 프리뷰 상태입니다. 아래 단계를 진행하기 전에 조직에서 이 기능을 사용할 수 있도록 ClickHouse 지원팀에 문의하십시오.
</Info>

고객 관리형 IAM 역할을 사용하면 다음이 가능합니다.

* ClickHouse Cloud가 원래 생성했을 인프라별 IAM 역할을 미리 생성합니다
* 교차 계정 액세스에 사용되는 `ClickHouseManagementRole`에서 IAM 쓰기 권한을 제거합니다
* 역할 권한과 신뢰 관계를 완전히 제어합니다

<Steps>
  <Step title="IAM 쓰기 권한 없이 관리 역할 구성" id="byo-iam-management-role">
    [초기 BYOC 설정](/docs/ko/cloud/reference/byoc/onboarding/standard)을 수행할 때 관리 역할의 IAM 쓰기 권한을 비활성화하십시오. CloudFormation 템플릿을 사용하는 경우 `IncludeIAMWritePermissions` 매개변수를 `false`로 설정하십시오. Terraform 모듈을 사용하는 경우:

    ```hcl theme={null}
    module "clickhouse_onboarding" {
      source                        = "github.com/ClickHouse/terraform-byoc-onboarding.git//modules/aws?ref=<version>"
      external_id                   = "<external-id-provided-by-clickhouse>"
      include_iam_write_permissions = false
    }
    ```

    `<version>`은 module의 [releases page](https://github.com/ClickHouse/terraform-byoc-onboarding/releases)에서 최신 태그로 바꾸십시오. 항상 최신 release를 사용하십시오.
  </Step>

  <Step title="인프라별 IAM 역할 생성" id="byo-iam-per-infra-roles">
    각 BYOC 인프라가 Provisioning되기 전에 [terraform-byoc-onboarding](https://github.com/ClickHouse/terraform-byoc-onboarding) per-infra module을 사용하여 필요한 IAM 역할(EKS 파드 아이덴티티 역할, ClickHouse S3 액세스 역할, 데이터 플레인 관리 역할)을 생성하십시오.

    ```hcl theme={null}
    module "clickhouse_per_infra_iam" {
      source = "github.com/ClickHouse/terraform-byoc-onboarding.git//modules/aws-per-infra-iam?ref=<version>"

      spoken_name = "<spoken-name-provided-by-clickhouse>"
      region      = "<aws-region-of-the-infrastructure>"
      external_id = "<external-id-provided-by-clickhouse>"
    }
    ```

    `<version>`은 module의 [releases page](https://github.com/ClickHouse/terraform-byoc-onboarding/releases)에서 최신 태그로 바꾸십시오. 항상 최신 release를 사용하십시오.
  </Step>

  <Step title="인프라별 역할을 최신 상태로 유지" id="byo-iam-keep-up-to-date">
    <Warning>
      ClickHouse는 새로운 플랫폼 기능에 필요한 역할과 권한을 주기적으로 추가합니다. ClickHouse에서 업데이트를 안내하면 최신 release의 per-infra module을 다시 적용하십시오. 오래된 버전을 사용하면 BYOC 인프라의 Provisioning 및 upgrade가 실패할 수 있습니다.
    </Warning>
  </Step>
</Steps>

ClickHouse Cloud가 기본적으로 생성하는 IAM 역할에 대한 자세한 내용은 [BYOC Privilege Reference](/docs/ko/products/bring-your-own-cloud/reference/privilege)를 참조하십시오.
