그래서 VPC가 뭔데 라고 한다면 일단
Amazon Virtual Private Cloud(VPC)는 기본 구성 요소로서, 이를 통해 AWS 클라우드 내에서 논리적으로 격리된 가상 네트워크를 프로비저닝할 수 있습니다. 자체 VPC를 생성하면 네트워킹 환경을 완전히 제어할 수 있습니다. 예를 들어, IP 주소 범위, 서브넷, 라우팅 테이블 및 연결 옵션을 정의할 수 있습니다.

출처 : https://docs.aws.amazon.com/ko_kr/vpc/latest/userguide/configure-your-vpc.htm

위와 같이 여러 리전(지역)안에 vpc를 만들고 그 안에 AZ(Availability Zone) 안에 또 subnet을 나눠서 네트워크를 분리하는 것이다.

 

VPC를 이해하려면 기본적으로 IP에 대해서 알아야 하는것 같다.

 

IP(Internet Protocol)

IP는 인터넷이 통하는 네트워크에서 어떤 정보를 수신하고 송신하는 통신에 대한 규약이다.

 

aws를 이해하는데는 어떤 ip인가의 그런 의미 보다는 대충 ip를 읽을줄 알아야 할것 같다.

이유는 IP 주소로 VPC내의 리소스가 서로 통신하고, 인터넷을 통해 다른 리소스와 통신하기 때문이다.

 

특히 알아야할것 같은 부분은 CIDR(classless inter-domain  routing) 표기법인데 이걸 통해서 ip 주소 및 네트워크 마스크를 하기 때문이다.

 

대충 표시되는 법은

- 개별 IPv4 주소는 32비트로, 최대 3개의 십진수로 구성된 그룹 4개를 포함합니다. 예를 들어 10.0.1.0입니다.
- IPv4 CIDR 블록에는 마침표로 구분된 0~255의 십진수가 최대 3개인 4개 그룹이 있으며, 그 뒤에 슬래시와 0~32의 숫자가 표시됩니다. 예: 10.0.0.0/16.
- 개별 IPv6 주소는 128비트로, 4개의 16진수로 구성된 그룹 8개를 포함합니다. 예: 2001:0db8:85a3:0000:0000:8a2e:0370:7334.
- IPv6 CIDR 블록에는 콜론으로 구분된 최대 4개의 16진수로 구성된 4개 그룹이 있으며, 그 뒤에 이중 콜론, 슬래시, 1~128의 숫자가 차례로 따라옵니다. 예: 2001:db8:1234:1a00::/56.

출처 : https://docs.aws.amazon.com/ko_kr/vpc/latest/userguide/vpc-ip-addressing.html

와 같이 표시하며 subnet을 쓰기 위해서는 위의 정도는 알아야 할 것 같다.

 

그래서 VPC를 어떻게 사용해야 하나

위와 같이 구성하면 된다.

즉 vpc /16 의 가장 큰 대역으로 설정한 것이며 그 안에 subnet 항목으로 subnet/24 대역으로 쪼갠것이다.

그래서 일단 vpc는 가상클라우드이고 어떤 ip 영역대역을 가지는 것이라는것을 대략적으로 알게 되었다. 그럼 subnet은 뭘까?

 

Subnet

우리가 집에 맛있는 케이크를 사왔는데 우리집은 아빠, 엄마, 나, 동생이므로 4조각으로 잘라서 먹기로 했다. 근데 엄마가 다이어트 중이라서 조금만 먹어도 된다고 해서 우리는 4등분을 먼저 한 다음 엄마가 받은 조각의 절반을 나한테 더 주었다. 이처럼 우리가 VPC로 할당 받은 ip 대역을 나누고, 그 나누어진 조각들을 subnet이라고 하면 된다.

 

예를 들어 만약 vpc를 설정후 subnet을 4개로 가져간다 하면

VPC : 10.0.0.0/16

subnet : 10.0.1.0/24(EC2 서버A), 10.0.2.0/24(EC2 서버B), 10.0.3.0/24(DB 서버A), 10.0.4.0/24(DB 서버B)

 

와 같이 4개로 쪼개고 그 안에 EC2 2개, DB 2개 처럼 쪼갤수 있다.

이제 실제로 VPC를 만들어 보고 그 안에 서브넷 4개를 만들어 보겠다.

 

VPC 만들기

vpc 탭에서 왼쪽 위의 vpc 생성을 눌러서 vpc 만들기를 진행한다.

 

안에 들어가 보면 vpc만 설정이랑 vpc등 설정이 있다. 기능이 많이 좋아진것 같다. vpc등으로 설정하면 알아서 subnet 설정, routing table 설정, 네트워크 설정 까지 한번에 해주는 기능인것 같다.

 

우리는 일단 vpc만 으로 설정한다.

vpc를 만들기에 앞서서 IPv4 CIDR을 입력해 줘야 하는데 최대 /16 최소 /28 의 대역을 설정할수 있다. 이는 나중에 자세하게 포스팅 해보려고 한다. 참고로 vpc를 만들기만 해서는 따로 비용이 안드므로(vpc로의 통신량을 가격으로 설정) 부담없이 만들면 된다.

그래서 우리는 10.0.0.0/16 으로 설정한다.

 

만들게 되면 

위와 같이 나의 vpc가 만들어 지게 된다.

 

그 다음에는 subnet을 만들면 된다.

Subnet 만들기

 

vpc 탭에 서브넷으로 들어가서 왼쪽 위의 서브넷 생성을 누른다.

 

 

난 위와 같이 만들었다. 

IPv4 VPC CIDR 블록에는 내가 만든 vpc를 넣었고

그 아래에는 10.0.0.0/20 약 4천개의 ip를 할당 받은 subnet으로 만들었다. 

그리고 그 아래 버튼을 보면 서브넷 추가 만들기 버튼이 있는데 이를 통해서 여러개를 만들수 있다. 

 

그렇게 나는 4개의 서브넷을 만들었고 각각 public 2개 private 2개로 만들것이다

 

이건 별게인데 cli로 서브넷이랑 vpc를 만들경우 아래와 코드가 같다.

# VPC 생성
aws ec2 create-vpc --cidr-block 10.0.0.0/16

# Public 서브넷 1
aws ec2 create-subnet --vpc-id vpc-xxxxxxxx --cidr-block 10.0.0.0/20 --availability-zone us-east-1a

# Public 서브넷 2
aws ec2 create-subnet --vpc-id vpc-xxxxxxxx --cidr-block 10.0.16.0/20 --availability-zone us-east-1b

# Private 서브넷 1
aws ec2 create-subnet --vpc-id vpc-xxxxxxxx --cidr-block 10.0.32.0/20 --availability-zone us-east-1a

# Private 서브넷 2
aws ec2 create-subnet --vpc-id vpc-xxxxxxxx --cidr-block 10.0.48.0/20 --availability-zone us-east-1b

 

+ Recent posts