배경

DR 점검 중 Spring Profile이 정상적으로 잡히지 않는 현상이 발생했다. 환경 Setting 및 정상적으로 접근은 되었는데 Kafka 특히 SecretsManager로의 접근이 비정상적으로 접근이 되고 있었다. DR 환경에서는 us-east-1을 제외한 region의 자원에 접근하지 못하는 환경이었는데… 조금 더 꼼꼼히 봤다면 해결할 수 있었을 문제였다.

해결

답은 application.yaml 쪽의 문제였다. 인프라 상에서는 모두 동일한 환경이었고 다른 서비스들은 정상적으로 기동이 되고 있었다. 하지만, java쪽 source를 깠을 때도 spring profile이나 그런 것들은 모두 정상적으로 기입되어 있었다.

문제의 부분은 아래였다.

String credentialRegion = Binder.get(env)
	.bind("app.external.client.kafka.credentail-region", String.class)
	.orElse("ap-northeast-2");
# application.yaml
app:
	external:
		client:
			kafka:
				credential-arn: [SECRETSMANAGER ARN]

즉, java 쪽에서 credential-region이 없으면 ap-northeast-2로 잡아버리고 있었기 때문에 정상적으로 동작하고 있지 않는 상황이었다. 개발자가 아닌 인프라 운영이다보니 소스 쪽 문제가 있다라는 것에 확신을 갖지 못한게 아쉬운 상황이기도 했고 application.yaml을 조금 더 자세히 봤으면 발견할 수 있었던 문제였는데 아쉽다. DR 이후 개발자에게 전달하여 해결하였다.

# application.yaml
app:
	external:
		client:
			kafka:
				credential-arn: [SECRETSMANAGER ARN]
				credential-region: us-east-1 # 해당 내용 추가
```