이번 글에서는 실전 프로젝트에서 생긴 트러블 슈팅 중 하나를 설명해 볼 것이다.
AWS EC2 인스턴스를 실행한 후, 로컬에서 테스트했을 땐 잘 작동하던 서버가 브라우저나 포스트맨을 통해 외부에서 접속이 되지 않는 문제가 발생했다.
EC2에서 실행 중인 벡엔드 서버는 정상적으로 작동 중이었고, 포트번호도 8080으로 열려 있는 상태였지만 무한로딩이 되는 상황이었다.
🚀 원인 분석
문제를 찾아본 결과, AWS EC2 인스턴스의 보안 그룹 설정에서 인바운드 규칙이 제대로 구성되지 않았다는 것을 발견했다.
💡 보안 그룹이란?
AWS에서 EC2 인스턴스를 보호하는 방화벽 역할을 하는 구성 요소로, 인바운드(들어오는 트래픽)와 아웃바운드(나가는 트래픽)를 제한할 수 있다.
EC2 인스턴스의 보안 그룹 인바운드 규칙에 8080 포트가 열려 있지 않아 외부에서 애플리케이션에 접속할 수 없었던 것이다.
🚀 해결 방법
✅ 보안 그룹 인바운드 규칙에 8080 포트 추가
- AWS 콘솔 → EC2 → 인스턴스 선택 → 연결된 보안 그룹 클릭
- 인바운드 규칙 탭으로 이동
- 규칙 편집 클릭
그리고 아래와 같이 규칙을 추가해주면 된다.
0.0.0.0/0은 전 세계 모든 IP에서 접근을 허용하므로, 보안상 위험할 수 있지만, 배포 단계에서는 신뢰할 수 있는 IP 범위로 제한하는 것이 좋다.
보안 그룹 설정 후 실행 결과 (Postman)
퍼블릭 주소를 복사해 Postman에서 요청을 보내면, 애플리케이션이 정상적으로 응답하는 것을 확인할 수 있다.
깨달은 점: 인스턴스 서버가 무한 로딩된다면, 먼저 보안 그룹(방화벽) 설정을 의심해 보는 것이 좋다.
처음엔 이 사실을 모르고, 팀원들끼리 문제의 원인이 Docker나 서버 설정에 있다고 생각해 수차례 컨테이너를 삭제하고 재배포하는 과정을 반복했다.
나처럼되질 않길 바라며 포스팅을 마치겠다....ㅠ
'Spring' 카테고리의 다른 글
인기 검색어에 Redis 캐싱과 TTL적용 (8) | 2025.06.12 |
---|---|
15만권 도서 검색 서비스에 캐시 적용하기 (4) | 2025.06.09 |
실전 프로젝트 - 도서 관리 앱 만들기 (4) | 2025.05.20 |
Spring AOP란? (1) | 2025.05.15 |
QueryDSL 의존성 설정 및 활용 (1) | 2025.05.13 |