> For the complete documentation index, see [llms.txt](https://docs.panther.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.panther.com/ko/system-configuration/panther-deployment-types/legacy-configurations/self-hosted-deployments.md).

# 자체 호스팅 배포(레거시)

## 개요

{% hint style="warning" %}
이 배포 유형은 거의 사용되지 않으며, 특별한 요구 사항이 있는 고객을 위해 예약되어 있습니다.
{% endhint %}

## 업그레이드

Panther가 새 릴리스를 게시하면, 자체 호스팅 고객에게 알림을 보내어 고객이 자신의 일정에 맞춰 업그레이드를 조정할 수 있도록 합니다. 업그레이드는 일반적으로 간단하지만, 모든 것이 원활하게 진행되도록 업그레이드 전과 업그레이드 중에 따라야 할 몇 가지 단계가 있습니다.

### 업그레이드하기 전에

업그레이드를 시작하기 전에, 어떤 Panther 버전으로 업그레이드할지 알고 있는지 확인하세요. Panther는 시맨틱 버전 관리를 사용하며, 마이너 릴리스를 건너뛰지 않고 가장 최근 패치 버전으로 업그레이드하는 것이 강력히 권장됩니다.

예를 들어, 현재 버전이 `1.10.X` 이고 버전 `1.13.X`로 업그레이드하려면, 먼저 `1.11.X`를 클릭한 다음 `1.12.X`의 가장 높은 패치 버전으로 업그레이드한 다음, 마지막으로 `1.13.X`로 업그레이드해야 합니다. 이렇게 하면 마이그레이션 문제가 발생하지 않습니다.

하나 또는 모든 마이너 버전에 대한 최신 패치 버전, 또는 마이너 버전에 사용 가능한 패치 버전 목록을 보려면 다음 [AWS CLI](https://aws.amazon.com/cli/) 명령을 사용하세요:

```bash
export VERSION=<패치 버전을 확인하려는 마이너 Panther 버전, 예: 1.108>

# 주어진 마이너 버전의 최신 패치 버전을 출력하려면:
aws s3 ls s3://panther-community-us-east-1 --no-sign-request | grep "PRE v$VERSION" | awk -F"PRE v|/"  '{print $2}' | sort -V | tail -1

# 주어진 마이너 버전의 모든 패치 버전을 출력하려면:
aws s3 ls s3://panther-community-us-east-1 --no-sign-request | grep "PRE v$VERSION" | awk '{print $2}' | sort -t "." -k1,1n -k2,2n -k3,3n

# 각 마이너 버전의 최신 패치 버전을 출력하려면
aws s3 ls s3://panther-community-us-east-1 --no-sign-request | \
    grep "PRE v" | \
    awk -F"PRE v|/" '{print $2}' | \
    sort -V | \
    awk -F. '{key=$1"."$2} prev!=key && NR>1{print last} {prev=key; last=$0} END{print last}'
```

또한, `PantherDeploymentRole` 를 사용해 Panther를 배포하는 경우, `PantherDeploymentRole` 를 배포 중인 Panther 버전에 맞는 올바른 버전으로 업데이트하세요. 현재 버전이 `1.13.X` 이고 버전 `1.14.X`로 업그레이드하려는 경우, `PantherDeploymentRole` 도 업그레이드 전에 버전 `1.14.X` 이어야 합니다. 다음은 `PantherDeploymentRole` 템플릿 URL입니다:

```
https://panther-public-cloudformation-templates.s3.amazonaws.com/panther-deployment-role/{version}/template.yml
```

### 업그레이드하는 동안

업그레이드를 수행하려면 CloudFormation 콘솔에서 루트 Panther 스택을 찾아 `업데이트` 버튼을 클릭하고 `템플릿 URL 바꾸기`를 선택한 다음 `TemplateURL` 을 배포하려는 원하는 Panther 버전에 맞게 입력하세요. 템플릿 URL은 다음 형식이어야 합니다:

#### **예시**

[https://panther-enterprise-us-east-2.s3.amazonaws.com/v1.25.1/panther.yml](https://panther-enterprise-{region}.s3.amazonaws.com/%7Bversion%7D/panther.yml)

```
https://panther-enterprise-{region}.s3.amazonaws.com/{version}/panther.yml
```

몇 페이지를 클릭해 CloudFormation 매개변수가 올바른지, 그리고 CloudFormation이 귀하를 대신해 IAM 리소스 및 중첩된 CloudFormation 리소스를 생성할 수 있는지 확인하라는 안내를 받게 됩니다.

#### Pulumi CodeBuild 트리거

우리는 인프라 관리를 위해 Pulumi를 사용합니다. 주요 Panther 스택이 배포된 후에는 `panther-pulumi` CodeBuild 프로젝트에 대한 빌드를 시작해야 합니다.\
\
예: `aws codebuild start-build --project-name panther-pulumi`

## 참조

### 루트 스택 이름 지정

Panther를 배포할 때 배포할 루트 Panther 스택의 템플릿 URL이 제공됩니다. 만약 `PantherDeploymentRole` 를 사용해 Panther를 배포하는 경우, 루트 스택 이름에 `panther-` 접두사를 포함해 이름을 지정하세요. 루트 스택 이름은 스택이 생성하는 모든 리소스 이름 앞에 붙으며, `PantherDeploymentRole` 는 이름이 `panther-`.

### 배포 매개변수 구성

Panther CloudFormation 스택에는 구성 가능한 배포 매개변수가 여러 개 있습니다. 다음 옵션에 특히 주의하세요:

* `FedRAMPEnabled`: FedRAMP 제어를 활성화/비활성화합니다. 기본값은 `false`이며, 허용 값은 `true` 또는 `false`.
* `FirstUserEmail` ***(필수)***: Panther 관리자 초대가 이 이메일 주소로 전송됩니다. 이 값의 업데이트는 첫 번째 성공적인 배포 이후에는 무시됩니다.
* `FirstUserFamilyName` ***(필수)***: 초기 Panther 사용자 - 성
* `FirstUserGivenName` ***(필수)***: 초기 Panther 사용자 - 이름
* `PulumiSecretArn` 및 `PulumiSecretKeyArn` **(*****필수*****):** 이 값들은 저희 팀이 제공할 예정입니다 - 귀하는 조직에서 전용 [Pulumi](https://www.pulumi.com/) 액세스 토큰을 갖게 됩니다.
* `SentryEnabled`: Sentry 통합을 활성화/비활성화합니다. 기본값은 `true`이며, 허용 값은 `true` 또는 `false`입니다. 이는 `FedRAMPEnabled` 가 true일 때는 무시됩니다.
* `SnowflakeAPISecretARN` ***(필수)***: 구성과 자격 증명이 포함된 Snowflake API 읽기 전용 비밀을 가리키는 ARN입니다.
* `SnowflakeAPISecretRotationDays`: Snowflake PANTHER\_READONLY 비밀의 순환 주기(일)입니다. 기본값은 0이며, 최소값은 0입니다.
* `SnowflakeAdminAPISecretRotationDays`: Snowflake PANTHER\_ADMIN 비밀의 순환 주기(일)입니다. 기본값은 0이며, 최소값은 0입니다. 권장값은 1입니다.
* `SnowflakeAdminAPISecretARN` ***(필수)***: 구성과 자격 증명이 포함된 Snowflake API 관리자 비밀을 가리키는 ARN입니다.
* `SnowflakeAdminAPISecretRotationDays`: Snowflake PANTHER\_ADMIN 비밀의 순환 주기(일)입니다. 기본값은 0이며, 최소값은 0입니다. 권장값은 1입니다.
* `SnowflakeDestinationClusterARNs` ***(필수)***: Snowflake IAM 역할에 연결할 Snowflake 클러스터 ARN입니다. 이는 [Snowpipe](https://docs.snowflake.com/en/user-guide/data-load-snowpipe-intro).
* `SnowflakeEdition`: Snowflake 인스턴스의 에디션입니다. 기본값은 `standard`.
* `SnowflakeType`: 데이터 레이크 백엔드의 유형입니다. **다음으로 설정** `Connected`**.**

Panther에는 위에 나열된 것 외에도 다른 구성 옵션이 여러 가지 있습니다. Panther의 첫 번째 배포에서는 이러한 매개변수를 설정하지 않는 것을 권장합니다. 초기 배포의 어떤 단계라도 실패하면 전체 배포가 실패하고 모든 인프라를 삭제하는 롤백이 수행됩니다. Panther의 초기 배포를 완료한 후에는 루트 매개변수가 다른 값으로 스택을 업데이트할 수 있습니다. 그런 다음 이러한 설정 중 하나가 배포 실패를 유발하더라도, Panther는 전체를 새로 배포할 필요 없이 이전 설정으로 간단히 롤백합니다. 여기에는 Snowflake 및 사용자 지정 도메인 구성 매개변수와 같은 항목이 포함됩니다.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.panther.com/ko/system-configuration/panther-deployment-types/legacy-configurations/self-hosted-deployments.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
