사용자가 Data Explorer 나 콘텐츠 폴더에 파일을 올리려 하면 용량 제한 메시지가 뜬다. 권한이나 라이선스 문제가 아니라 플랫폼 설정 값이다.
브라우저
-> 인그레스(nginx 등) 1차 관문. 요청 본문 크기 제한
-> sas-files 서비스 2차 관문. 파일 서비스의 최대 크기
-> 저장소
정확한 숫자가 적힌 팝업이 UI 에 뜬다면 인그레스는 통과했고 sas-files 쪽에서 거부된 것이다. 인그레스에서 막히면 요청 자체가 거부되므로 UI 는 다른 형태의 오류를 보여 준다.
로그로도 가른다.
kubectl logs -n <namespace> <sas-files-pod>
kubectl logs -n ingress-nginx <ingress-controller-pod>
client intended to send too large body # 인그레스에서 거부
ingress-nginx 를 쓴다면 컨트롤러 ConfigMap 또는 인그레스 애노테이션으로 조정한다.
controller:
config:
proxy-body-size: "1g"
metadata:
annotations:
nginx.ingress.kubernetes.io/proxy-body-size: "1g"
다른 인그레스 컨트롤러나 L7 장비를 쓰면 해당 제품의 요청 본문 크기 설정을 본다.
파일 서비스의 최대 크기는 SAS 구성 서비스의 sas.files 설정에 들어 있고, SAS Environment Manager 의 Configuration 화면에서 바꾼다. 백업 설정 예제에 나오는 Consul 속성 경로가 이 값의 위치를 보여 준다.
config/files/sas.files/maxFileSize
config/files/sas.files/blockedTypes
즉 이 값은 배포 YAML 을 새로 만들어야 하는 항목이 아니라 구성 서비스에서 바꾸는 항목이다. 대화 기록에 나온 site-config/sas-files/config/sas-files.yaml 형태는 확인되지 않았다 (확인 필요). 정확한 속성 이름과 단위, 기본값은 해당 릴리스의 구성 사전에서 확인한다.
Environment Manager 의 Configuration 에서 sas.files 정의를 찾아 값을 바꾸고, 반영되지 않으면 sas-files 파드를 다시 띄운다.
kubectl -n <namespace> rollout restart deployment sas-files
UI 업로드는 소형 CSV 나 테스트용으로 두고, 운영 데이터는 서버 경로로 적재한다.
| 방식 | 용도 |
|---|---|
| NFS·NAS 마운트 경로 | 배치 입력·출력, 공유 데이터 |
| 오브젝트 스토리지 | 대용량 보관 |
PROC CASUTIL LOAD |
CAS 적재 |
| 외부 DB 연결 | 원천에서 바로 읽기 |
사용자에게는 "웹 업로드는 성능과 보안상 제한돼 있고 운영 데이터는 서버 경로로 적재하도록 설계돼 있다" 고 안내하는 편이 낫다.