---
title: 운영
description: Human Plugin 설치 환경에서 최신 이미지로 업데이트하기, 자격 증명 교체, 종료 동작, 확장, 데이터베이스 백업을 설명합니다.
canonical: https://developer.unico.io/ko/human-plugin/self-hosting/operations
locale: ko
generated_by: markdown-export
---

# 운영

Human Plugin을 일상적으로 운영하는 방법.

## 업데이트

`latest` 이미지를 실행하고, Unico가 릴리스를 공지하면 업데이트하세요.

- **Docker Compose:** `docker compose pull && docker compose up -d`.
- **Kubernetes:** `kubectl -n human-plugin rollout restart deployment/human-plugin`, 그리고 `imagePullPolicy: Always`.

새 릴리스는 트래픽을 받기 전, 시작 시점에 필요한 테이블을 스스로 준비하므로 데이터베이스를 수동으로 조작할 필요가 없습니다. 운영 환경을 업데이트하기 전에 데이터베이스를 백업하고, 업데이트 후에는 `/health/ready`와 실제 생성 요청을 확인하세요.

## 자격 증명 교체

**액세스 키.** Unico가 중복 허용 기간을 두고 새 키를 발급합니다. `.env` 또는 Secret의 `HUMAN_API_ACCESS_KEY`를 업데이트하고, Human Plugin을 다시 시작한 다음(`docker compose up -d --force-recreate` 또는 `kubectl -n human-plugin rollout restart deployment/human-plugin`), 생성 요청이 성공하는지 확인한 뒤 Unico에 기존 키 폐기를 요청하세요.

**레지스트리 자격 증명.** 기존 토큰이 유효한 상태에서 Unico가 새 토큰을 발급합니다. 새 토큰으로 다시 로그인하고(또는 Kubernetes pull secret을 다시 생성하고), 이미지를 한 번 가져와 확인한 다음 Unico에 기존 토큰 폐기를 요청하세요. 실행 중인 컨테이너에는 영향이 없습니다.

**데이터베이스 비밀번호.** PostgreSQL과 `POSTGRES_PASSWORD`에서 변경한 다음 Human Plugin을 다시 시작하세요.

## 종료

`SIGTERM`을 받으면 Human Plugin은 새 연결 수락을 중단하고, 처리 중인 요청을 최대 55초 동안 기다립니다. 생성 요청은 최대 30초가 걸릴 수 있고 그 뒤에 결과를 저장하기 때문입니다. 중지 타임아웃을 최소 60초로 설정하세요. 중간에 끊긴 생성 요청은 이후 조회 시 실패로 확정됩니다.

## 확장

Human Plugin은 요청 상태를 메모리에 보관하지 않으므로 여러 컨테이너가 하나의 데이터베이스를 공유할 수 있습니다. 분당 1,500건의 트랜잭션마다 레플리카를 하나씩 추가하고, PostgreSQL의 `max_connections`를 25 × 레플리카 수 + 10으로 높이세요. [하드웨어 요구 사항](/ko/human-plugin/self-hosting/overview#hardware-requirements)을 참고하세요.

## 속성 카탈로그

Human Plugin은 시작 시 [속성 카탈로그](/ko/human-plugin/additional-resources/attribute-catalog)를 한 번 다운로드합니다. 새 카탈로그 버전은 컨테이너가 다음에 다시 시작될 때 반영됩니다. 컨테이너를 한 번에 하나씩 다시 시작하면 서비스를 계속 이용할 수 있습니다.

## 백업

사용자의 데이터베이스에는 `data.ndocs`를 계산하는 근거가 되는 인텔리전스가 들어 있습니다. 자체 도구로 백업하고 복원을 테스트하세요. 데이터베이스를 잃으면 인텔리전스도 잃게 되며, 다시 만들 수 없습니다.