AWS

가상 네트워크(VPC) 수동 구축_[ AWS ]

KDY0218 2026. 1. 3. 17:38

 

서론

AWS를 처음 접해본 사람으로서 천천히 교재와 수업자료를 비교해가며 따라가본다.
네트워크를 수동으로 구축하면서 구조파악과 기본개념에 대해서 공부해보자.

 

 

목표

VPC 네트워크 인프라 수동 구축

 

 

 

1. VPC 생성

AWS를 이용해 네트워크를 구축할 때는 VPC라는 시스템을 이용할 수 있다.물리적인 기기를 이용하지 않고 가상의 네트워크를 구축할 수 있다. AWS의 데이터센터에 있는 전용 기기에서 서버나 네트워크 장비가 가진 기능을 에뮬레이션하는 소프트웨어를 작동시켜, 물리적인 기기를 이용하지 않고 가상의 네트워크를 구축할 수 있다.

  • 10.0.0.0 /16 = 사설 IP 대역으로, 내부 통신용으로 가장 널리 쓰이는 주소이다.
  • /16 은 AWS VPC에서 허용하는 가장 큰 서브넷 마스크 크기이다. 65,536개의 IP 주소를 사용할 수 있게 되어 추후 서브넷을 여러 개로 쪼개거나 서버가 늘어나도 IP가 부족할 일이 없다.

 

 

2. 서브넷 생성

VPC 안에는 하나 이상의 서브넷을 만들어야 한다.

서브넷은 VPC의 IP 주소 범위를 나누는 단위다. 

 

- 역할분리 : 외부에공개하는 리소스 여부를 구별 

- 기기 분리 : AWS 안에서의 물리적인 이중화를 수행

 

  • 보안(Role): 인터넷 연결이 필요한 Public 영역과 데이터를 보호해야 할 Private 영역을 철저히 분리하기 위해서이다.
  • 재해 복구(Device): 서로 다른 물리적 위치(가용 영역)에 서버를 분산시켜, 천재지변이나 데이터센터 장애 시에도 서비스가 죽지 않게(고가용성) 하기 위해서이다.

 

 

VPC ID 선택

어느 땅 위에 건물을 지을지 정하는 과정이다.

서브넷은 독립적으로 존재할 수 없고, 반드시 특정 VPC 안에 소속되어야 한다.

그래서 "이 서브넷은 TEST-VPC 소속이다 라고 지정 해준다.

 

 

 

총 4개의 서브넷을 생성한다.

외부에 공개 public 2개

외부에 비공개 private 2개

 

가용영역 선택 

public01 = 2a

public02 = 2c

private01 = 2a

private02 = 2c

.

 

 

3. 인터넷 게이트웨이

VPC에서 생성된 네트워크와 인터넷 사이의 통신을 가능하게 하는 것이다.

인터넷 게이트웨이가 없으면 인터넷과 VPC 안의 리소스는 서로 통신할 수 없다.

 

구분 하기 쉬운 이름을 설정하고서 생성한다.

생성 후 VPC에 연결을 해준다.

 

 

 

4. NAT 게이트웨이 생성

*** 과금 대상이니 실습 후에는 꼭 삭제해주자 *** *** 

*** 탄력적 IP도 꼭 릴리스 해주자 ***

인터넷 게이트웨이의 역할은 VPC에서 생성된 네트워크와 인터넷 사이의 통신을 수행하는 것이다.
이때 VPC에서 생성된 네트워크 안에 만들어진 리소스는 외부 네트워크와 직접 통신하므로 공개 IP를 가져야 한다.
하지만 공개 IP를 가진다는 것은 인터넷에 직접 공개된다는 의미이므로, 애써 서브넷을 퍼블릭과 프라이빗으로 구분한 의미가 사라진다.

프라이빗 서브넷에 생성된 리소스는 인터넷으로 내보낼 수는 있지만 인터넷에서 접근할 수는 없어야한다.
이런 요구사항을 구현하기 위해 NAT라는 네트워크 주소 변환 시스템이 있다.
AWS에서는 이 NAT를 구현하는 NAT 게이트웨이를 제공한다.
NAT 게이트웨이는 퍼블릭 서브넷에 대해 생성한다.
이중성을 확보하려면 여러 NAT 게이트웨이를 생성하는 것이 좋다.

NAT 게이트웨이 (중계자)

  • 역할: "나가는 건 OK, 들어오는 건 NO"
    • 내부(Private)에서 밖으로 요청하는 건 대신 처리해 주고, 밖에서 내부로 들어오려는 건 막아줍니다.
  • 비유 (연예인과 매니저):
    • Private 서버 (연예인): 집 밖으로 나가면 위험해서 집에만 있습니다. 근데 햄버거가 먹고 싶습니다.
    • NAT 게이트웨이 (매니저): 연예인 대신 햄버거 가게(인터넷)에 갑니다.
    • 결과: 햄버거 가게 직원은 매니저 얼굴만 봅니다. (연예인 집 주소는 모름). 매니저가 햄버거를 사서 집 안의 연예인에게 전달해 줍니다.

배치 위치가 중요

"NAT 게이트웨이는 퍼블릭 서브넷에 생성한다"

  • 왜? 매니저(NAT)는 햄버거 가게(인터넷)에 다녀와야 한다.
  • 흐름: Private 서버 -> NAT 게이트웨이 (Public 서브넷 위치) -> 인터넷 게이트웨이 -> 인터넷

-> 여기서는 2개의 퍼블릭 서브넷에 각각 NAT 게이트웨이를 생성할 것이다.

 

 

영역별 선택

서브넷 퍼블릭01, 02 선택 후 탄력적 IP 까지 할당해주고 생성을 해준다.

 

 

 

5. 라우팅 테이블

VPC상에 서브넷을 생성하고 리소스를 생성할 장소를 준비했다.
또한 인터넷 게이트웨이와 NAT게이트웨이를 생성해 리소스가 인터넷과 통신할 수 있도록 출입구를 만들었다.
하지만 이 상태에서는 서브넷과 서브넷, 또는 서브넷과 각 게이트웨이가 통신할 수 있는 경로가 아직 존재하지 않는다.
따라서 어떤 서브넷 안의 리소스가 해당 서브넷 밖의 리소스에는 접근할 수 없다.

이러한 서브넷 사이의 통신 경로를 설정하고자 AWS에서는 라우팅 테이블 기능을 제공한다.
라우팅 테이블에는 '이 서버'에 접속할 때는 이 곳을 경유한다' 라는 규칙을 다음과 같은 테이블 형식으로 설정할 수 있다.

내비게이션 (또는 도로 표지판)

  • VPC/서브넷: 도로와 건물을 지었습니다.
  • 인터넷 게이트웨이/NAT: 고속도로로 나가는 톨게이트를 지었습니다.
  • 문제점: 하지만 도로 위에 서울로 가려면 오른쪽으로 가시오 라는 표지판이 하나도 없습니다. 그래서 자동차(데이터)가 톨게이트가 어디 있는지 몰라서 뱅뱅 돌고 있는 상태입니다.

라우팅 테이블이 바로 이 표지판(내비게이션) 역할을 합니다.


 

현재 총 4개의 서브넷이 존재한다.

모든 서브넷에 라우팅 테이블을 작성해야한다.

단, 여러 서브넷이 같은 라우팅 테이블을 공유할 수도 있다. 이를 고려해 여기서는 다음과 같이 라우팅 테이블을 생성할 것이다.

 

퍼블릭 라우팅 테이블 : 퍼블릭 서브넷 1,2 공용

프라이빗 라우팅 테이블 1: 프라이빗 서브넷 1용

프라이빗 라우팅 테이블 2: 프라이빗 서브넷 2용

 

 

 

라우팅 경로 편집 (Route Editing)

라우팅 테이블을 생성했다면, 이제 실제로 트래픽이 이동할 경로를 지정해야 합니다. '라우팅 편집' 메뉴로 들어가 [라우팅 추가] 버튼을 클릭합니다.

  • 대상 (Destination): 0.0.0.0/0 (모든 IP 대역을 의미)
  • 타겟 (Target): 인터넷 게이트웨이 (방금 생성한 IGW 선택)

이 설정의 의미는 목적지를 모르는 모든 트래픽(0.0.0.0/0)은 인터넷 게이트웨이로 보내라(인터넷으로 내보내라)는 뜻입니다.

 


 

라우팅 테이블이 속한 서브넷을 지정한다.

서브넷 연결 탭을 선택 -> 서브넷 연결 편집 버튼을 클릭한다.

서브넷 연결 편집 화면에서 편집 중인 라우팅 테이블이 속하는 서브넷을 지정하면 된다.

퍼블릭 라우팅 테이블에는 public01, public02에 연결되므로 이 2개의 서브넷에 체크한 뒤 연결 저장을 누른다.


 

**프라이빗 라우팅 테이블을 설정할 때는 인터넷 게이트웨이가 아닌 NAT 게이트웨이 를 선택해야 한다.

프라이빗 01, 02 서브넷 연결도 각각 하나씩 연결 해주면 된다.

 

정리

라우팅 테이블 3개 생성 public 1개 private 01, 02 한개씩

 

public 라우팅은 인터넷 게이트웨이 연결

private 01,02는 NAT로 연결

 

서브넷 연결

public -> 01 , 02 추가

private : 01 -> 01  , 02 -> 02 연결

 

 

 

6. 보안그룹

VPC상에 다양한 리소스를 생성할 준비를 마쳤다. 
하지만 이 상태에서는 인터넷을 통해 모든 리소스에 접근할 수 있다. 
VPC 안의 리소스를 보호하려면 외부로부터의 접근에 제한을 걸어야 한다.
이런 접근 제한을 수행하기 위해 보안그룹 이라는 기능을 제공한다.

 

포트번호를 이용한 제어: 웹 서비스에 접근할 때 쓰이는 80번과 443번 또는 서버에 접속해서 유지 보수할 때 쓰이는 22번 등을 많이 지정한다.

 

IP주소를 이용한 제어: 소속된 회사나 학교 등 조직 내 네트워크에서 작업할 경우 인터넷에 접속하는 IP 주소는 보통 한정된다. 이러한 IP 주소들을 지정함으로써 조직 외부로부터의 접근을 막을 수 있다. 


 

여기서는 2개의 보안그룹을 생성할 것이다.

 

모든 리소스에 접속하는 입구인 '점프서버'

요청이나 처리를 분산하는 '로드 밸런서'

 

 

보안그룹 1 : VPC 정보는 만들어놓은 VPC -> TEST VPC로 연결을 해줘야된다.

인바운드 규칙 추가를 눌러서 위와 같이 설정해준다.

* 점프 서버용 보안그룹은 관리자 접속을 위해 SSH 22번 포트를 내 IP에서만 접근 가능하도록 열어준다. 

 

 

보안그룹 2 : 1과 똑같이 VPC 설정해주고 

인바운드 규칙 2개를 추가해서 HTTP 와 HTTPS 를 넣어준다.

 

 

 

 

마무리

AWS 클라우드 환경의 가장 기초가 되는 VPC 네트워크를 수동으로 구축해 보았다.

VPC(땅) → 서브넷(건물 구획) → 게이트웨이(출입문) → 라우팅 테이블(이정표) 로 이어지는 네트워크 흐름을 알 수 있다.