보안 그룹(Security Groups)??
AWS에서 인프라를 다룰 때 가장 기본적이면서도 중요한 보안 요소 중 하나로 간단히 말해, EC2 인스턴스를 위한 가상 방화벽입니다. EC2 인스턴스에 적용해서 어떤 트래픽이 인스턴스로 들어오고(인바운드, Inbound), 어떤 트래픽이 인스턴스에서 나갈 수 있는지(아웃바운드, Outbound)를 제어하는 역할을 합니다. 서비스의 가장 앞단에서 네트워크 보안을 책임지는 기본적인 기술입니다.
보안 그룹은 규칙들의 모음이다.
각 규칙에는 다음과 같은 요소를 지정할 수 있습니다.
1. 프로토콜 : TCP, UDP, ICMP 등 트래픽의 종류
2. 포트 범위 : 허용할 포트 번호
3. 소스/대상 : 트래픽을 허용할 IP 주소 범위 또는 다른 보안 그룹
기본적으로 인바운드 규칙, 즉 인스턴스로 들어오는 모든 트래픽을 차단되어 있습니다. 이에 반해 아웃바운드 규칙, 인스턴스에서 밖으로 나가는 건 모두 허용되어 있습니다. 이는 외부에 접속을 차단하는 방화벽의 역할을 하고 있다는 뜻이기도 합니다.

위 그림 1처럼 프로토콜, 포트 범위, 유형, 소스/대상 을 설정할 수 있습니다.
0.0.0.0/0 은 모든 아이피를 의미합니다.
보안 그룹과 인스턴스의 연관 관계
간단히 생각했을 때, 하나의 인스턴스에 하나의 보안 그룹만 설정하실 수 있다고 볼 수 있습니다. 하지만, 전혀 그렇지 않습니다. 보안 그룹과 인스턴스는 1:1 관계가 아닙니다. N:N 관계입니다. 즉, 한 보안 그룹에 여러 인스턴스를 적용할 수도 있고, 인스턴스 하나에 여러 보안 그룹을 설정할 수도 있습니다.
여기서 N:N 관계와 모든 아웃바운드 규칙이 허용된다는 것을 이용하면 조금 괜찮은 설계를 할 수 있습니다.
인스턴스 A에 보안 그룹 1, 보안 그룹 2를 부여했다고 가정해보겠습니다.

여기서 또 다른 인스턴스 B에 보안 그룹 1을 설정하면 B는 A에 접속할 수 있을까요??
접속이 가능합니다.
일단 B의 아웃바운드는 기본적으로 모두 허용이기 때문에 순조롭게 B는 나가게 됩니다.
A에 그 트래픽이 접속할 때가 문제죠.
하지만 A와 B는 같은 보안 그룹 1이기 때문에 인바운드 규칙이 같습니다.
그러므로 만약 그 트래픽이 인바운드 규칙에 속한 것이라면 통과하게 됩니다.
참고) 인스턴스 접속 시에 뜨는 버그로 보안 그룹 문제인지 파악하기
만약 인스턴스가 켜져있는데 타임아웃 발생 -> 보안 그룹 문제.
만약 "Connection refused" 발생 시엔 인스턴스 내부의 어플리케이션 에러이거나 실행이 안된 상태.
'개발 도구 & 환경 > AWS' 카테고리의 다른 글
| [AWS] EC2 구매 옵션 정리 (1) | 2025.06.17 |
|---|---|
| [AWS] EC2 인스턴스 재시작 후에도 IP 주소 고정하기(탄력적 IP 주소 할당) (2) | 2024.07.17 |