> For the complete documentation index, see [llms.txt](https://docs.roboflow.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.roboflow.com/deployment/ko/self-hosted/enterprise/secure-gateway.md).

# Secure Gateway

Secure Gateway는 Roboflow Inference Server를 인터넷에서 방화벽으로 차단할 때 Roboflow API와 모델 가중치를 위한 프록시입니다. 이는 다음의 후속 버전입니다. [License Server](/deployment/ko/self-hosted/enterprise/license-server.md) 또한 모델 가중치와 컨테이너 이미지의 로컬 캐싱을 추가하여, 여러 추론 서버가 하나의 통제된 외부 송출 지점을 공유할 수 있게 합니다.

{% hint style="info" %}
이 페이지는 핵심 사항을 다룹니다. 전체 구성 및 운영 참고 자료는 다음을 참조하세요. [Secure Gateway 매뉴얼](https://secure-gateway.roboflow.com/manual/).
{% endhint %}

## 사전 요구 사항

* Docker Engine 20.10+ 또는 Kubernetes v1.24+
* api.roboflow\.com 및 repo.roboflow\.com에 접근할 수 있는 호스트
* 포트 80 사용 가능, TLS는 게이트웨이 앞의 로드 밸런서 또는 컨테이너 내부에서 종료
* 4GB 이상의 메모리
* 캐시용 S3 버킷 또는 50GB 이상의 로컬 디스크

## Secure Gateway 사용하기

다음에 접근할 수 있는 머신에서 `https://api.roboflow.com` 및 `https://repo.roboflow.com` (및 포트 `80` 가 개인 네트워크에서 실행 중인 Inference Server에 열려 있어야 함), Secure Gateway 컨테이너를 가져오세요:

```
docker pull repo.roboflow.com/roboflow-edge/secure-gateway:latest
```

다음 `latest` 태그는 가장 최근 릴리스를 추적합니다. 운영 환경, 특히 에어갭 배포에서는 대신 특정 버전을 고정하여 업그레이드가 의도적이고 재현 가능하도록 하세요. 예를 들면 `repo.roboflow.com/roboflow-edge/secure-gateway:0.2.0`.

로컬 디스크 캐시를 사용해 실행하려면:

```
docker run -d --name secure-gateway -p 80:80 --restart unless-stopped \\
    -v gateway-cache:/var/cache/secure-gateway \\
    repo.roboflow.com/roboflow-edge/secure-gateway:latest
```

실행 중인지 확인하세요:

```
curl http://localhost/health
```

로컬 디스크 대신 S3에 캐시하려면 다음을 설정하세요. `CACHE_S3_BUCKET` 및 `CACHE_S3_REGION` 환경 변수를 설정합니다. 인스턴스 또는 IAM 역할을 사용하려면 자격 증명은 비워 두세요.

## TLS 인증서

기본적으로 게이트웨이는 일반 HTTP로 수신 대기하며, TLS는 앞단의 로드 밸런서에서 종료합니다. 게이트웨이 자체에서 HTTPS를 제공하려면 인증서와 개인 키를 컨테이너에 마운트하고 둘 다 설정하세요. `TLS_CERT_FILE` 및 `TLS_KEY_FILE`. 그러면 게이트웨이는 구성된 포트에서 HTTPS를 제공합니다:

```
docker run -d --name secure-gateway -p 443:443 --restart unless-stopped \\
    -e PORT=443 \\
    -e TLS_CERT_FILE=/etc/ssl/certs/gateway.crt \\
    -e TLS_KEY_FILE=/etc/ssl/private/gateway.key \\
    -v /path/to/certs:/etc/ssl:ro \\
    -v gateway-cache:/var/cache/secure-gateway \\
    repo.roboflow.com/roboflow-edge/secure-gateway:latest
```

둘 다 `TLS_CERT_FILE` 및 `TLS_KEY_FILE` 인바운드 HTTPS를 활성화하는 데 필요하며, 각각 PEM 인코딩된 파일을 가리킵니다.

게이트웨이의 아웃바운드 트래픽이 Zscaler와 같은 기업용 TLS 검사 프록시를 통과하는 경우, 다음을 설정하세요. `TLS_CA_BUNDLE` 를 해당 프록시의 CA 번들로 설정하여 게이트웨이가 api.roboflow\.com 및 repo.roboflow\.com과의 연결을 신뢰하도록 합니다:

```
-e TLS_CA_BUNDLE=/etc/ssl/certs/corporate-ca.pem
```

## Inference Server 연결하기

각 Inference Server가 다음을 사용하여 게이트웨이를 가리키도록 하세요. `SECURE_GATEWAY` 환경 변수를 사용합니다. 스키마 없이 게이트웨이의 호스트명 또는 IP 주소로 설정하세요. 그러면 Inference Server는 인터넷에 직접 연결하는 대신 Roboflow API 호출과 모델 가중치 다운로드를 게이트웨이를 통해 라우팅합니다.

```
sudo docker run --net=host \\
    --env SECURE_GATEWAY=10.0.1.1 \\
    roboflow/inference-server:cpu
```

게이트웨이가 80이 아닌 포트에서 수신 대기하는 경우 이를 포함하세요. 예를 들면 `SECURE_GATEWAY=10.0.1.1:8080`. Inference Server는 이 주소에서 HTTP를 통해 게이트웨이에 연결하므로, 호스트와 포트가 Inference Server의 네트워크에서 접근 가능한지 확인하세요.

api.roboflow\.com 및 repo.roboflow\.com에 대한 아웃바운드 접근이 필요한 것은 게이트웨이뿐입니다. Inference Server가 시작된 후 모델을 실행하고 요청이 게이트웨이의 액세스 로그에 나타나는지 확인하세요.

기존의 `LICENSE_SERVER` 변수는 여전히 다음의 별칭으로 허용됩니다. `SECURE_GATEWAY`따라서 기존 배포는 계속 작동합니다. 이는 더 이상 사용되지 않으며 2026년 3분기 말에 제거될 예정입니다.

## 캐싱

Secure Gateway는 각 응답을 처음 다운로드할 때 캐시하며, 콘텐츠 변경 빈도에 따라 계층화합니다. 콘텐츠 주소 지정이 가능한 컨테이너 블롭과 모델 가중치는 가장 오래 보관되고, 변경 가능한 API 응답은 더 짧은 기간 동안 보관됩니다. 이후 어떤 Inference Server에서든 오는 요청은 캐시에서 제공되므로, 대역폭 사용량과 여러 서버 전반의 콜드 스타트가 줄어듭니다.
