개요
퍼블릭 IP로 서버 접속하는 것을 실패했다. 문제 상황과 해결 과정을 기록하고 배운것을 정리한다.
문제 상황
인터넷 주소창에 http://52.XX.XXX.76:8080를 입력했으나 연결이 거부되었다는 응답을 받았다.
문제 해결
1. http://52.XX.XXX.76:8080가 무엇이길래 연결이 거부된 것인지 부터 파악해보고자 한다.
EC2 인스턴스는 가상 컴퓨터이다. 그리고 이 컴퓨터의 주소가 퍼블릭 IP이다.
:8080을 추가하면 Spring Boot가 열어둔 포트까지 연결된다.
즉 나의 로컬 환경에서 인터넷 주소창에 http://52.XX.XXX.76:8080를 입력하면 EC2가 만든 서버에 접속하게 되는것이다.
정리하자면 인터넷에서 내 서버로 접속하는 행동이고, 이때 퍼블릭 IP를 이용한것이다.
2. 퍼블릭 IP로 접속하기 위해 반드시 필요한 것이 무엇인지 알아보았다.
1. EC2 보안 그룹에서 8080 포트 열려 있어야 함
제대로 설정해둔 것을 확인했다.

2. Spring Boot가 0.0.0.0 에서 실행되어 있어야 함
코드 실행명령을 다음과 같이 호출한 것을 확인했다.
java -jar build/libs/payment-system-0.0.1-SNAPSHOT.jar --server.address=0.0.0.0
3. 인스턴스가 퍼블릭 IP를 가지고 있어야 함
인스턴스를 여러번 재시작하는 과정에서 퍼블릭 IP가 변경되었고 이를 이용해 접속을 시도했다.
퍼블릭 IP가 변경될 수 있다는 사실을 인지하지 못했으며 동작원리를 알고 있었다면 좀 더 빨리 문제를 해결할 수 있었을 것 같다.
공부한 내용을 간단히 정리해둔다.
* AWS는 임시 퍼블릭 IP를 배정한다.
퍼블릭 IP 배정하는 내부 동작)
1. AWS가 자동으로 임시 퍼블릭 IP를 회수함
2. 다시 Start 하면 새 퍼블릭 IP 배정
3. 그래서 IP가 매번 바뀌는 것처럼 보임
* 그렇다면 왜 임시로 배정하는 것일까?
퍼블릭 IP 주소가 한정되어 있고,사용하지 않는 인스턴스에 퍼블릭 IP를 낭비하지 않기 위해서
자동으로 회수하고 필요할 때만 다시 할당하기 때문이다.
* 그렇다면 IP주소가 한정되어있는 이유는 무엇일까?
퍼블릭 IP는 IPv4 주소를 말하는데, 이 IPv4는 전세계에서 사용할 수 있는 개수가 약 43억 개밖에 없다.
AWS, Azure, Google 같은 클라우드 회사도 전 세계 사용자에게 IPv4를 제공하려면 무한정 줄 수가 없다.'트러블슈팅' 카테고리의 다른 글
| [JPA] JPA 테이블 생성 (0) | 2025.12.05 |
|---|---|
| 트러블 슈팅/ 데이터 무결성 (0) | 2025.11.18 |
| 트러블 슈팅/ 의존성 설정 (0) | 2025.10.27 |
| 트러블슈팅/ 절차적 코드를 객체 지향으로 리팩토링하기 (0) | 2025.09.26 |
| 트러블슈팅/ 캡슐화 (0) | 2025.09.23 |