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

# 배포환경

> 배포환경 단위로 격리된 네트워크가 구성되며, 배포환경에서 아래의 설정 및 관리가 가능합니다.

<AccordionGroup>
  <Accordion title="서비스명을 호스트네임으로 한 서비스 간 통신">
    <Frame>
      <img className="block rounded-md" src="https://files.cloudtype.io/ale-docs/developers/images/07_05.png" />
    </Frame>

    > 같은 화면에 있는 서비스는 같은 배포환경에 속하며, 내부 연결 주소인 **서비스 이름과 포트번호로 통신**할 수 있습니다. 배포환경 별로 격리된 네트워크가 구성되기 때문에 방화벽 규칙 적용이 필요없고, 통신 지연 현상이 최소화됩니다.

    <Tip>
      자세한 내용은 [서비스 간 통신 페이지](/ko/developers/connect)를 참고하세요.
    </Tip>
  </Accordion>

  <Accordion title="Dev, QA, Staging, Prod 등 다중 배포환경 관리">
    <Frame>
      <img className="block rounded-md" src="https://files.cloudtype.io/ale-docs/developers/images/04_03.png" />
    </Frame>

    > 업무 단위로 사용되는 한 개 또는 여러 개의 배포환경(Dev, QA, Staging, Prod 등)을 하나의 프로젝트에서 관리할 수 있습니다.
  </Accordion>

  <Accordion title="YAML파일 Drag & Drop 방식의 간편한 배포환경 복제">
    <video autoPlay muted loop playsInline className="w-full aspect-video" src="https://storage.googleapis.com/files.cloudtype.io/ale-docs/developers/images/clone_kr.mp4" />

    <Tip>
      관련한 가이드는 [배포환경 복제 페이지](/ko/developers/replication)를 참고하세요.
    </Tip>
  </Accordion>

  <Accordion title="시크릿 관리">
    <video autoPlay muted loop playsInline className="w-full aspect-video" src="https://storage.googleapis.com/files.cloudtype.io/ale-docs/developers/images/secret_kr.mp4" />

    > 설정탭의 시크릿관리 항목에서 공통변수 및 시크릿을 저장해, **선택된 배포환경의 서비스에 적용**할 수 있습니다.
  </Accordion>

  <Accordion title="방화벽 설정">
    <Frame>
      <img className="block rounded-md" src="https://files.cloudtype.io/ale-docs/developers/images/03_11.png" />
    </Frame>

    > 다른 배포환경, 프로젝트 또는 타 서비스 등 배포환경 외부에서 원격으로 접속할 수 있도록 TCP 외부 접속을 허용할 수 있습니다. 해당 설정을 켜게 되면, 모든 IP에 대해 접속이 허용되므로 보안에 유의해야합니다.
  </Accordion>
</AccordionGroup>

<Note>
  배포환경은 쿠버네티스 클러스터 상에서 Namespace에 해당합니다.
</Note>

<Info>
  `ale`의 스페이스, 프로젝트, 배포환경, 서비스 등 전체적인 구조에 관한 사항은 아래를 참고하세요.
</Info>

<Frame>
  <img className="block rounded-md" src="https://files.cloudtype.io/ale-docs/operations/images/02_01.png" />
</Frame>

<br />

<AccordionGroup>
  <Accordion title="스페이스">
    > 스페이스는 운영시스템에서 리소스를 할당 받는 최상위의 작업 단위입니다. 스페이스 소유자는 [팀원을 초대](/ko/developers/space#%ED%8C%80%EC%9B%90-%EA%B4%80%EB%A6%AC)해 할당된 리소스를 여러 개의 프로젝트에 나누어서 사용할 수 있습니다.
  </Accordion>

  <Accordion title="프로젝트">
    > **프로젝트는 배포환경의 묶음으로 사용되는 표시명**입니다. 대시보드 사용자의 관리 편의성을 위한 명칭이며, 업무 단위로 사용되는 한 개 또는 여러 개의 배포환경(Dev, QA, Staging, Prod 등)을 하나의 프로젝트에서 관리할 수 있습니다.
  </Accordion>

  <Accordion title="배포환경">
    > **배포환경은 쿠버네티스 클러스터 상에서 Namespace에 해당합니다.** Namespace 단위로 격리된 네트워크가 구성되며, [같은 배포환경(Namespace) 안에 있는 서비스 간에는 서비스명을 호스트네임으로 참조해 통신할 수 있습니다.](/ko/developers/connect#%EB%82%B4%EB%B6%80-%EC%84%9C%EB%B9%84%EC%8A%A4-%EA%B0%84-%ED%86%B5%EC%8B%A0) 자주 사용하는 환경변수 값은 배포환경 단위에서 [시크릿으로 저장해 관리 및 적용할 수 있습니다.](/ko/developers/env)
  </Accordion>

  <Accordion title="서비스">
    > **서비스는 Deployment에 해당합니다.** 서비스 별로 [터미널을 통한 접근](/ko/developers/log)이 가능하고, [커스텀 도메인을 연결](/ko/developers/domain)할 수 있습니다. 서비스를 배포하는 방법은 [ale에서 배포하기 페이지](/ko/developers/deploy)를 참고하세요.
  </Accordion>
</AccordionGroup>

***

## 배포환경 생성

<Frame>
  <img className="block rounded-md" src="https://files.cloudtype.io/ale-docs/developers/images/04_01.png" />
</Frame>

> [프로젝트 생성](/ko/developers/project#%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-%EC%83%9D%EC%84%B1) 시 `main` 을 이름으로 하는 배포환경이 동시에 생성됩니다.

<Info>
  프로젝트에 속하지 않은 배포환경을 단독으로 생성할 수 없습니다. 프로젝트는 **배포환경(Namespace)의 묶음**으로 사용되는 **표시명**으로, 대시보드를 사용하는 사용자의 관리 편의성을 위한 명칭입니다.
</Info>

## 배포환경 정보

<Frame>
  <img className="block rounded-md" src="https://files.cloudtype.io/ale-docs/developers/images/03_03.png" />
</Frame>

> 상단부는 선택된 배포환경이 속한 프로젝트 이름, 리소스 정보와 배포환경 셀렉터로 구성되어 있습니다. 하단부의 **정보 탭**에서 배포환경 내 서비스의 정보를 조회하고 관리할 수 있습니다.

<AccordionGroup>
  <Accordion title="서비스">
    <Frame>
      <img className="block rounded-md" src="https://files.cloudtype.io/ale-docs/developers/images/03_04.png" />
    </Frame>

    > 구동 중인 서비스를 카드 형식으로 조회하고 관리할 수 있으며, 서비스 카드의 버튼을 통해 웹접속, 로그조회, 및 터미널 접속 등을 수행할 수 있습니다.

    * **시작( <Icon icon="play" size={15} color="000" /> ) / 중지( <Icon icon="stop" size={15} color="000" /> )** : 서비스 시작 및 중지

    * **로그뷰/터미널( <Icon icon="terminal" size={15} color="000" /> )** : 실행로그, 빌드로그 조회 또는 터미널 접속

    * **저장소( <Icon icon="github" size={15} color="000" /> )** : 소스 코드 저장소 접속

    * **접속하기** : 할당된 도메인을 통한 서비스 접속 (웹 서비스)

    * **주소복사** : TCP 접속을 위한 Host 및 Port 주소 복사 (데이터베이스)

    * **사용자 프로필** : 해당 서비스를 배포한 사용자를 조회

    * **스팟** : [스팟 리소스](/ko/developers/resource#on-demand-spot)로 배포된 서비스임을 표시

    * **<Icon icon="plus" size={15} color="9fa3a5" />** : 새로운 서비스를 배포할 수 있는 배포창 오픈

    * **서비스 상태** : 배포중, 빌드중, 실행중, 중지됨 등의 서비스 현재상태 표시
  </Accordion>

  <Accordion title="이벤트">
    <Frame>
      <img className="block rounded-md" src="https://files.cloudtype.io/ale-docs/developers/images/03_07.png" />
    </Frame>

    > 배포된 서비스에 의해 쿠버네티스 클러스터에서 발생한 이벤트를 조회할 수 있습니다.

    <Info>
      시간이 지나면 이벤트가 더 이상 조회되지 않을 수 있습니다.
    </Info>
  </Accordion>

  <Accordion title="설정">
    #### 배포환경이 속한 프로젝트의 정보

    <Frame>
      <img className="block rounded-md" src="https://files.cloudtype.io/ale-docs/developers/images/03_08.png" />
    </Frame>

    * **프로젝트 이름** : 프로젝트 이름은 2 글자 이상, 20 글자 이하의 영문 소문자 및 숫자의 조합으로 설정할 수 있습니다.

    * **프로젝트 ID** : 시스템 내부적으로 사용되는 프로젝트의 고유한 값입니다.

    * **표시명** : 프로젝트 이름과 달리 시스템 내부에서 사용되지 않으며, 사용자가 프로젝트를 식별하는 용도로 사용됩니다. 영문, 숫자 뿐만 아니라 기타 언어의 문자 및 특수문자의 설정이 가능합니다.

    #### 배포환경 정보

    <Frame>
      <img className="block rounded-md" src="https://files.cloudtype.io/ale-docs/developers/images/03_09.png" />
    </Frame>

    * **배포환경 이름** : 프로젝트에 속한 배포환경을 구분지을 때 사용되는 이름입니다.

    * **배포환경 ID** : 시스템 내부적으로 사용되는 배포환경의 고유한 값입니다.

    * **클러스터** : 서비스가 배포되어 있는 클러스터 정보입니다.
  </Accordion>
</AccordionGroup>

## 배포환경 추가

### 빈 배포환경으로 생성

<Frame>
  <img className="block rounded-md" src="https://files.cloudtype.io/ale-docs/developers/images/04_02.png" />
</Frame>

> 우측 상단의 배포환경 셀렉터에서 **새 배포환경 생성**을 클릭한 후, **빈 배포환경으로 생성하기**를 선택하세요. 이름과 배포될 클러스터를 정한 후 `생성하기`를 클릭하면 새로운 배포환경이 생성됩니다.

### 배포환경을 복제하여 생성

<video autoPlay muted loop playsInline className="w-full aspect-video" src="https://storage.googleapis.com/files.cloudtype.io/ale-docs/developers/images/addenv_kr.mp4" />

> 서비스가 배포되어 있는 배포환경을 원본 배포환경으로 선택하면, 선택된 환경의 모든 서비스가 복제된 새로운 배포환경이 생성됩니다.

<Info>
  원본 배포환경을 복제하는 기능으로 개발 서버, 운영 서버, QA 서버환경을 간편하게 구축할 수 있습니다. 자동생성된 서비스는 중지 상태이며 **모두 시작** 기능으로 간편하게 실행할 수 있습니다.
</Info>

<Tip>
  배포환경 복제해 새로운 배포환경을 생성할 때, 기존 배포환경에 저장된 시크릿은 복제되지 않습니다. [배포환경 복제 페이지](/ko/developers/replication#%EC%8B%9C%ED%81%AC%EB%A6%BF-%EB%8B%A4%EC%9A%B4%EB%A1%9C%EB%93%9C)를 참고해 시크릿을 새로 저장하세요.
</Tip>

## 배포환경 관리

### 배포환경 전환

<Frame>
  <img className="block rounded-md" src="https://files.cloudtype.io/ale-docs/developers/images/04_03.png" />
</Frame>

> 우측 상단의 배포환경 셀렉터를 클릭하면 다른 배포환경으로 전환할 수 있습니다.

<Tip>
  메인 배포환경을 제외한 배포환경은 고유의 컬러가 부여됩니다. 배포환경의 컬러로 배포 또는 수정할 서비스가 속할 배포환경을 확인하세요.
</Tip>

### YAML파일 다운로드 및 적용

<video autoPlay muted loop playsInline className="w-full aspect-video" src="https://storage.googleapis.com/files.cloudtype.io/ale-docs/developers/images/clone_kr.mp4" />

> 배포된 모든 서비스의 배포 설정이 담긴 YAML 파일을 다운로드하고 새로운 배포환경에서 Drag & Drop 방식으로 적용할 수 있습니다.

<Info>
  YAML 형식의 배포 스크립트 파일을 활용하면 간편하게 프로젝트 전체를 복제 할 수 있습니다. 관련한 가이드는 [배포환경 복제 페이지](/ko/developers/replication)를 참고하세요.
</Info>

### 기본 배포환경 설정

<Frame>
  <img className="block rounded-md" src="https://files.cloudtype.io/ale-docs/developers/images/04_04.png" />
</Frame>

> 설정탭 배포환경 정보 메뉴에서 `기본 배포환경으로 지정` 버튼을 눌러 특정 배포환경을 기본 배포환경으로 설정할 수 있습니다. 프로젝트 패널 접속시 기본 배포환경으로 접속되기 때문에 **업데이트가 잦은 배포환경을 기본 배포환경으로 설정해 주세요.**

### 배포환경 삭제

<Frame>
  <img className="block rounded-md" src="https://files.cloudtype.io/ale-docs/developers/images/04_05.png" />
</Frame>

> 설정탭 최하단의 배포환경 삭제 항목에서 `배포환경 삭제하기`를 클릭하고 확인하면 배포환경이 삭제됩니다.

<Info>
  프로젝트 내에 배포환경이 한 개만 존재하는 경우 `프로젝트 삭제하기` 버튼으로 표시되며, 프로젝트와 함께 배포환경도 삭제됩니다.
</Info>

## 공통변수 / 시크릿 관리

<video autoPlay muted loop playsInline className="w-full aspect-video" src="https://storage.googleapis.com/files.cloudtype.io/ale-docs/developers/images/secret_kr.mp4" />

> 설정탭의 시크릿관리 화면에서, 우측의 **<Icon icon="plus" size={15} color="9fa3a5" />** 아이콘을 클릭해 공통변수 및 시크릿을 저장해, **선택된 배포환경의 서비스에 활용**할 수 있습니다.

<Info>
  시크릿 값은 Drag & Drop 방식으로 간편하게 적용할 수 있습니다. 서비스 배포시 환경변수 적용에 관한 가이드는 [환경변수 관리 페이지](/ko/developers/env#2)를 참고하세요.
</Info>

<Tip>
  시크릿은 배포환경 단위로 저장 및 공유할 수 있습니다.
</Tip>

## 방화벽 설정

<Frame>
  <img className="block rounded-md" src="https://files.cloudtype.io/ale-docs/developers/images/03_11.png" />
</Frame>

> 다른 배포환경, 프로젝트 또는 타 서비스 등 배포환경 외부에서 원격으로 접속할 수 있도록 TCP 외부 접속을 허용할 수 있습니다.
> 설정 메뉴 방화벽 관리 항목에서 해당 설정을 켜게 되면, 모든 IP에 대해 접속이 허용되므로 보안에 유의해야합니다.

<Info>
  프로젝트 외부 서비스 또는 로컬 컴퓨터와의 통신에 관한 가이드는 [서비스 간 통신 페이지](/ko/developers/connect)를 참고하세요.
</Info>
