AWS Security Group와
NACL의 차이점

안녕하세요. AWS에서 EC2를 생성하고 웹 서버를 띄웠는데 접속이 안 돼서 당황한 적, 다들 한 번쯤 있으시죠? "분명 80 포트 열었는데 왜 안 되지?" 하고 멘붕에 빠지곤 합니다.

‍

AWS에는 인스턴스를 보호하는 두 가지의 가상 방화벽이 존재합니다. 바로 **Security Group(보안 그룹)**과 **NACL(네트워크 ACL)**입니다.

‍

이 둘은 비슷해 보이지만, **동작 방식(Stateful vs Stateless)**과 적용 범위가 완전히 다릅니다. 오늘은 이 두 녀석의 차이점을 명확하게 정리해 드립니다.

‍

1. Security Group (보안 그룹)

가장 많이 다루게 될 녀석입니다. EC2 인스턴스 바로 앞단에서 동작하는 인스턴스 레벨의 방화벽입니다.

핵심 특징: Stateful (상태 저장)

이게 가장 중요합니다. Security Group은 **"들어올 때 허락받은 놈은, 나갈 때 검사하지 않는다"**는 원칙을 가집니다.

‍

Inbound(들어옴): 80 포트를 허용해 줬다면?

Outbound(나감): 응답 트래픽은 자동으로 허용됩니다. (별도 설정 불필요)

마치 클럽 입구의 경호원 같습니다. 한 번 신분증 검사하고 들어간 사람은 나갈 때 잡지 않는 것과 같죠. 또한, 기본적으로 "허용(Allow)" 규칙만 만들 수 있습니다. (특정 IP 차단 불가)

‍

2. NACL (Network ACL)

VPC 서브넷(Subnet) 앞단에서 동작하는 서브넷 레벨의 방화벽입니다.

핵심 특징: Stateless (상태 비저장)

이 녀석은 융통성이 없습니다. 들어오는 트래픽과 나가는 트래픽을 별개로 처리합니다.

‍

Inbound: 80 포트로 들어오는 것을 허용했더라도,

Outbound: 나가는 규칙(Ephemeral Port 등)을 따로 허용해주지 않으면 응답이 나가지 못해 통신이 끊깁니다.

‍

마치 국경 검문소 같습니다. 입국 심사를 받았다고 해서 출국 심사가 면제되지 않는 것과 같습니다. 하지만 Security Group과 달리 "거부(Deny)" 규칙을 만들 수 있다는 강력한 장점이 있습니다.

‍

3. 한눈에 보는 비교

‍

4. 언제 무엇을 써야 할까?

기본은 Security Group으로!

대부분의 접근 제어는 Security Group에서 처리하는 것이 정신 건강에 좋습니다. Stateful 하기 때문에 설정이 간편하고 직관적입니다. "웹 서버니까 80 열고, 관리자니까 22 열자" 정도면 충분합니다.

NACL은 언제 쓰나요?

특정 IP 차단(Blacklist): Security Group은 "누구 들어와"는 되는데 "철수 너는 오지 마"가 안 됩니다. 특정 해커 IP나 공격 의심 대역을 **차단(Deny)**하고 싶을 때 NACL을 사용합니다.

‍

보안 계층 강화: 서브넷 단위로 한 번 더 잠그고 싶을 때, Security Group 앞단에 1차 방어선으로 둡니다.

마치며

"Security Group은 인스턴스의 경호원, NACL은 서브넷의 검문소"

‍

이 한 문장만 기억하시면 됩니다. 혹시 EC2 접속이 안 된다면? 90%는 Security Group 문제고, 나머지 10%는 NACL의 Outbound 설정을 놓쳤을 확률이 높습니다.

‍

이제 두 방화벽의 차이를 이해하셨으니, 더 안전하고 튼튼한 VPC 네트워크를 구성해 보시길 바랍니다!

  • Security Group (보안 그룹)

  • NACL (Network ACL)

  • 한눈에 보는 비교

  • 언제 무엇을 써야 할까?

관련 키워드
클라우드
관련 키워드
클라우드
관련 콘텐츠
Insight
클라우드
AWS
Insight
Insight
AI
Microsoft 365
Insight
Tech Guide
AI
Microsoft 365
Tech Guide