> For the complete documentation index, see [llms.txt](https://jason-kang.gitbook.io/aws/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://jason-kang.gitbook.io/aws/1.-aws/1.3-vpc-subnet-routing-table-internet-gateway.md).

# 1.3 VPC 설정과 Subnet ↔️ Routing Table ↔️ Internet Gateway

* VPC - Virtual Private Cloud
  * 단어 뜻을 그대로 보자면 `가상의 개인 클라우드`
  * AWS개념으로 보자면 하나의 Region에 여러 Availability Zone(AZ)이 있고, 각각의 Availability Zone(AZ)에 데이터센터가 존재함
    * 일반적으로 데이터센터는 여러개의 서버랙이 있고, 각각의 서버랙에 여러대의 서버가 있다

      <figure><img src="/files/H1THn3hmHly7vE2Y26PV" alt=""><figcaption><p>AWS 기준 Avaiability Zone(AZ) 내 데이터센터</p></figcaption></figure>
    * 하지만 여러개의 EC2를 사용한다고 했을 때, 같은 서버랙에 있는 서버를 발급받는다는 보장이 없음

      <figure><img src="/files/ZJ2yb1Q23aIlknFqJBCC" alt=""><figcaption><p>여러 서버랙에서 하나의 서버만 발급 받는 경우</p></figcaption></figure>
    * 위와같이 각각 다른 서버랙에서 서버를 배정 받았을 때, VPC로 묶어서 마치 하나의 서버랙에서 서버를 관리하는 것처럼 하는 것이 VPC의 역할
* Subnet
  * AWS에서 EC2와 같은 리소스들은 subnet을 할당함
  * Subnet에는 Public Subnet과 Private Subnet이 있음
    * Public Subnet은 Public IP와 유사한 느낌으로 `외부와 통신이 가능`
    * Private Subnet은 반대로 외부와 통신이 불가능함
      * 따라서 Public IP를 assign한다고 해도 어차피 외부와 통신이 불가능하기 때문에 낭비
  * backend server나 database와 같이 클라이언트가 직접 접근할 필요가 없는 리소스들을 private subnet에 두고, 클라이언트가 직접 접근하는 프론트엔드 리소스는 public subnet에 배정
* Routing Table
  * 요청이 들어오면 어떤 subnet으로 보낼 지 정해둔 규칙
* Internet Gateway
  * Public subnet은 routing table을 통해 Internet Gateway와 연결됨
  * Internet Gateway를 통해서 외부와 통신이 가능함
