백엔드 리소스들을 Private Subnet에 위치 시켜보자 (1) 기본 개념

YUZE·2025년 5월 20일
post-thumbnail

개발 역사 중 흑역사라고 한다면, RDS의 public IP를 허용하고, ID와 비밀번호를 쉽게 설정하여, 해킹 당하여 AWS 요금이 많이 나왔던 것이다.


이런 일이 없게, 백엔드 서버 또는 RDS를 외부와 완벽히 격리 시키고 싶다면, 어떻게 하는 게 좋을까?
⇒ 결론적으로 VPC와 Private Subnet을 이용하여 네트워크를 구성하면 된다.


AWS의 가장 핵심적인 기능이라고 할 수 있는 VPC에 대해서 알아보도록 하자.





VPC란?


AWS와 같은, 거대한 퍼블릭 클라우드에서 VPC(Virtual Private Cloud)를 사용하여 논리적으로 독립된 나만의 가상 네트워크 공간을 만드는 것

왜 VPC가 필요한데? ⇒ 내가 원하는 대로 네트워크를 세밀하게 설계하고 제어할 수 있다.

  • 사설 IP 주소 범위(CIDR 블록) 지정
  • 서브넷(Subnet) 생성 및 분리
  • 라우팅 테이블 설정
  • 인터넷 게이트웨이, NAT 게이트웨이 등 네트워크 게이트웨이 연결
  • 네트워크 ACL, 보안 그룹 등 방화벽 정책 적용

즉, VPC는 AWS의 물리적 인프라 위에 논리적으로 완전히 분리된 나만의 네트워크 공간을 만드는 기능이다.

AWS에서 기본으로 제공하는 VPC는 빠르게 리소스를 사용하기 위해, 만들어 놓은 VPC이다. 웬만하면 새롭게 만들어서 사용하도록 하자



Subnet


VPC 안에 존재하는 더 작은 네트워크 구역

VPC의 IP 주소 범위를 더 작게 나눈 논리적 네트워크 영역

  • VPC라는 큰 네트워크 공간을, 여러 개의 작은 네트워크 영역으로 쪼갠 것
  • 서브넷마다 리소스를 배치하고, 네트워크 정책을 세밀하게 적용할 수 있음
  • 하나의 가용영역에만 속함
  • 독립적인 라우팅 테이블, 보안 그룹, 네트워크 ACL 설정 가능
구분Public Subnet (퍼블릭 서브넷)Private Subnet (프라이빗 서브넷)
인터넷 접근성외부 인터넷과 직접 통신 가능외부에서 직접 접근 불가
라우팅 테이블인터넷 게이트웨이(IGW)로 향하는 경로(0.0.0.0/0) 등록IGW 경로 없음, 필요시 NAT 게이트웨이로 아웃바운드 트래픽만 허용
사용 용도웹 서버, Bastion Host 등 외부에서 접근이 필요한 리소스DB, 내부 서비스 등 외부 노출이 필요 없는 리소스
공인 IP 할당가능 (퍼블릭 IP 할당 시 인터넷에서 접근 가능)불가 (공인 IP 할당해도 IGW 경로 없어 외부 접근 불가)
아웃바운드 트래픽인터넷으로 직접 나갈 수 있음NAT 게이트웨이 통해서만 인터넷으로 나갈 수 있음
인바운드 트래픽외부에서 직접 접속 가능외부에서 직접 접속 불가



Public Subnet


인터넷 게이트웨이에 연결되었다면 그것은 Public Subnet이라고 한다.




Private Subnet


  • 인터넷 게이트웨이와 연결되지 않은, 고립된 Subnet이다.
  • Private subnet에 위치한 리소스는 외부 인터넷에서 직접 접근할 수 없음
  • 주로 데이터베이스, 내부 서버 등 외부 노출이 필요 없는 리소스를 배치



NAT gateway : 아웃바운드 전용 인터넷 허용


  • Private Subnet에 있는 인스턴스도 운영체제(OS) 업데이트 등 외부 인터넷 접속이 필요한 경우가 있음
  • NAT Gateway를 Public Subnet에 배치하여, Private Subnet의 인스턴스가 NAT Gateway를 통해 아웃바운드 인터넷 트래픽을 사용할 수 있도록 함
  • NAT Gateway는 아웃바운드 트래픽만 허용 → Private Subnet의 인스턴스는 외부로 나가는 트래픽과 그에 대한 응답만 받을 수 있고, 인바운드는 불가능
profile
안녕하세요

0개의 댓글