AWS

[AWS] 4장. VPC 및 시작하기

동호다찌 2022. 11. 23. 14:56

VPC 정의

아마존 VPC의 공식 웹페이지에서는 VPC를 다음과 같이 소개합니다.

 💡 Virtual Private Cloud (VPC)는 사용자의 AWS 계정 전용 가상 네트워크입니다. VPC는 AWS 클라우드에서 다른 가상 네트워크와 논리적으로 분리되어 있습니다. Amazon EC2 인스턴스 같은 AWS 리소스를 VPC에서 실행할 수 있습니다. IP 주소 범위와 VPC 범위를 설정하고 서브넷을 추가하고 보안 그룹을 연결한 다음 라우팅 테이블을 구성합니다.

VPC는 Virtual Private Cloud의 약자로 VPC를 통해 사용자 별로 가상의 사용자 네트워크 환경을 만들수 있도록 해주는 서비스이다. AWS 초창기 부터 있던 서비스는 아니고 2011년 8월부터 정식적으로 서비스 되었다. AWS에 VPC 개념이 도입되면서 기존의 IDC 센터와 차별점이 생겼다고 보아도 무방하다.


VPC가 없다면 EC2 인스턴스들이 서로 거미줄처럼 연결되고 인터넷과 연결됩니다. 이런 구조는 시스템의 복잡도를 엄청나게 끌어올릴뿐만 아니라 하나의 인스턴스만 추가되도 모든 인스턴스를 수정해야하는 불편함이 생깁니다. 마치 인터넷 전용선을 다시까는것과 같습니다.

VPC를 적용하면 아래 그림과같이 VPC별로 네트워크를 구성할 수 있고 각각의 VPC에따라 다르게 네트워크 설정을 줄 수 있습니다. 또한 각각의 VPC는 완전히 독립된 네트워크처럼 작동하게됩니다.

 

VPC 리소스

VPC 리소스는 AWS VPC내부에서 VPC와 관련있는 네트워크 리소스들을 말한다. AWS 관리 콘솔로 로그인해 서비스 목록에서 VPC를 선택하면 VPC 대시보드에서 각 리전별 운용 가능한 VPC 리소스들을 확인 할 수 있다.

2022년 11월 현재 AWS VPC 내 리소스

 

 

2022년 11월 AWS 서울리전의 VPC 리소스

VPC 리소스 기능
VPC AWS 사용자 계정 전용 가상 네트워크
서브넷 VPC의 IP 주소 범위로 나눈 가상의 스몰 네트워크
라우팅 테이블
(Routing table)
네트워크 트래픽을 전달할 위치를 결정하는데 사용하는 라우팅이라는 이름의 규칙 집합
인터넷 게이트웨이
(Internet gateway)
VPC의 리소스와 인터넷 간의 통신을 활성화하기 위해 VPC에 연결하는 게이트웨이
VPC 엔드포인트
(End point)
인터넷 게이트웨이NAT 디바이스VPN 연결 또는 AWS Direct Connect 연결 없는 PrivateLink 구동
CIDR블록 클래스 없는 도메인간 라우팅이며 인터넷 프토토콜 주소 할당 및 라우팅 집계 방법
Egress-only
Internet gateway
서브넷의 EC2 인스턴스가 인터넷에 액세스할 수 있도록 허용을 가능하게 하지만 인터넷 리소스가 인스턴스와 통신을 시작하지 못하도록 하는 인터넷 게이트웨이
Carrier gateways 통신 사업자용 인터넷 게이트웨이
NAT gateway 프라이빗 서브넷의 EC2가 인터넷다른 VPC 혹은 온프레이미스 네트워크 연결을 할수 있도록 허용하는 게이트웨이
NAT instance 프라이빗 서브넷의 인스턴스가 인터넷다른 VPC 또는 온프레미스 네트워크에 연결되도록 허용하는 퍼블릭 서브넷의 EC2인스턴스
DHCP 옵션세트 VPC 서브넷으로 시작될 때 EC2 인스턴스로 저달되는 구성정보
접두사 목록(Prefix lists) VPC 보안 그룹VPC 라우팅 테이블 및 AWS Transit Gateway 라우팅 테이블을 구성하는 데 사용할 수 있으며RAM(Resource Access Manager)을 사용해 다른 AWS 계정과 고유할 수 있는 CIDR 블록 모음
네트워크 ACL
(Network Access Control Lists)
서브넷으로 들어오고 나가는 트래픽 제어를 위한 방화벽 역할 담당

 

이러한 VPC는 AWS에 의해 내부 관리의 목적으로 생성되는 기본 VPC와 사용자에 의해 생성되는 VPC로 나뉜다.

보통 사용자에 의해 생성되는 VPC는 리전별 최대 5개까지 생성 가능하다.

 


VPC 만들기

VPC를 만드는 장소는 서울리전(ap-northeast-2)을 사용하기로 한다.

 

가지고 있는 aws 계정을 이용해 aws 관리 콘솔로 로그인 후, 서비스 찾기에서 아래 그림과 같이 VPC를 찾아 클릭해 VPC 생성 화면으로 들어간다.

 

VPC 생성을 위한 첫 화면, 이때 Available 상태에 있는 VPC는 AWS계정을 만들면 나오는 기본 VPC(Default VPC)로 우리는 기본 VPC가 아닌 새로운 VPC를 만들도록 할 것이다.

 

상단의 VPC생성을 클릭하도록 한다.

 

  • VPC 이름테그는 본인이 원하는 이름을 지정하도록 한다. 여기서는 my-vpc-01을 사용한다.

  • IPv4 CIDR 블록에 대한 값은 이 VPC가 인터넷을 통해 자원에 접근할 수 있도록 하기 위해 다음의 세가지 사설망 대역중 하나를 선택하도록 한다.
    (10.0.0.0/16, 172.16.0.0/12, 192.168.0.0/16) 여기서는 10.0.0.0/16을 사용하도록 하겠다.

  • 나머지 항목들(IPv6 CIDR블록 및 테넌시)은 기본값을 그냥 두고 VPC생성 버튼을 클릭해 VPC를 만들도록 한다.

 

VPC가 아래와 같이 생성된 것을 확인할 수 있다.

 

마지막으로 생성한 VPC의 작업란을 선택해 DNS호스트 이름 편집을 선택하고 들어가 DNS 호스트 이름 활성화를 클릭해 주도록 한다. DNS호스트 네임은 AWS의 DNS 서버를 사용하는 기능이다.

 

 

하나의 VPC가 만들어지게 되면 VPC와 관련된 일련의 자원들도 함께 만들어지게 되는데 VPC와 관련된 일련의 자원들은 다음과 같다.

  1. 서브넷 : VPC가 만들어 지고 직접 만들어야 한다.
  2. 라우트 테이블: VPC가 만들어 지면 자동으로 만들어진다. 이 라우트 테이블을 기반으로 VPC 내부의 자원들(서브넷 등)이 서로 연결될 수 있다.
  3. 인터넷게이트웨이: 직접 만들어야 한다.
  4. DHCP 옵션셋 : 자동으로 만들어 진다.
  5. 네트워크 ACL/시큐리티 그룹 : 자동으로 만들어 진다.