[내일배움캠프] - DAY21 클라우드 아키텍처 설계 & 배포 프로젝트 트러블 슈팅

2026. 3. 12. 00:12·TIL & 트러블 슈팅

트러블 슈팅

1. "/actuator/info" 엔드포인트 미노출 문제

 

현상

문제 2-2의 Actuator Info 확장 문제에서 애플리케이션 배포 후  http://EC2_PUBLIC_IP:8080/actuator/info 로접속 하였지만 팀 info 엔드포인트 내용이 표시되지 않는 문제가 발생하였습니다.

 

 

원인

Spring Boot 기본 설정에서는 Actuator의 info 엔드포인트가 기본적으로 활성화되어 있지 않습니다. 따라서 애플리케이션에 info 관련 정보를 application.yml에 추가하더라도, 별도의 활성화 설정이 없으면 해당 엔드포인트는 외부에서 접근할 수 없습니다. 예를 들어, 팀 정보를 나타내는 team 파라미터를 설정 파일에 작성했더라도, management.endpoint.info.enabled 또는 info.env.enabled 옵션이 활성화되지 않으면 /actuator/info에 해당 정보가 노출되지 않습니다. 이로 인해 엔드포인트에 접근 시 글로벌 서버 오류가 발생하거나, 정보가 표시되지 않는 현상이 발생하였습니다.

 

해결

application.yml 에 아래 이미지와 같이 설정을 추가하였습니다.

 



추가 후 아래와 같이 정상적으로 출력되는것을 확인할 수 있었습니다.

 

 


2. EC2에서 Spring Boot 프로덕션 프로퍼티 적용 실패로 인한 서버 시작 오류

 

현상

 

 

EC2 서버에서 Spring Boot 애플리케이션을 실행하고 /actuator/info 엔드포인트에 접근할 때 서버 에러가 발생하였습니다. 로그를 확인한 결과, Parameter Store에 접근하는 과정에서 AccessDeniedException이 발생하였습니다.

 

원인

application-prod.yml에는 Parameter Store에서 DB 및 기타 민감 정보를 가져오도록 설정되어 있고, application-local.yml에는 H2 DB 설정과 "optional:aws-parameterstore:"만 지정되어 있습니다. EC2 서버 실행 시 환경 변수로 prod 프로필이 활성화되지 않으면 Spring Boot가 local 프로필을 로드하게 되며, 이 경우 실제 prod Parameter Store 경로(/ca-project/prod/)에 접근하지 못해 오류가 발생합니다. 즉, 프로파일을 지정하지 않아 잘못된 yml이 로드되는 것이 문제였습니다.

 

해결

EC2 실행 시 SPRING_PROFILES_ACTIVE 환경 변수를 명시적으로 prod로 지정하여 오류를 수정하였습니다.

 

 

 

정상적으로 팀 이름이 출력되는 것을 확인할 수 있었으며, application-prod.yml이 올바르게 적용되어 서버가 정상적으로 동작함을 검증했습니다.


3. 중첩 컨트롤러에서 @RequestMapping 누락으로 인한 엔드포인트 접근 오류

 

현상

 

EC2에서 Spring Boot 애플리케이션을 실행하고 포스트맨으로 /api/members/{id}/profile-image 엔드포인트에 파일 업로드 요청을 보냈을 때 요청 처리 오류가 발생하였습니다.

 

원인

 

클라우드 아키텍처 설계 및 배포에 중점을 두다 보니, MemberController와 FileController를 각각 분리하지 않고 하나의 클래스 안에서 중첩 컨트롤러 형태로 관리하도록 설계하였습니다. 그러나 FileController에 별도로 @RequestMapping("/api/members")를 선언하지 않아 Spring이 해당 경로를 인식하지 못한 것이 문제였습니다. 이전 프로젝트에서는 각 컨트롤러를 분리하여 작성했지만, 이번 프로젝트에서는 아키텍처 단순화와 배포 편의를 위해 중첩 컨트롤러 형태로 처리하다 보니 발생한 실수였습니다.

 

해결

 

FileController 클래스에도 @RequestMapping("/api/members")를 명시적으로 선언하여 각 컨트롤러가 동일한 기본 경로를 올바르게 인식하도록 수정하였습니다.

 

 

이후 Postman으로 요청을 보내자 정상적으로 key 값이 반환되었으며, 컨트롤러가 의도한 대로 동작함을 확인할 수 있었습니다.


 

'TIL & 트러블 슈팅' 카테고리의 다른 글

[내일배움캠프] - 2026.03.31(화)  (0) 2026.03.31
[내일배움캠프] - 2026.03.30(월)  (0) 2026.03.30
[내일배움캠프] - DAY20 IP와 네트워크 통신에 대해 알아보자  (0) 2026.03.10
[내일배움캠프] - DAY19 AOP(Aspect Oriented Programming)에 대해 알아보자  (0) 2026.03.06
[내일배움캠프] - DAY18 테스트  (0) 2026.03.04
'TIL & 트러블 슈팅' 카테고리의 다른 글
  • [내일배움캠프] - 2026.03.31(화)
  • [내일배움캠프] - 2026.03.30(월)
  • [내일배움캠프] - DAY20 IP와 네트워크 통신에 대해 알아보자
  • [내일배움캠프] - DAY19 AOP(Aspect Oriented Programming)에 대해 알아보자
N_HYUN
N_HYUN
안녕하세요! 현이의 개발 공부방입니다.
  • N_HYUN
    현이의 개발 공부방
    N_HYUN
  • 전체
    오늘
    어제
    • 분류 전체보기 (29)
      • FrontEnd (0)
      • BackEnd (0)
        • Java (0)
      • DataBase (1)
      • TIL & 트러블 슈팅 (24)
      • Etc (4)
        • Theoretical Computer Scienc.. (1)
        • Web & CS (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
N_HYUN
[내일배움캠프] - DAY21 클라우드 아키텍처 설계 & 배포 프로젝트 트러블 슈팅
상단으로

티스토리툴바