DevOps/AWS

[AWS] AWS 보안 그룹 설정과 원본(Source) 개념- 컴도리돌이

컴도리돌이 2024. 11. 6. 09:00
728x90

이번에 Elasticsearch를 새로 도입하면서, 브랜치를 만들어서 작업물을 푸시하고, 서브도메인을 따서 테스트하려고 했습니다. 톰캣 설치, 젠킨스 설치, 아파치 웹 서버 설정, 서브도메인 연결… 여기까지는 다 문제없었죠. 빌드도 성공하고, WAR 파일 생성도 확인했으며, 서브도메인 접속도 잘 되더군요. 완벽하다 싶었는데… Elasticsearch 서버와의 통신이 안 되는 겁니다! 분명 방화벽 문제 같았고, 보안 그룹의 인바운드 규칙도 제대로 설정한 것 같은데, 원인을 한참 찾느라 헤매다 결국 팀장님이 도와주셨죠. 😅

 

알고 보니… 문제는 제가 보안 그룹 설정의 "원본 (source)" 개념을 잘못 이해한 거였어요. 그래서 여러분도 저와 같은 멍청한 짓을 피할 수 있도록 간단히 정리해 보았습니다.

 

 

[AWS] VPC, Subnet, 보안 그룹에 대해서 - 컴도리돌이

기존 메인 서버에 사용했던 레디스를, 다른 서버에서 관리하는 로직을 개발하려고 했습니다. 당연히 메인 서버에서 설정한 레디스 설정을 그대로 사용하여, 필요한 기능을 구축했습니다. 개발

comdolidol-i.tistory.com


상황 설명

저희는 A 서버(개발 서버)에서 B 서버(Elasticsearch 서버)로 특정 포트를 열어줘야 했습니다. 이때 AWS 보안 그룹에서 인바운드 규칙을 설정하게 되는데, 여기서 "원본" (source) 항목이 중요한 역할을 합니다.

  • 원본(source): A 서버가 B 서버에 접속할 때 허용되는 IP 범위를 설정하는 부분입니다. 즉, B 서버가 A 서버의 IP 주소를 신뢰하고 허용할 수 있도록 지정해 주는 거죠.

설정 예시

예를 들어 A 서버가 B 서버의 9200 포트에 접근하려면 다음과 같이 인바운드 규칙을 설정합니다.

 보안 그룹 규칙 ID: (자동 생성됨)
- 포트 범위: 9200
- 프로토콜: TCP
- 원본: A 서버의 IP 또는 IP 범위 (예: 192.168.0.1/32)
- 보안 그룹: (필요한 경우 다른 보안 그룹을 참조할 수 있음)
- 설명: "A 서버에서 B 서버로의 9200 포트 접근 허용"

 

이렇게 설정하면 B 서버는 지정한 A 서버의 IP에서만 9200 포트로 접근을 허용하게 됩니다. 원본 IP를 잘못 지정하면, 저처럼 통신이 안 되는 난감한 상황에 빠질 수 있겠죠! 😄