오늘은 AWS에서 제공하는 가상네트워크 환경인 VPC(Virtual Private Cloud)의
- 서브넷, 라우팅 테이블
- 엔드포인트
- 보안그룹
- EC2 인스턴스 생성
- 제거하기
- 수동으로 구성하기에 대해 학습하였다.
- VPC는 사용하려는 EC2와 동일한 리전에 있어야 한다.
- VPC만 생성할 수도 있고, 서브넷과 라우팅 테이블 등을 같이 생성할 수도 있다.

- 원래는 다른 서브넷에서는 다른 네트워크 망으로 구분되어 통신이 안되지만
- 하나의 VPC안에서는 다른 서브넷을 가지고 있어도 동일한 네트워크 망에 있다고 인식하여 통신이 가능하다.
- 따라서 private 서브넷에 DB 서버를 둔다고 하면 외부로의 통신은 NAT 게이트웨이를 통해서만 가능하고, 외부에서는 접속이 불가능하다. 하지만 public 서브넷을 사용하는 웹 서버는 DB 서버와 다른 서브넷을 사용하더라도 동일한 VPC 환경에 있어서 DB 서버와 통신이 가능하다.
1. 서브넷, 라우팅 테이블
- public 서브넷이던, private 서브넷이던 CIDR은 마음대로 지정할 수 있다. (동일한 네트워크 대역에서)
- public과 private의 차이는 라우팅 테이블에 있다.
- public의 경우
IGW(인터넷 게이트웨이)
와 라우팅 테이블로 연결되어 외부와 직접 통신이 가능하다.
- private의 경우
NAT
와 라우팅 테이블로 연결되어있고 이를 통해서 외부와 통신이 가능하게 된다. NAT는 탄력적 IP 1개를 할당받아야 한다.
- AWS VPC의 라우팅 테이블에서 1개의 private 라우팅 테이블은 1개의 서브넷과 연결되어서 라우팅 경로를 제공한다.
- public은 한개의 라우팅 테이블을 공용으로 사용한다.
- public 라우팅 테이블 : IGW(0.0.0.0/0) 통로와, local 통로. 두가지가 존재
- private 라우팅 테이블 : 엔드포인트 통로, local 통로, NAT(0.0.0.0/0) 통로. 총 세가지가 존재
2. 엔드포인트
- private 서브넷에 속한 인스턴스가 S3, DynamoDB 등에 접속 할 수 있게 하는 통로 역할
- 보안의 목적
- private 서브넷의 경우 엔드포인트에 해당하는 라우팅 테이블 정보가 추가로 생성된다. (pl-78a54011)

3. 보안그룹 생성
- VPC에 속해 있는 보안그룹을 생성하고 VPC 그룹 내 인스턴스 들에 적용할 수 있다.


4. VPC에 EC2 인스턴스 생성
- 네트워크 설정 > 생성한 VPC로 설정
- public, private에 따른 서브넷 선택
- public 서브넷의 경우 퍼블릭 IP 자동 할당 활성화 (private는 비활성)

- Public 서브넷의 경우 퍼블릭 IPv4 주소 자동 할당 활성화에 체크 해주면, 해당 서브넷에 생성되는 EC2 인스턴스에 기본으로 퍼블릭 IP 자동 할당이 활성화 된다.

- 퍼블릭 서브넷을 사용하는 인스턴스들은 퍼블릭 IPv4주소가 각각 할당이 된다.

5. VPC 제거하기
- 인스턴스 종료
- NAT게이트웨이 삭제 (해당 장치를 사용하는 private 인스턴스가 하나라도 있으면 삭제 안됨. 시간 좀 걸림)
- 인터넷 게이트웨이 : VPC에서 분리 후 삭제
- 해당 단계에서 라우팅 테이블을 보면 삭제된 장치에 대해 블랙홀이 생겨있다.(IGW를 삭제해서 해당하는 인터페이스를 찾지 못함)

- 서브넷 삭제
- 탄력적 IP 주소 릴리스 (NAT 게이트웨이에서 사용)
- 라우팅 테이블 삭제
- VPC 삭제
- VPC만 생성

- 서브넷 생성 : 가용영역, 및 CIDR 블록 설정, public ipv4 자동할당 설정


- IGW 생성 (public 서브넷을 위한) 및 VPC와 연결


- NAT 게이트 웨이 생성 (private 서브넷을 위한) - 탄력적 IP 할당이 필요하다.

- 각각의 서브넷에 해당하는 라우팅 테이블 생성 및 연결


