Amazon VPC란?
Amazon Virtual Private Cloud(Amazon VPC)를 이용하면 사용자가 정의한 가상 네트워크로 AWS 리소스를 시작할 수 있습니다. 이 가상 네트워크는 AWS의 확장 가능한 인프라를 사용한다는 이점과 함께 고객의 자체 데이터 센터에서 운영하는 기존 네트워크와 매우 유사합니다.
사용자 IP 대역, 인터페이스, 서브넷, 라우팅 테이블, 인터넷 게이트웨이, 보안 그룹, NACL 등을 생성/ 수정 및 제어할 수 있습니다.
✔ VPC 관련 개념
- 서브넷 : VPC의 IP 주소 범위로서, 네트워크의 영역을 논리적으로 나눕니다.
- VPC와 서브넷에 IP 주소를 할당하여 리소스에 할당
- 라우팅 : 라우팅 테이블을 사용하여 서브넷 또는 네트워크 트래픽이 전달되는 위치를 결정합니다.
- 게이트웨이 : 게이트웨이는 VPC를 다른 네트워크에 연결합니다. 예를 들면, 인터넷 게이트웨이 (IGW) 를 사용하여 VPC를 인터넷에 연결합니다
- 엔드포인트 : VPC 엔드포인트 를 사용하여 인터넷 게이트웨이 또는 NAT 장치를 사용하지 않고 AWS 서비스에 비공개로 연결합니다.
테스트용 가상 네트워크 구성도
기존 온프레미스 환경에서는 스위치나 라우터 등의 물리 장비를 통해 서비스의 네트워크를 구성하였습니다. 이 과정에서 외부망과 내부망에 대한 연결을 설정하였고 네트워크 장비들을 추가적으로 구성하여 복잡한 사내 네트워크를 형성하는 구조였습니다.
하지만 AWS에서는 라우터, 스위치 등의 네트워크 장비 역할을 하는 다양한 서비스들을 이용하여 복잡한 네트워크를 손쉽게 구성할 수 있습니다. 이 작업에서 핵심이 되는 개념이 바로 VPC입니다. 통상적으로 VPC를 통해 네트워크의 큰 틀을 구성하고, Subnet 으로 대역을 나누어 사용합니다.
Subnet은 크게 Public subnet과 Private subnet으로 나눌 수 있습니다. Public Subnet 은 외부에서 접근할 수 있는 네트워크 대역으로서 공인 IP를 할당할 수 있고 인터넷과의 연결 자유롭습니다. 웹 애플리케이션 서버와 같은 것들을 위치시킵니다.
Private Subnet은 외부에서 접근이 불가능한 대역으로, 퍼블릭 액세스가 필요 없는 DB 와 같은 리소스를 보호하기 위해 사용됩니다. 이 때, NAT 게이트웨이를 이용하여 내부에서 외부로 접근할 수 있도록 만들어줄 수 있습니다.
- Public Subnet 퍼블릭 대역
- **10.0.0.0/24 AWS에서 예약된 IP를 제외한 IP를 사용 가능**
- 외부에서 인터넷 게이트웨이 (IGW)를 통해 접근 가능
- Private Subnet 의 외부 통신을 위해 Public Subnet 안에 NAT 게이트웨이 구성
- Private Subnet 내부 대역
- 외부에서 접근 할 수 없는 대역 (개발용으로 사용)
- 빌드, 배포, DB, 사무용 PC
- 개발자들의 IT Center
- 외부에서 내부 대역 (Private subnet)으로 접속 불가
- NAT 게이트웨이로 라우팅을 통해 외부와 통신할 수 있음
📌 가상 네트워크 구축
✔ VPC 생성
AWS 콘솔 창 - VPC 검색 - 왼쪽 카테고리 VPC 선택 - VPC 생성 버튼 클릭
VPC 이름과 VPC에 대한 IPv4 CIDR 블록(또는 IP 주소 범위)을 지정합니다.
태그 설정 및 VPC 생성 버튼 클릭
✔ Public subnet 생성
1. 서브넷 생성
VPC 검색 - 왼쪽 카테고리 서브넷 선택 - 서브넷 생성 버튼 클릭
2. VPC 선택
대역을 나눌 VPC 선택
3. 서브넷 설정
서브넷 이름을 설정하고 서브넷이 상주할 영역을 선택 (2a 또는 2c 권장)
Subnet에 대한 IPv4 CIDR 블록(또는 IP 주소 범위)을 지정합니다.
✔ 인터넷 게이트웨이 (IGW) 생성
VPC를 외부 네트워크와 연결하기 위해 인터넷 게이트웨이 (IGW)를 생성합니다.
Public Subnet 네트워크 흐름도
사용자 -> IGW -> VPC -> 가상 라우터 -> Public Subnet
1. 인터넷 게이트웨이 생성
VPC 검색 - 왼쪽 카테고리 인터넷 게이트웨이 선택 - 인터넷 게이트웨이 생성 버튼 클릭
이름을 추가하고 인터넷 게이트웨이 생성 버튼 클릭
IGW 생성됨
2. VPC에 연결
생성된 IGW를 선택하고 작업 - VPC에 연결 버튼을 클릭하여 VPC와 연결하면 됩니다.
✔ 라우팅 테이블 생성
라우팅 테이블은 컴퓨터 네트워크에서 목적지 주소를 목적지에 도달하기 위한 네트워크 노선으로 변환시키는 목적으로 사용됩니다. 여기서는 외부로부터 들어온 요청을 Public Subnet 으로 라우팅 해줄 예정입니다.
1. 라우팅 테이블 생성
VPC 검색 - 왼쪽 카테고리 라우팅 테이블 선택 - 라우팅 테이블 생성 버튼 클릭
2. 라우팅 테이블 설정
이름 및 태그를 설정하고 라우팅 테이블에 대해 사용할 VPC를 선택합니다.
라우팅 테이블 생성됨
3. 서브넷 연결
Public Subnet으로 라우팅해주기 위해 라우팅 테이블과 서브넷을 연결합니다.
서브넷 연결 탭에서 서브넷 연결 편집 버튼을 클릭합니다.
서브넷 연결 편집 에서 서브넷과 라우팅테이블을 연결해주면 됩니다.
앞서 생성했던 Public Subnet을 선택하여 연결을 저장합니다.
4. 라우팅 편집
라우팅 탭에서 라우팅 편집 버튼을 클릭합니다.
인터넷 게이트웨이로부터 받은 외부 요청에 대한 라우팅 기능을 수행해야하기 때문에 라우팅 대상에 0.0.0.0/0 (모든 IP) 를 추가해주어야합니다.
대상 0.0.0.0/0 입력 , 인터넷 게이트웨이 선택
앞서 만들었던 인터넷 게이트웨이를 선택하고 변경 사항 저장 버튼을 클릭합니다.
참고
https://docs.aws.amazon.com/ko_kr/vpc/latest/userguide/what-is-amazon-vpc.html