네트워크 안에 컨테이너 하나와 PostgreSQL 데이터베이스 하나만 있으면 Unico와 연결됩니다.
요구 사항
| 요구 사항 | 세부 내용 |
|---|---|
| 컨테이너 런타임 | Docker, Docker Compose 또는 Kubernetes. 이미지는 linux/amd64와 linux/arm64용으로 빌드되며 non-root로 실행됩니다 |
| PostgreSQL | 버전 16 이상. Human Plugin만 사용하는 데이터베이스이며 사용자와 비밀번호로 접근할 수 있어야 합니다. 기본적으로 SSL이 필요합니다 |
| 아웃바운드 HTTPS | Unico로 향하는 연결. 네트워크 및 보안을 참고하세요 |
| 인바운드 | 포트 8080, 일반 HTTP, 사용자의 백엔드에서만 접근 |
| 시크릿 | 액세스 키와 데이터베이스 비밀번호 |
하드웨어 요구 사항
800 KB 이하의 셀피를 사용하고 분당 최대 1,500건의 트랜잭션으로 Human Plugin을 실행하기 위한 최소 사양입니다.
Human Plugin
| 리소스 | 최소 사양 |
|---|---|
| CPU | 레플리카당 1 vCPU |
| 메모리 | 레플리카당 1 GB |
더 많은 처리량이 필요하면 분당 1,500건의 트랜잭션마다 레플리카를 하나씩 추가하세요. 하나가 재시작되는 동안에도 Human Plugin을 계속 이용할 수 있도록 레플리카를 둘 이상 실행하는 것을 권장합니다.
PostgreSQL
| 리소스 | 최소 사양 |
|---|---|
| 버전 | 16 |
| CPU | 2 vCPU |
| 메모리 | 4 GB |
| 디스크 | SSD |
디스크 공간을 추정하려면 프로세스당 약 1.7 KB × 일별 프로세스 수 × 보관 일수를 계산하고 30%를 더하세요.
네트워크
Unico로 향하는 아웃바운드 HTTPS(포트 443). 네트워크 및 보안을 참고하세요.
이미지
Human Plugin은 pkg.unico.run/human-plugin-api:latest로 배포됩니다. 항상 현재 릴리스인 latest 태그를 실행하세요. Unico가 제공하는 레지스트리 자격 증명(사용자 이름과 토큰)으로 이미지 를 가져오세요. 사전 요구 사항 및 액세스를 참고하세요.
배포 순서
- 전용 데이터베이스와 Human Plugin용 롤을 생성합니다.
- 시크릿 저장소의 시크릿과 함께 구성을 설정합니다.
- Docker Compose 또는 Kubernetes로 컨테이너를 시작하며, 중지 타임아웃은 최소 60초로 설정합니다.
- 트래픽을 라우팅하기 전에
GET /health/ready가200으로 응답할 때까지 기다립니다. 상태 확인 및 모니터링을 참고하세요. - 접근을 사용자의 백엔드로 제한합니다. 네트워크 및 보안을 참고하세요.
- 퀵스타트의 생성 요청을 실행해 봅니다.
시작 시 일어나는 일
Human Plugin은 속성 카탈로그를 다운로드하고, PostgreSQL에 연결해 테이블을 준비한 다음 포트를 엽니다. 다음 경우에는 포트를 열기 전에 오류와 함께 중단됩니다.
- 필수 설정이 없거나 유효하지 않은 경우
- 속성 카탈로그를 다운로드할 수 없는 경우
- PostgreSQL에 접근할 수 없거나, 롤이 테이블을 생성할 수 없는 경우
로그에 사유가 기록됩니다. 문제 해결을 참고하세요.
여러 인스턴스
Human Plugin은 요청 상태를 메모리에 보관하지 않으므로 여러 컨테이너가 하나의 데이터베이스를 공유할 수 있습니다. 동시에 시작하는 컨테이너들은 데이터베이스를 통해 서로 조율하므로 레플리카를 한꺼번에 롤아웃해도 됩니다.
프로덕션 적용
- 중지 타임아웃을 60초 이상으로 유지하세요.
/health/ready가200으로 응답한 이후에만 컨테이너로 트래픽을 라우팅하세요.- Human Plugin을 프라이빗 네트워크 밖으로 노출하지 마세요.
- 데이터베이스를 백업하세요. 사용자의 인텔리전스가 저장되어 있습니다. 운영을 참고하세요.