✨ VPC
- 사용자의 AWS 계정 전용 가상 네트워크이다.
- AWS 클라우드에서 다른 가상 네트워크와 논리적으로 분리되어 있다.
✨ Subnet
- VPC의 하위 단위이다. 각 서브넷은 VPC IP 주소 범위 내에 있어야 한다.
- 하나의 서브넷은 하나의 가용영역(AZ)에 위치한다.
- 10.0.0.0/24 같이 CIDR block range로 IP 주소를 지정한다.
Public Subnet : 외부에서 인터넷을 통해 연결할 수 있는 서브넷
- 인터넷 게이트웨이를 통해 외부의 인터넷과 연결되어 있다.
- 안에 위치한 인스턴스에 Pulbic IP 부여가 가능하다.
- 웹 서버 및 어플리케이션 서버 등 유저에게 노출되어야 하는 인프라이다.
Private Subnet : 외부에서 인터넷을 통해 연결할 수 없는 서브넷
- 외부 인터넷으로 경로가 존재하지 않는다.
- 안에 위치한 인스턴스에 Public IP 부여가 불가능하다.
- 로직 서버 및 데이터베이스 등 외부에 노출 될 필요가 없는 인프라이다.
1. VPC 생성
2. 서브넷 생성다음과 같이 6개의 서브넷을 생성하였다. 2개는 퍼블릭 서브넷이고 4개는 프라이빗 서브넷이다. 두 개의 가용영역에 나눠서 각각 배치해줬다.
CIDR 표기법은 IP 주소와 관련된 서브넷 마스크를 간결하게 표현하는 방법 중 하나이다.
CIDR 표기법에서 /24는 네트워크 주소를 24비트로 지정한다는 의미이다.
32비트 IPv4 주소에서 네트워크 부분이 처음 24비트이고, 나머지 8비트가 호스트를 나타낸다.서브넷을 생성한 후 사용 가능한 IPv4 개수를 살펴보면 256개가 아니라 251개로 나타나있다. 아래와 같이 5개의 주소는 사용할 수 없기 때문이다.
- 10.0.0.0: 네트워크 주소
- 10.0.0.1: VPC 라우터용 주소
- 10.0.0.2: DNS 서버용 주소
- 10.0.0.3: AWS 예약용 주소
- 10.0.0.255: 네트워크 브로드캐스트 주소
3. 인터넷 게이트웨이 및 NAT 게이트웨이 생성
- 인터넷 게이트웨이는 VPC 내부의 인스턴스와 외부의 인터넷 간의 통신이 가능하도록 경로를 만들어주는 리소스이다.
- NAT 게이트웨이는 VPC 내부의 인스턴스가 외부 인터넷에 트래픽을 보낼 수 있도록 하는 리소스다.
- 주로 프라이빗 서브넷 내의 인스턴스들이 외부로 나가는 트래픽을 관리하는 데 사용된다.
- 인터넷 게이트웨이와는 달리, 외부에서 VPC 내부로의 트래픽을 허용하지 않는다.
- 주로 외부에서 내부로의 통신이 아니라 내부에서 외부로의 트래픽을 관리하는 데 사용된다.
4. 라우팅 테이블 설정
위에서 생성한 서브넷은 라우팅 테이블에 연결되어 있으며, 라우팅 테이블을 통해 트래픽이 해당 서브넷으로 이동하도록 설정된다.
퍼블릭 서브넷이 연결된 라우팅 테이블을 생성한다. 해당 라우팅 테이블에 위에서 생성한 인터넷 게이트웨이를 연결하여 외부 네트워크로의 경로를 설정한다. 이를 통해 VPC 내의 퍼블릭 서브넷에 위치한 인스턴스가 인터넷과 직접적인 통신이 가능해진다.
프라이빗 서브넷이 연결된 라우팅 테이블을 생성한다. 해당 라우팅 테이블에 위에서 생성한 NAT 게이트웨이를 연결하여 프라이빗 서브넷에 있는 인스턴스들은 NAT 게이트웨이를 통해 외부 인터넷에 연결할 수 있게 된다.