본문 바로가기

Cloud Study/AWS

[AWS] VPC 란

VPC 란?

Amazon Virtual Private Cloud (VPC)는  AWS 클라우드에서 다른 고객과 완벽하게 논리적으로 격리된 네트워크 공간을 제공하여 프로비저닝하여 가상 네트워크에서 AWS 리소스를 만드는데 사용하는 리소스입니다.  

VPC 생성에 필요한 구성요소

1. 리전 
2. 가용영역
3. VPC 
4. CIDR
5. Subnets (서브넷)
6. Route Tables (라우팅 테이블)
7. Internet Gateways (인터넷 게이트웨이)
8. Network ACLs & Security Group (네트워크 ACL & 보안그룹)

 

1. 리전

AWS가 전 세계에서 데이터 센터의 물리적 위치를 리전이라고 합니다.
각 Amazon EC2 리전은 세계 각지 여러곳에서 호스팅하고 있습니다.
이를 통해 최종 사용자에게 가까운 여러 위치에 컴퓨팅 및 리소스를 배치할 수 있습니다. 

2. 가용영역

각 리전은 가용 영역이라고 알려진 격리된 위치를 여러 개의 IDC센터를 가지고 있습니다.
인스턴스를 실행할 때 사용자가 직접 가용 영역을 선택하거나 AWS가 사용자를 위해 가용 영역을 선택하도록 할 수 있습니다. 이러한 AZ를 사용하여 더 높은 가용성, 확장성을 갖춘 애플리케이션을 운영할 수 있습니다.
VPC를 만든 후 각 가용 영역에 하나 이상의 서브넷을 추가할 수 있습니다.

 


3. VPC

 

 

Amazon Virtual Private Cloud(Amazon VPC)를 시작기 위해서는 VPC와 서브넷을 만들어야 합니다.
VPC 생성에 허용된 블록 크기는 /16 넷마스크 (IP 주소 65,536개) ~ /28 넷마스크(IP 주소 16개)입니다.

VPC는 AWS 클라우드에서 다른 가상 네트워크와 논리적으로 분리되어 있습니다. 
VPC를 만들때 VPC의 주소 범위를 CIDR 블록 형태로지정해야합니다.

4. CIDR

AWS에서는IP ADDRESS 주소를 표현할때 CIDR (사이더) 라는 국제적인 표준을 사용한다.
CIDR은 IP 주소의 영역을 여러 네트워크영역과 호스트영역으로 나눌 때 유연하게 사용할 수 있다.

4-1. CIDR Range

 

5. 서브넷

서브넷이란 거대한 네트워크 대역의 VPC 주소를 잘깨 쪼갠 네트워크 주소를 이야기 합니다.

AWS에서는 VPC 하위에 추가로 생성하고 어떤 AZ에 위치시킬지 설정하는 해야 합니다
서브넷을 생성할 때는 해당 서브넷에 대한 CIDR 블록을 지정해야하며, 한개의 가용영역(AZ) 내에서만 존재해야 하며,
한개의 서브넷을 여러영역에  확장하여 생성할 수 없습니다.

5-1 AWS의 서브넷의 종류

Public Subnet

Public Subnet
내부에 Internet Gateway, ELB, Public IP/Elastic IP를 가진 인스턴스를 내부에 생성할 수 있으며 Internet Gateway 연결을 통해서 외부와 통신할 수 있습니다.


Private Subnet
기본적으로 외부와 차단되어 있습니다. Private Subnet내의 인스턴스들은 P
rivate IP만을 가지고 있으며 internet inbound/outbound가 불가능 하고 오직 다른 서브넷과의 연결만이 가능합니다. Nat Instance를 Public Subnet 내에 위치 생성하여 Private Subnet내에 있는 instances이 인터넷이 가능하게 합니다.

 

5-2 서브넷팅 하는이유

1. IP 주소를 효율적으로 사용하기 위해서비스의 행위별로 IP를 분리하여 효율적으로 운영할 수 있습니다.

2. 네트워크를 분리하여 보안성을 강화하기 위해서외부에 노출되선 안되는 서비스를 별도로 관리할 수 있습니다.

5-3 . AWS에서의 서브넷

 

각 서브넷 CIDR 블록에서 첫 4개의 IP 주소와 마지막 IP 주소는 사용자가 사용할 수 없으므로 인스턴스에 할당할 수 없습니다.  예를 들어 10.0.0.0/24 CIDR 블록의 서브넷에서는 5개 IP 주소는 아래 목적으로 예약되어 있습니다.

 

10.0.0.0: 네트워크 주소.

10.0.0.1: AWS에서 VPC 라우터용으로 예약

10.0.0.2: DNS 서버의 IP 주소는 기본 VPC 네트워크 범위에 2를 더한 주소를 사용합니다  

10.0.0.3: AWS에서 나중에 사용하려고 예약

10.0.0.255: 네트워크 브로드캐스트 주소. VPC에서는 브로드캐스트를 지원하지 않으므로, 이 주소를 예약합니다.

 

6 . 라우팅이란?

VPC에는 암시적인 라우터가 있으며 라우팅 테이블을 사용하여 네트워크 트래픽이 전달되는 위치(경로)를 제어합니다.

 

7. 인터넷 게이트웨이

VPC에 생성된 인스턴스들은 격리된 환경이므로 기본적으로 인터넷을 사용할 수가 없습니다.
인터넷에 연결하기 위해서는 인터넷 게이트웨이를 사용하여 VPC에 연결해야 합니다.  이후 라우팅 테이블에 인터넷 게이트웨이를 향하는 적절한 규칙을 추가해주면 특정 서브넷이 인터넷과 연결됩니다.  

 

8. 네트워크 ACL과 보안그룹

네트워크 ACL

네트워크 ACL(액세스 제어 목록)은 1개 이상의 서브넷 내부와 외부의 트래픽을 제어하기 위한 방화벽 역할을 하는 VPC를 위한 선택적 보안 계층입니다.ACL 규칙 목록은 번호가 낮은 것부터 우선으로 적용된다. 

VPC 당 최대 ACL 개수는 200개이다. 

 

 

Security Group (보안그룹)

보안 그룹은 인스턴스에 대한 인바운드 및 아웃바운드 트래픽을 제어하는 가상 방화벽 역할을 합니다.
인스턴스를 시작할 때 최대 5개의 보안 그룹에 인스턴스를 할당할 수 있습니다.
보안 그룹은 서브넷 수준이 아니라 인스턴스 수준에서 작동합니다.
따라서 VPC에 있는 서브넷의 각 인스턴스를 서로 다른 보안 그룹 세트에 할당할 수 있습니다.

8-1. 네트워크 ACL 과 보안그룹 비교 

보안 그룹

네트워크 ACL

인스턴스 레벨에서 운영됩니다.

서브넷 레벨에서 운영됩니다.

허용 규칙만 지원

허용 및 거부 규칙 지원

상태 저장 (stateful)
규칙에 관계없이 반환 트래픽이 자동으로 허용됨

상태 비저장(stateless)
반환 트래픽이 규칙에 의해 명시적으로 허용되어야 함

트래픽 허용 여부를 결정하기 전에 모든 규칙을 평가함

트래픽 허용 여부를 결정할 때 번호가 가장 낮은 규칙부터 순서대로 규칙을 처리합니다.

인스턴스 시작 시 누군가 보안 그룹을 지정하거나, 나중에 보안 그룹을 인스턴스와 연결하는 경우에만 인스턴스에 적용됨

연결된 서브넷의 모든 인스턴스에 자동 적용됨
(보안 그룹 규칙이 지나치게 허용적일 경우 추가 보안 계층 제공)