> ## 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.

# 서비스 간 통신

> `ale`은 데이터베이스, 메세징 큐 등의 서비스를 다른 서비스와 연동하기 위해 필요한 호스트명과 포트를 제공합니다. 용도에 따라 동일 배포환경 내에서 참조하는 것과 외부에서 참조하는 것으로 나뉩니다.

## 접속 정보 조회

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

> 서비스 상세 페이지의 리소스탭에서 두 가지 유형의 엔드포인트를 확인할 수 있습니다:

* 인그레스: 외부 서비스와의 연결을 위한 \[hostname:port]
* 내부 연결: 같은 배포환경의 서비스 간 통신을 위한 \[hostname:port]

<Info>
  같은 배포환경의 서비스간 통신에는 서비스 이름이 호스트네임으로 사용됩니다.
</Info>

## 내부 서비스 간 통신

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

> 같은 화면에 있는 서비스 사이에는 내부 연결 주소인 **서비스 이름과 포트번호로 통신**할 수 있습니다.

<Info>
  같은 화면에 있는 서비스는 같은 배포환경에 속합니다. 배포환경 별로 격리된 네트워크가 구성되기 때문에 방화벽 규칙 적용이 필요없고, 통신 지연 현상이 최소화됩니다.
</Info>

<Tip>
  `ale`의 작업단위인 스페이스, 프로젝트, **배포환경**, 서비스에 관한 내용은 [배포환경 페이지](/ko/developers/environment)를 참고하세요.
</Tip>

## 다른 배포환경 또는 외부 서비스와 통신

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

> 서비스 상세페이지 **리소스탭의 인그레스 정보(호스트네임 : 포트번호)로** 다른 배포환경 또는 외부의 서비스와 통신할 수 있습니다. 이 경우, 연결하려는 데이터베이스가 속한 배포환경의 설정탭에서 **TCP 외부접속을 허용해야 합니다.**

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

<Warning>
  TCP 접속 허용 설정은 배포환경 단위로 가능하며, 설정한 배포환경에 속한 서비스 전체에 적용됩니다. 서비스 단위의 개별 설정은 불가합니다.
</Warning>

<Info>
  인그레스 주소를 사용해 로컬 컴퓨터의 관리툴로 데이터베이스에 TCP 접속할 수 있습니다.

  <AccordionGroup>
    <Accordion title="MariaDB - MySQL Workbench">
      <Frame>
        <img className="block rounded-md" src="https://files.cloudtype.io/ale-docs/developers/images/07_08.png" />
      </Frame>

      > 접속정보를 입력한 후, 이어지는 화면에서 배포시 설정한 Root Password를 입력하세요.

      <Info>
        [MySQL Workbench Download](https://dev.mysql.com/downloads/workbench/)
      </Info>
    </Accordion>

    <Accordion title="PostgreSQL - pgAdmin">
      <Frame>
        <img className="block rounded-md" src="https://files.cloudtype.io/ale-docs/developers/images/07_10.png" />
      </Frame>

      > Connection 탭에서 접속정보와 배포할 때 설정한 Username(기본값 **root**), Root Password를 입력하세요.

      <Info>
        [pgAdmin Download](https://www.pgadmin.org/download/)
      </Info>
    </Accordion>

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

      > `New Connection` 클릭 후, **Advanced Connection Options** 하단부의 General 탭에서 **포트번호까지 포함한 호스트네임**을 Host 필드에 입력하세요.

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

      > Authentication 탭에서 배포할 때 설정한 Username(기본값 **admin**), Root Password를 입력하세요.

      <Info>
        [MongoDB Compass Download](https://www.mongodb.com/try/download/compass)
      </Info>
    </Accordion>

    <Accordion title="Redis - Redis Insight">
      <Frame>
        <img className="block rounded-md" src="https://files.cloudtype.io/ale-docs/developers/images/07_13.png" />
      </Frame>

      > `Add Redis Database` 클릭 후, 접속정보를 입력해주세요.

      <Info>
        [Redis Insignt Download](https://redis.io/insight/)
      </Info>
    </Accordion>
  </AccordionGroup>
</Info>

<Tip>
  관리 툴로 데이터베이스에 TCP 접속 시 배포환경 설정탭에서 TCP 외부접속을 허용하도록 설정해야 합니다.
</Tip>

<Note>
  [데이터베이스의 Root Password는 배포환경 설정탭의 시크릿 항목](/ko/developers/database#root-password-%EC%A1%B0%ED%9A%8C)에서 조회할 수 있습니다.
</Note>
