본문 바로가기
👾 Server/☁️AWS

AWS - VPC(Virtual Private Cloud)이란? : AWS에서 독립된 가상 네트워크 만들기

by kukim 2022. 3. 31.

이 글은 책 [따라 하며 배우는 AWS 네트워크 입문 -저 김원일, 서종호], [실습으로 배우는 AWS 핵심 서비스 - 호눅스],  [AWS Doc]를 참고했습니다. 잘못된 내용이 있다면 편하게 말씀해주세요 🙏🏻

VPC란?

독립된 가상의 클라우드 네트워크로, AWS에서는 사용자가 VPC 서비스를 활용해 직접 네트워크 환경 설계 가능하다.

데이터 센터에서 제공하는 네트워크와 매우 유사하다.

 

AWS VPC 종류

AWS의 VPC는 두 종류가 있다.

구분 Default VPC Custom VPC
생성 주체 AWS 사용자
AWS 리소스 정해진 리소스 미리 생성 수동으로 생성
리전 별 생성 수 1개 최대 5개(기본값)

 

AWS의 VPC 구성을 위해 사용하는 리소스

VPC는 리전 단위로 네트워크를 구성한다. Default VPC 기준 리전의 1개만 존재한다. VPC를 활용해 사용자가 리전 별로 네트워크를 구분했다. 리전에 있는 여러 AZ, 실제 리소스(ec2, s3...)의 네트워크 관리는 어떻게 할까? 아래의 리소스를 활용한다.

 

*리전, AZ : AWS는 전 세계에 리전(지역)을 두고 있고 각 지역마다 최소 2개 이상의 데이터 센터(AZ)가 존재한다. VPC는 여러 데이터 센터를 묶어 지역 단위로 하나의 네트워크로 관리한다.


서브넷(Subnet)

일반적인 서브넷 개념은 네트워크 영역을 부분적으로 나눈 망으로 볼 수 있다. AWS VPC 리소스에서 서브넷의 의미는 리전으로 묶여있는 VPC 네트워크를 AZ 단위로 네트워크 망을 분리한다. 

따라하며 배우는 AWS 네트워크 입문 : 그림 3-1-1

서브넷 마스크를 통해 IP 주소에 대해 네트워크 아이디, 호스트 아이디를 구분할 수 있다.

일반적인 네트워크에서 10.0.0.0/24의 경우 아래와 IP 주소를 사용한다. 

10.0.0.0 -> 네트워크 주소

10.0.0.1 ~ 10.0.0.254 -> 호스트 IP 사용 가능 주소 (253개)

10.0.0.255 -> 브로드케스트 주소

 

AWS 서브넷의 경우 일반적인 경우에 추가된 예약 IP 주소가 있다. (e.g. 10.0.0.0/24)

10.0.0.0 → 네트워크 주소

10.0.0.1 → AWS VPC 가상 라우터 주소

10.0.0.2 → AWS DNS 서버 주소

10.0.0.3 → 향후 새로운 기능에 활용할 주소

10.0.0.255 → 네트워크 브로드캐스트 주소


Public subnet과 Private subnet

AWS 서브넷은 Public subnet과 Private 서브넷으로 구분하여 사용한다.

 

Public subnet

공공 네트워크, 외부 인터넷과 통신 용도로 사용한다.

퍼블릿 서브넷과 외부 인터넷을 연결하기 위해 인터넷 게이트웨이를 사용하여 양방향 통신할 수 있다.

 

Private subnet

외부 인터넷과 직접 통신할 수 없는 폐쇄적인 네트워크

원론적으로 외부 인터넷과 통신 불가하지만 NAT 게이트웨이를 사용하면 단방향(프라이빗 서브넷 -> 외부 인터넷) 통신만 할 수 있다.

따라하며 배우는 AWS 네트워크 입문 : 그림 3-1-2


가상 라우터와 라우팅 테이블

VPC 생성하면 자동으로 가상 라우터가 생성되고 가상 라우터는 라우팅 테이블을 가지고 목적지 네트워크로 라우팅 통신한다.

서브넷 별로 라우팅 테이블 매핑시켜줄 수 있다.

따라하며 배우는 AWS 네트워크 입문 : 그림 3-2-2


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

VPC와 인터넷의 논리적인 연결을 한다. VPC에서 외부 네트워크(인터넷) 나가는 관문이다.

VPC 마다 1개만 연결할 수 있다.

퍼블릭 서브넷은 라우팅 테이블에 외부 인터넷 구간 나가는 타깃을 인터넷 게이트웨이로 지정하여 외부와 통신할 수 있다.

양방향 통신을 할 수 있다.

따라하며 배우는 AWS 네트워크 입문 : 그림 3-3-1

+a) 0.0.0.0/0 이란 무엇인가?

서브넷 마스크가 0인 0.0.0.0/0은 Ip 범위가 0.0.0.0 ~ 255.255.255.255의 의미로 모든 IP에 대해 허용한다는 뜻이다.(any!)


NAT 게이트웨이

NAT(Network address Translation)으로 네트워크 주소를 변환하는 기술이다.

Private 서브넷은 원론적으로 외부 인터넷과 통신 불가하지만 NAT 게이트웨이를 사용하여 Private IP -> Public IP로 변환하여 외부와 통신할 수 있도록 한다.

단방향 통신(private IP -> 외부)만 허용한다.

따라하며 배우는 AWS 네트워크 입문 : 그림 3-4-1 / 오탈자 - 그림에서 타깃의 '인터넷 게이트웨이' -> NAT 게이트웨이


보안 그룹과 네트워크 ACL

VPC는 인스턴스 레벨, 서브넷 레벨을 대상으로 필터링하여 보안을 지정할 수 있다.

인스턴스 레벨 : 보안 그룹(Security Group)

서브넷 레벨 : 네트워크 ACl(Access Control list)

따라하며 배우는 AWS 네트워크 입문 : 그림 3-5-1

 


다음 글에서는 생성한 VPC에서 AWS 퍼블릭 서비스와 통신할 때 외부망이 아닌 내부망으로 통신하는 VPC Endpoint(엔드포인트)에 대해 알아보고자 한다.

Reference

따라 하며 배우는 AWS 네트워크 입문 - 저 김원일, 서종호

따라 하며 배우는 AWS 네트워크 소개 책 가이드, 책 이미지 제공

실습으로 배우는 AWS 핵심 서비스 - 호눅스

AWS Docs

 

댓글