스프링 - NICE 본인인증 API connection timed out 해결
작성 일자 : 2025년 03월 23일

발생 오류
NICE 본인인증 API를 호출하는 중, AWS ECS Production 환경에서 connection timed out
오류가 발생했습니다.
2025-03-18T14:52:36.194Z ERROR 1 --- [xxxx] [nio-8080-exec-3] c.g.l.d.u.s.AdultVerificationService : Failed to initialize adult verification
org.springframework.web.client.ResourceAccessException: I/O error on POST request for "https://svc.niceapi.co.kr:22001/digital/niceid/api/v1.0/common/crypto/token": Connection timed out
at org.springframework.web.client.RestTemplate.createResourceAccessException(RestTemplate.java:915) ~[spring-web-6.1.13.jar!/:6.1.13]
at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:895) ~[spring-web-6.1.13.jar!/:6.1.13]
at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:790) ~[spring-web-6.1.13.jar!/:6.1.13]
at org.springframework.web.client.RestTemplate.postForEntity(RestTemplate.java:538) ~[spring-web-6.1.13.jar!/:6.1.13]
Cloud Architecture
필자는 AWS ECS(EC2 based)를 사용하여 Spring Boot 애플리케이션을 배포하고 있습니다.
간략한 구조
CloudFlare DNS -> AWS ALB -> ECS Service -> Spring Boot Application
네트워크 Outbound Traffic
Spring Boot Application -> NAT Instance -> NICE API
해결 방법
NICE API는 일반적인 443 포트가 아닌 22001 포트를 사용하고 있습니다.
이로 인해 NAT 인스턴스에서 22001 포트로 나가는 트래픽을 허용해주어야 합니다.
1. NAT 인스턴스 보안 그룹 수정(Outbound Traffic)
NAT 인스턴스의 보안 그룹을 수정하여 22001 포트로 나가는 트래픽을 허용해줍니다.
- IP version: IPv4
- Type: Custom TCP
- Protocol: TCP
- Port Range: 22001
- Destination: 0.0.0.0/0
2. NAT 인스턴스 보안 그룹 수정(Inbound Traffic)
ECS Task subnet에서 NAT 인스턴스로 들어오는 Ephermal Port 트래픽을 허용해줍니다.
- IP version: IPv4
- Type: Custom TCP
- Protocol: TCP
- Port Range: 1024-65535
- Source: ECS Task Subnet CIDR(각 서브넷 마다 rule 설정)
스프링 - NICE 본인인증 API connection timed out 해결
작성 일자 : 2025년 03월 23일

발생 오류
NICE 본인인증 API를 호출하는 중, AWS ECS Production 환경에서 connection timed out
오류가 발생했습니다.
2025-03-18T14:52:36.194Z ERROR 1 --- [xxxx] [nio-8080-exec-3] c.g.l.d.u.s.AdultVerificationService : Failed to initialize adult verification
org.springframework.web.client.ResourceAccessException: I/O error on POST request for "https://svc.niceapi.co.kr:22001/digital/niceid/api/v1.0/common/crypto/token": Connection timed out
at org.springframework.web.client.RestTemplate.createResourceAccessException(RestTemplate.java:915) ~[spring-web-6.1.13.jar!/:6.1.13]
at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:895) ~[spring-web-6.1.13.jar!/:6.1.13]
at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:790) ~[spring-web-6.1.13.jar!/:6.1.13]
at org.springframework.web.client.RestTemplate.postForEntity(RestTemplate.java:538) ~[spring-web-6.1.13.jar!/:6.1.13]
Cloud Architecture
필자는 AWS ECS(EC2 based)를 사용하여 Spring Boot 애플리케이션을 배포하고 있습니다.
간략한 구조
CloudFlare DNS -> AWS ALB -> ECS Service -> Spring Boot Application
네트워크 Outbound Traffic
Spring Boot Application -> NAT Instance -> NICE API
해결 방법
NICE API는 일반적인 443 포트가 아닌 22001 포트를 사용하고 있습니다.
이로 인해 NAT 인스턴스에서 22001 포트로 나가는 트래픽을 허용해주어야 합니다.
1. NAT 인스턴스 보안 그룹 수정(Outbound Traffic)
NAT 인스턴스의 보안 그룹을 수정하여 22001 포트로 나가는 트래픽을 허용해줍니다.
- IP version: IPv4
- Type: Custom TCP
- Protocol: TCP
- Port Range: 22001
- Destination: 0.0.0.0/0
2. NAT 인스턴스 보안 그룹 수정(Inbound Traffic)
ECS Task subnet에서 NAT 인스턴스로 들어오는 Ephermal Port 트래픽을 허용해줍니다.
- IP version: IPv4
- Type: Custom TCP
- Protocol: TCP
- Port Range: 1024-65535
- Source: ECS Task Subnet CIDR(각 서브넷 마다 rule 설정)