본문 바로가기

AWS

[AWS] VPC - 보안 네트워크 구축

'AWS로 구현하는 MAS와 컨테이너 오캐스트레이션' 강의를

블로그를 통해 구매하시는 분들에게만 10%할인 중입니다.

이미지를 클릭하고, 아래 쿠폰번호를 입력해 주세요!

16861-259843d6c2d7

 


VPC (Virtual Private Cloud)

  • 가상 사설 네트워크 공간
  • AWS의 서비스를 배치
  • 배치할 서비스(EC2, RDS 등)에 IP주소를 부여해서 관리
  • 외부 인터넷과 통신할 수 있는 공간과 외부로부터 단절된 공간으로 나눠서 관리
  • 이런 특징들과 여러가지 VPC의 구성요소들을 활용해서 보안 강화

 


 

VPC 주요 구성요소

VPC 다이어그램

  • 서브넷
  • 인터넷 게이트웨이
  • NAT 게이트웨이
  • 라우팅 테이블
  • 보안그룹
  • 네트워크 ACL

해당 서비스들은 VPC의 주요 구성요소이고, 이외에 더 많은 서비스들이 존재한다.

 


 

Region

Region은 VPC에 속하는 구성요소는 아니지만, AWS의 네트워크를 이해하기 위해 꼭 이해해야하는 요소이다.

  • 물리적으로 분리된 AWS 데이터센터의 집합
  • 버지니아, 도쿄, 시드니 등 세계 여러 지역에 위치
  • 각 지역의 리전은 문자와 숫자로된 이름을 부여
  • 서울 리전은 ap-northeast-2

여러 지역에 Region이 위치한 이유는 사용자가 서비스할 지역에 최대한 가깝게 서버를 배치할 수 있도록 하기 위해서이다.

 


 

가용영역(Available Zone)

쉬운 이해를 위한 Region 예시 그림

가용영역도 VPC의 구성요소에 포함시키지 않았지만, 마찬가지로 꼭 알아야할 요소이다.

  • 하나의 리전을 물리적으로 나눠놓은 데이터 센터
  • 전력 공급이나 네트워크 연결같이 물리적인 부분을 모두 독립적으로 사용
  • 서비스 중인 가용영역에서 문제가 발생하면 다른 가용영역에서 서비스가 가능 (고가용성)
  • 서울리전에는 총 4개의 가용영역이 존재
  • ex) ap-northeast-2a ~ ap-northeast-2d

 


 

서브넷(Subnet)

  • VPC의 IP주소 범위를 논리적으로 더 작게 나누는 단위
  • 무조건 하나의 가용영역에 포함되어야 한다.
  • 퍼블릭 서브넷, 프라이빗 서브넷 중 한가지로 만들 수 있다.
    • 퍼블릭 서브넷은 VPC 외부에서 접근이 가능한 서브넷
    • 프라이빗 서브넷은 VPC 외부에서 접근이 불가능한 서브넷
  • 보안과 가용성을 위해 이런 특징들로 여러 가용영역 퍼블릭과 프라이빗 서브넷들을 배치해서 사용

 


 

인터넷 게이트웨이 (Internat Gateway)

  • VPC 내부에서 외부 인터넷과 통신할 수 있게 해주는 서비스
  • VPC 내부의 리소스가 외부 인터넷으로 나갈 수 있고, 외부 인터넷에서 VPC 내부 리소스로 접근할 수도 있다.
  • VPC 단위로 배치한다.

 


 

NAT 게이트웨이

  • VPC 내부의 리소스가 외부 인터넷으로 나갈 수 있게 해주는 서비스
  • 인터넷 게이트웨이와 다르게 외부 인터넷에서 내부로 접근할 수는 없다.
  • 주로 보안 강화를 위해 외부에서 내부 접근을 제한해야할 때 사용

 

 

NAT 게이트웨이의 통신


NAT 게이트웨이의 통신하는 방법을 이해하면, 보안을 어떻게 강화할 수 있는지 이해할 수 있다.

  1. 먼저 VPC 내부에 있는 서버에서 외부로 요청을 보낸다. 예) OS업데이트, 프로그램 다운로드
    이때 소스 IP는 리소스의 프라이빗 IP가 되고, NAT 게이트웨이로 트래픽을 전달
  2. NAT 게이트웨이는 전달받은 트래픽의 소스 IP를 NAT 게이트웨이의 퍼블릭IP로 변경하고, 다시 목적지로 전송
    이때 NAT 게이트웨이도 인터넷 게이트웨이를 통과
  3. 전달 받은 목적지에서 소스IP가 NAT 게이트웨이의 IP로 되어있어, 전달하려는 대상에 NAT 게이트웨이의 IP로 전달
  4. 전달 받은 NAT 게이트웨이는 다시 대상IP를 처음에 보낸 리소스의 IP로 수정하고 서버로 전달

이런 과정에서 리소스는 외부와 통신 과정에서 노출되지 않게 되어 보안을 강화할 수 있다.

 


 

라우팅 테이블(Route Table)

  • 서브넷의 트래픽을 어떻게 어디로 전달할지 정의하는 요소
  • 하나의 서브넷과 연결
  • 퍼블릭 서브넷에 연결된 라우팅 테이블은 인터넷 게이트웨이에 라우팅 되도록 정의
  • 프라이빗 서브넷에 연결된 라우팅 테이블은 NAT 게이트웨이에 라우팅 되도록 정의

라우팅 테이블은 서브넷에 배치된 리소스들이 트래픽을 어떻게 어디로 전달할지 정의가 되어있는 테이블