> 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/roboflow/roboflow-ko/deploy/enterprise-deployment/secure-gateway.md).

# Secure Gateway

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

{% 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는 gateway 앞의 로드 밸런서 또는 컨테이너 내부에서 종료되어야 합니다
* 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` tag는 가장 최근 릴리스를 추적합니다. 프로덕션, 특히 air-gapped 배포에서는 대신 특정 버전을 고정하여 업그레이드가 의도적이고 재현 가능하도록 하세요. 예를 들면 `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 인증서

기본적으로 gateway는 일반 HTTP로 수신 대기하며, TLS는 앞단의 로드 밸런서에서 종료합니다. gateway 자체에서 HTTPS를 제공하려면 인증서와 개인 키를 컨테이너에 마운트하고 둘 다 설정하세요: `TLS_CERT_FILE` 및 `TLS_KEY_FILE`. 그러면 gateway가 구성된 포트에서 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 인코딩된 파일을 가리킵니다.

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

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

## Inference Server 연결

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

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

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

아웃바운드 액세스가 필요한 것은 gateway뿐입니다: api.roboflow\.com 및 repo.roboflow\.com. Inference Server가 시작되면 모델을 실행하고 요청이 gateway의 액세스 로그에 표시되는지 확인하세요.

이전의 `LICENSE_SERVER` 변수는 여전히 다음의 별칭으로 허용됩니다: `SECURE_GATEWAY`, 따라서 기존 배포는 계속 작동합니다. 이는 사용 중단 예정이며 2026년 Q3 말에 제거될 예정입니다.

## 캐싱

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