분명 기존 인바운드 규칙에서 포트는 전체로 고정되어있었다.
그래서 나는 절대로 포트 문제는 아니라고 생각했는데,
인바운드 규칙을 새롭게 만들고 포트를 8080으로 했더니 포스트맨으로도 api 호출이 가능해졌다.
원래 EC2 내에서 curl 명령어로는 api가 잘 호출이 됐었다.
하지만 포스트맨으로 테스트하려고하면 timeout이 되면서 연결이 안됐던게 바로 외부 포트가 연결이 안되어있었기 때문이다.
여기서 의문이 든다.
왜
왜
왜
분명 기존 인바운드 규칙에서 포트범위는 전체였다.
그런데 왜 닫혀있었던걸까?
- 포트 포워딩 설정: EC2 인스턴스 내부에서 애플리케이션이 동작하는 포트와 보안 그룹의 인바운드 규칙에 설정된 포트가 일치하지 않을 수 있습니다. 예를 들어, 애플리케이션이 8080 포트에서 동작하고 있지만 보안 그룹의 인바운드 규칙이 8080 포트가 아닌 다른 포트를 열어놓았을 경우에는 API 호출이 제대로 동작하지 않을 수 있습니다.
- 로컬 방화벽 설정: EC2 인스턴스 내부에서 로컬 방화벽 설정이 되어있을 경우에도 API 호출이 막힐 수 있습니다. 로컬 방화벽에서 해당 포트를 차단하거나 특정 IP 주소에서의 접근을 허용하지 않은 경우에는 외부에서의 API 호출이 막히게 됩니다.
이러한 이유가 있다고 한다.
'트러블 슈팅' 카테고리의 다른 글
https를 적용하고 oauth2가 안된다. (1) | 2023.10.23 |
---|