서버 설정 변경

AnyAPI Master 서버 설정 변경을 위해서는 JEUS 환경에서 AnyAPI Master 서버 바이너리를 직접 설치하여 배포하여야 합니다.

  1. JEUS WebAdmin의 [Applications] > [Application] 화면에서 기존에 구동중인 AnyAPI Master 서버(예: apigateway-master)를 '배포 해제’합니다.

  2. 새롭게 설치할 바이너리 파일의 압축을 해제하고 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 서버 이름입니다.

  3. application.yml 파일 수정 후 바이너리 파일을 다시 압축합니다.

  4. JEUS WebAdmin의 [Applications] > [Application] 화면에서 수정한 바이너리 파일을 설치하고 배포합니다. 배포시 Context Path는 'apigateway-master’로 지정합니다.