진입 허용 수 설정
"진입 허용 수 설정"은 동시에 서비스에 액세스할 수 있는 사용자 수를 결정하는 핵심 트래픽 제어 메커니즘으로, 서버 처리 능력 및 사용자 흐름을 관리하는 주요 방법입니다. 이 가이드는 구간 제어 세그먼트의 고정형 진입 허용 수에 대해 다룹니다.

개요
진입 허용 수는 NetFUNNEL의 서비스 사용자 액세스를 제어하는 기본 개념입니다. 동시에 활성화할 수 있는 최대 동시 사용자 수를 설정하는 것으로 생각하세요. 이것은 사이트를 방문할 수 있는 총 사용자 수를 제한하는 것이 아니라, 중요한 작업 중에 서버 리소스를 동시에 점유할 수 있는 사용자 수를 제어하는 것입니다.
핵심 개념
진입 허용 수는 동시간 최대 수용 인원 제한을 설정하는 것과 같습니다. NetFUNNEL은 이 진입 허용 수를 관리하는 호스트 역할을 하여 서버 운영을 돕습니다.
이 제어 방식의 장점은 서버 과부하가 발생하기 전에 이를 방지한다는 것입니다. NetFUNNEL은 시스템이 충돌하기 전에 서비스에 진입하는 사용자 흐름을 사전에 제어합니다. 이것은 서버가 트래픽 급증 중에도 일관된 성능을 유지할 수 있음을 의미하며, 인프라와 사용자 경험을 모두 보호합니다.
주요 동작: 제한을 초과할 때만 대기 발생
사용자는 활성 사용자 수가 진입 허용 수를 초과할 때만 대기를 경험합니다. 진입 허용 수가 100명으로 설정되어 있고 현재 50명의 활성 사용자가 있는 경우, 다음 50명의 사용자는 대기 경험 없이 직접 서비스로 진행합니다.
101번째 사용자가 서비스에 액세스하려고 할 때만 NetFUNNEL이 개입해 대기를 요청합니다. 이때 진입 허용 수는 보호 임계값 역할을 합니다. 제한 내의 사용자는 즉시 액세스 하고, 그외 사용자는 충돌이나 타임아웃을 겪는 대신 대기실로 이동합니다.
통합 접근 방식 관점
진입 허용 수를 해석하고 적용하는 방법은 통합 방법에 따라 다릅니다:
구간 제어는 코드 기반 통합만 사용합니다 (URL 트리거 통합은 지원되지 않음).
코드 기반 통합 (CBI)
CBI에서 진입 허용 수는 nfStartSection() 및 nfStopSection() 호출 사이의 동시 세션 수를 제어합니다.
의미: 동시에 특정 구간(예: 체크아웃 프로세스, 다단계 양식)에 있을 수 있는 사용자 수를 제한합니다. 예를 들어, 진입 허용 수를 50으로 설정하면 동시에 50명의 사용자만 체크아웃 구간에 활성화되어 있을 수 있습니다.
실용적 해석: 이것은 다단계 프로세스에서 동시 점유를 제어하는 것입니다. 키는 전체 구간 동안 보유되며 구간이 완료될 때만 반환됩니다.
구간 제어에서 진입 키는 사용자가 구간을 완료할 때까지(예: 체크아웃 완료, 등록 완료) 전체 다단계 프로세스 동안 보유됩니다. 각 작업이 완료된 후 키가 빠르게 반환되는 기본 제어와 다릅니다.
진입 허용 수 유형
구간 제어는 진입 허용 수 설정을 위해 고정형만 지원합니다.
고정형
고정 진입 허용 수 설정은 서비스 운영 전반에 걸쳐 일정한 진입 허용 수를 유지합니다. 오전 2시든 오후 2시든 시스템은 동일한 최대 동시 사용자 수를 허용합니다.
이 접근 방식은 예측 가능하고 안정적인 트래픽 패턴이 있을 때 가장 잘 작동합니다. 예를 들어, 근무 시간 동안 일관된 사용량을 경험하는 비즈니스 애플리케이션을 운영하는 경우, 고정 제한은 동적 조정의 복잡성 없이 안정적인 성능을 보장합니다.
고정 제한의 단순성으로 인해 모니터링 및 문제 해결이 더 쉬워집니다. 복잡한 스케줄링 규칙을 관리하는 대신 알려진 진입 허용 수 제약 내에서 애플리케이션의 성능을 최적화하는 데 집중할 수 있습니다.
구간 제어는 변동형을 지원하지 않습니다. 진입 허용 수 설정 관리를 위해 고정형만 사용 가능합니다.
구간 제어에서 변동형을 사용할 수 없는 이유:
변동형은 처리 시간에 의존하여 진입 허용 수를 자동으로 조정합니다. 그러나 구간 제어에서:
- 처리 시간 = 사용자 체류 시간 (사용자가 구간에 머무는 시간)
- 이 시간은 서버 부하가 아닌 사용자 행동 패턴에 따라 크게 다름
- 사용자가 체크아웃 흐름에서 몇 분을 보내더라도 실제 서버 성능과는 무관함
기본 제어에서 처리 시간은 트랜잭션 완료 시간을 나타내며, 이것은 서버 부하를 직접 반영합니다. 그러나 구간 제어에서 이것은 다단계 프로세스 완료 시간을 나타내며, 서버 부하 지표로 신뢰할 수 없습니다.
따라서 변동형의 자동 조정 메커니즘은 구간 제어 세그먼트에 적합하지 않습니다.
구성 프로세스
진입 허용 수 설정
-
진입 허용 수 설정 콘솔 액세스
- 구간 제어 세그먼트로 이동
- "진입 허용 수 설정" 섹션으로 이동
-
고정형 제한 설정
- 진입 허용 수로 단일 숫자(양의 정수) 입력
- 예: "100"을 입력하여 구간에서 100명의 동시 사용자 허용
-
고정 제한 구성
- 아래 계산 팁을 사용하여 시작 값 결정
- 계산된 진입 허용 수 값 입력
- 구성 저장
-
설정 테스트
- 실시간 사용자 수에 대한 콘솔 모니터링
- 제한을 초과할 때만 대기가 발생하는지 확인
- 제한 내의 사용자가 정상적으로 진행하는지 확인
테스트 목적으로 진입 허용 수를 0으로 설정하여 모든 사용자를 대기실 또는 대기 화면으로 강제할 수 있습니다. 다음과 같은 테스트에 유용합니다:
- 대기실/화면이 올바르게 표시되는지 확인
- 실제 액세스를 허용하지 않은 상태에서의 에이전트 통합 테스트
- 라이브 전에 대기 메커니즘이 예상대로 작동하는지 확인
진입 허용 수 계산 팁
구간 제어의 경우, 진입 허용 수는 전체 구간 내 가장 무거운 트랜잭션을 기반으로 계산해야 합니다. 이것은 병목 작업이 동시 사용자 부하를 처리할 수 있도록 보장합니다.
1단계: 가장 무거운 트랜잭션 식별
구간 워크플로우 내의 모든 트랜잭션을 분석하고, 가장 많은 리소스를 소비하지만 가장 낮은 처리 TPS를 가진 트랜잭션을 식별합니다.
일반적인 후보:
- 결제 처리 요청
- 데이터베이스 쓰기 트랜잭션
- 외부 통합 (결제 게이트웨이, 인증 서비스)
- 복잡한 비즈니스 로직 작업
가장 무거운 트랜잭션이 제한 요소가 되는 이유는, 이 트랜잭션이 처리할 수 있는 것보다 진입 허용 수를 높게 설정하면 사용자는 구간의 중요한 단계에서 느려지거나 오류를 경험하기 때문입니다.
2단계: 안정적인 최대 TPS 측정
APM 도구, WAS 모니터링 또는 부하 테스트를 사용하여 가장 무거운 트랜잭션의 안정적인 최대 TPS를 결정합니다.
목표 메트릭:
- CPU 사용량: 70% 이하
- P95 응답 시간: 1.5초 이하
- 데이터베이스 연결 풀: 충분한 여유
- 오류율 증가 없음
예시:
가장 무거운 트랜잭션: 결제 처리
안정적인 TPS_min: 50
→ 진입 허용 수 = 50명의 동시 사용자
대안: 보수적 추정 방법
정확한 TPS 측정이 없는 경우:
- 보수적으로 시작: 구간에 대해 10-20명의 동시 사용자로 시작
- 구간 성능 모니터링: 다단계 프로세스 전반에 걸쳐 응답 시간 관찰
- 점진적으로 증가: 안정적이면 며칠마다 10-20% 증가
- 첫 번째 병목에서 중지: 구간의 어떤 단계에서든 성능 저하가 보이면 제한 감소
빠르게 시작해야 하는 경우 다음 보수적 기본값을 사용하세요:
| 서비스 유형 | 권장 시작 제한 |
|---|---|
| 체크아웃 프로세스 | 15-25명 |
| 다단계 등록 | 10-20명 |
| 결제 처리 | 10-20명 |
| 리소스 집약적 구간 | 20-40명 |
1-2주: 보수적 제한으로 모니터링
- 서버 메트릭 관찰 (CPU, 메모리, 응답 시간)
- 사용자 대기 시간 추적
- 오류율 모니터링
3주 이상: 점진적 최적화
- 서버 리소스가 미사용되고 대기 시간이 길면 제한 증가
- 응답 시간이 증가하거나 오류가 발생하면 제한 감소
- 급격한 변경이 아닌 10-20%씩 조정
- 서버 응답 시간 > 정상의 2배: 즉시 제한 감소
- 오류율 > 1%: 제한을 50% 감소
- CPU 사용량 > 80%: 제한을 30% 감소
- 데이터베이스 연결 풀 고갈: 제한을 크게 감소
모범 사례
보수적 접근
- 작게 시작: 낮은 제한으로 시작하고 점진적으로 증가
- 지속적으로 모니터링: 서버 메트릭 및 사용자 경험 관찰
- 급증 계획: 트래픽 급증 및 계절적 변동 고려
안전 가이드라인
- 서버 처리 능력을 초과하지 않음: 항상 안전 마진 유지
- 철저히 테스트: 현실적인 부하 조건에서 제한 검증
- 롤백 계획 준비: 사고 중 빠른 제한 조정을 위한 준비
성능 최적화
- 중요 경로 최적화: 처리 시간을 줄여 유효 진입 허용 수 증가
- 자주 캐싱: 리소스 집약적 작업 최소화
- 수평 확장: 지속적인 성장을 위한 인프라 개선 고려
고급 구성 옵션 및 통합 세부 사항은 구간 제어 세그먼트 개요 및 기본 설정 문서를 참조하세요.