
VPC: (Virtual Private Cloud) 서버나 네트워크 장비가 가진 기능을 에뮬레이션하는 소프트웨어를 작동시켜 물리적인 기기를 이용하지 않고 가상 네트워크를 구축하는 것
AWS를 이용하여 VPC 를 이용할 땐 Amazon VPC 라는 프로그램을 이용하여 구축이 가능한다
가상으로 네트워크를 구축하는 것이며 기기 추가나 삭제를 소프트웨어 실행이나 정지처럼 간단히 수행이 가능하다 VPC 끼리는 독립적이므로 서로 영향을 미치지 않음
VPC를 생성할 때는 사전에 네트워크 정보를 결정해야한다
이름태그 : smaple-vpc : VPC를 식별하는 이름
IPv4 CIDR 블록 : 10.0.0.0/16 : VPC에서 이용하는 프라이빗 네트워크의 IPv4 주소 범위
IPv6 CIDR 블록 : IPv6 CIDR블록 없음 : VPC에서 이용하는 프라이빗 네트워크의 IPv6 주소 범위
테넨시(tenancy) : 기본값 : VPC 리소스 전용 하드웨어에서의 실행 여부
2.1. 이름태크 : VPC를 쉽게 식별하고자 쉬운 이름을 붙임, 이후에 자유롭게 변경가능
2.2. IPv4 CIDR 블록 : VPC에서 사용하는 프라이빗 네트워크용 IP 주소 범위 다음 3가지로 제공
2.2.1. 24비트 블록: 10.0.0.0 ~ 10.255.255.255.
2.2.2. 20비트 블록: 172.16.0.0 ~ 172.31.255.255
2.2.3. 16비트 블록: 192.168.0.0 ~ 192.168.255.255
일반적으로 IP 주소의 범위가 넓은 편이 같은 네트워크 안에 많은 IP 주소를 제공 할 수 있음, 하지만 VPC로 지정 할 수 있는 서브넷마스크는 최대 16비트까지 이므로 어떤 범위를 이용해도 달라지는 것은 없다, 관리의 편의성에 따라 IP주소의 범위를 선택 하면됨
2.3. IPv6 CIDR 블록: IPV6 사용여부 지정, 특별한 의도가 없는한 없음 선택
2.4. 테넨시: VPC 상의 리소스를 전용 하드웨어에서 실행할지 지정
2.4.1. 기본으로 설정시 다른 AWS 계정과 하드웨어 리소스를 공유하도록 선택하는 것과 같다
2.4.2. 신뢰성이 매우 중요한 시스템의 경우에는 '전용'으로 설정하는것도 좋음
2.4.2.1. '전용' 설정 시 별도 비용이 추가됨

VPC 안에는 하나 이상의 서브넷을 만들어야한다
서브넷(Subnet)은 VPC의 IP 주소 범위를 나타내는 단위이다 IP 주소를 나누는 대표적인 이유는 다음과 같다
리소스가 담당하는 역할에 따라 분리.
예를 들어 리소스의 하나인 로드 밸런서는 외부 공개가 목적이므로 외부에서 접근 할 수 있어야함
반대로, DB 서버는 VPC 내부에서의 사용을 전제로 하므로 외부에 공개되어서는 안된다
이런 규칙을 리소스마다 개별적으로 할당하지 않고 포함된 그룹에 전체에 대해 할당하면 설정 누락등을 피 할 수 있다
내결함성(Fault Tolerance)을 높이기 위해 기기를 분리.
내결함성이란, 하드웨어 고장 등 예측 할 수 없는 사태가 발생 했을때 시스템 자체를 사용하지 못하게 되는 것을 방지하는 능력
만약 서브넷이 여럿 존재하더라도, 서브넷이 같은 기기에 대한 것이라면 기기 고장이 발생했을때 동시에 서브넷 안에의 리소스를 이용할 수 없게됨
VPC에는 가용영역(Availability Zone: 각 리전안에 여러 독립된 위치)이라는 개념이 존재함
가용영역이 다르다면 독립되었음을 보장할 수 있고, 가용영역별로 서브넷을 제공하면 여러 서브넷을 동시에 이용하지 못하는 기능을 낮출 수 있음
서브넷은 한번 만들면 해당 서브넷이 이용하는 CIDR 블록은 변경 할 수 없다. 처음부터 확실하게 잘 설계해야한다 두가지 항목을 고려해서 설계를 한다
이 두 항목은 트레이드오프 관계이다 -> 서브넷 수가 늘어나면 서브넷 안의 리소스는 줄어드는 것
서브넷의 수 -> 256 => 리소스의 수 =>251
서브넷의 수 -> 16 => 리소스의 수 =>4091
서브넷의 수 -> 4 => 리소스의 수 =>16379
AWS에서의 리소수 수는 최댓값에서 AWS에서 예약한 5개를 뺀 값이 리소스의 수가 된다
서브넷 설계
public01 -> 10.0.0.0/20
public02 -> 10.0.16.0/20
private01 -> 10.0.64.0/20
private02 -> 10.0.80.0/20
서브넷은 최대 16개를 만들 수 있으며 그중 4개를 이용하여 설계, 서브넷 안에는 4091개의 리소스 생성이 가능하여 일반적인 상황에서는 이용하기 충분함
두가지 조합을 이용하여 4개의 서브넷 생성
