서버 설정 변경
AnyAPI Master 서버 설정 변경을 위해서는 JEUS 환경에서 AnyAPI Master 서버 바이너리를 직접 설치하여 배포하여야 합니다.
-
JEUS WebAdmin의 [Applications] > [Application] 화면에서 기존에 구동중인 AnyAPI Master 서버(예: apigateway-master)를 '배포 해제’합니다.
-
새롭게 설치할 바이너리 파일의 압축을 해제하고 WEB-INF > classes > application.yml 파일을 엽니다. 설정 항목은 아래와 같습니다.
-
Database 설정
spring: datasource: jndi-name: ${DB_JNDI_NAME:mariadb} vendor: ${DB_VENDER:mariaDB}항목 설명 spring.datasource.jndi-name
JEUS 9에서 설정한 DataSource ID를 입력합니다.
spring.datasource.vendor
사용하는 Database Vendor를 입력합니다. (예: mariaDB, oracle, db2, postgreSQL)
-
Master Server 설정
master-config: authServerInfo: ip: localhost port: 8180 realms: apigateway client_id: apigw client_secret: offline_validate_use: false token_algorithm: RS256 QosServerInfo: mode : DB gatewayMemoryCacheable: true serverGroupRealTimeDeployAble : false autoStringConverterEncoding : euc-kr gatewayTimeoutInterval: 5000 MaxConnTotal: 2000 MaxConnPerRoute: 1500 evictIdleConnectionTime: 3000 loginTimeCheckable : true healthCheckFailedCount : 3 DBLessMode: Setting : true GatewayCheck: BootCheck: BootStart: false BootTargetGatewayGroupId: apigw-group TimeType: second HealthCheckInterval : 5 ErrorCountLimit : 3 FailRecoveryMode : stop CanaryDeploy: TargetGatewayGroupId: apigw-group scheduler: deploy-history: delete-policy: month cron: "0 0 * * * *"항목 설명 master-config.authServerInfo.ip
OAuth/OIDC 인증 서버 호스트를 입력합니다.
master-config.authServerInfo.port
OAuth/OIDC 인증 서버 포트 번호를 입력합니다.
master-config.authServerInfo.realms
인증 서버의 realm 식별자를 입력합니다.
master-config.authServerInfo.client_id
OAuth 클라이언트 식별자를 입력합니다.
master-config.authServerInfo.client_secret
OAuth 클라이언트 비밀키를 입력합니다.
master-config.authServerInfo.offline_validate_use
유효성 검사 방식을 설정합니다.
-
true: JWT(JSON Web Token) 값을 keyclock에서 검증
-
false: AnyAPI에서 토큰 유효성 검사 진행 (현재 true만 제공)
master-config.authServerInfo.token_algorithm
RS256으로 고정값입니다.
master-config.QosServerInfo.mode
Qos Count 저장 위치를 입력합니다.
-
DB
-
memory
master-config.gatewayTimeoutInterval
게이트웨이 목록 조회 타임아웃 기간을 설정합니다. (단위: ms)
master-config.MaxConnTotal
TerminalAuth 커넥션 풀의 전체 최대 커넥션 수를 설정합니다.
master-config.MaxConnPerRoute
동시에 열 수 있는 최대 커넥션 수를 설정합니다.
master-config.evictIdleConnectionTime
유휴(Idle) 커넥션 정리 시간을 설정합니다. (단위: ms)
master-config.loginTimeCheckable
Terminal Auth 사용시 로그인 유지 시간 체크 여부를 설정합니다.
master-config.healthCheckFailedCount
게이트웨이 헬스 체크 실패시 게이트웨이 목록에서 삭제 여부를 판단하는 횟수를 설정합니다.
master-config.DBLessMode.Setting
Terminal Auth 사용시 로그인 관련 DB 사용 여부를 설정합니다.
master-config.GatewayCheck.BootCheck
부팅시 게이트웨이 헬스 체크 수행 여부를 설정합니다.
master-config.GatewayCheck.BootTargetGatewayGroupId
부팅시 게이트웨이 헬스 체크를 수행할 게이트웨이 그룹 ID를 입력합니다.
master-config.GatewayCheck.TimeType
Gateway 헬스 체크 간격 단위를 설정합니다.
-
second
-
minute
-
hour
master-config.GatewayCheck.HealthCheckInterval
게이트웨이 헬스 체크 간격을 설정합니다.
master-config.GatewayCheck.ErrorCountLimit
게이트웨이 헬스 체크 실패 횟수를 설정한 수로 제한합니다.
master-config.GatewayCheck.FailRecoveryMode
게이트웨이 헬스 체크 실패 횟수 초과시 동작을 설정합니다.
-
delete: 게이트웨이 목록에서 삭제
-
stop: 헬스 체크 중단
master-config.CanaryDeploy.TargetGatewayGroupId
카나리 배포를 수행할 게이트웨이 그룹 ID를 입력합니다.
master-config.scheduler.deploy-history.delete-policy
배포 이력 삭제 기간 정책을 설정합니다.
-
none
-
week
-
month
master-config.scheduler.deploy-history.cron
배포 이력 삭제 기간을 cron 표현식으로 설정합니다.
-
-
xds 설정
xds: ip: istiod.istio-system.svc.cluster.local port: 15010 node-id : router~10.244.0.10~istio-ingressgateway-55857684b6-n2bg2.istio-system~istio-system.svc.cluster.local cluster-id : istiod.istio-system.svc.cluster.local
항목 설명 xds.ip
쿠버네티스 환경에서 xDS(Control Plane) 서버인 istiod의 호스트(서비스 DNS)를 입력합니다.
xds.port
쿠버네티스 환경에서 istiod xDS(gRPC) 포트 번호(예: 15010)를 입력합니다.
xds.node-id
xDS 구독 요청(DiscoveryRequest.node.id)에 포함되는 클라이언트(AnyAPI Master) 식별자를 입력합니다. istiod가 연결된 클라이언트를 구분, 캐시, 로깅하는 데 사용됩니다.
xds.cluster-id
xDS 구독 요청(DiscoveryRequest.node.cluster)에 포함되는 클라이언트의 논리적 클러스터/그룹 식별자로 통계, 분류 및 일부 설정 스코핑에 활용할 수 있습니다.
-
AnySim 설정
anysim: scheme : http ip : 192.168.11.58 main-port : 8080 mockserver-port : 7603 login-id : admin login-password : admin targetWorkspaceName : anyapi targetCollectionName : anyapi_request targetMockserverName : anyapi_mockserver
항목 설명 anysim.scheme
Mock 서버 연동 프로토콜입니다.
anysim.ip
AnySIM 어드민 IP 주소입니다.
anysim.main-port
AnySIM 어드민 포트 번호입니다.
anysim.mockserver-port
Mock 서버 테스트 요청 포트입니다.
anysim.login-id
AnySIM 어드민 계정 ID입니다.
anysim.login-password
AnySIM 어드민 계정 비밀번호입니다.
anysim.anysim.targetWorkspaceName
AnySIM에서 사용할 대상 워크스페이스 이름입니다.
anysim.anysim.targetCollectionName
AnySIM에서 사용할 대상 컬렉션 이름입니다.
anysim.anysim.targetMockserverName
AnySIM에서 사용할 대상 Mock 서버 이름입니다.
-
-
application.yml 파일 수정 후 바이너리 파일을 다시 압축합니다.
-
JEUS WebAdmin의 [Applications] > [Application] 화면에서 수정한 바이너리 파일을 설치하고 배포합니다. 배포시 Context Path는 'apigateway-master’로 지정합니다.