티스토리 뷰
VPC 및 Susbnet
AWS VPC를 시작하려면 Subnet을 만들어야 한다.
VPC 및 Subnet 기본 사항
VPC는 사용자의 AWS 계전 전용 가상 네트워크를 말한다. VPC는 AWS 클라우드에서 다른 가상 네트워크와 논리적으로 분리되어 있다. Amazon EC2 인스턴스와 같은 AWS 리소스를 VPC 내에서 실행시킬 수 있다.
VPC를 생성할 때 VPC의 IP 주소 범위를 CIDR (/24 와같은) 형태로 지정해야 한다.
VPC는 리전의 모든 가용영역에 적용된다. VPC를 만든 후 각 가용영역에 하나 이상의 Subnet을 추가할 수 있다. Subnet을 만들 때 해당 Subnet에 대한 CIDR 블록을 지정해야 한다. 각 Subnet은 단일 가용영역 내에서만 존재해야 하며, 여러 영역으로 확장할 수 없다.
IPv6 CIDR 블록을 VPC와 Subnet 각각에 할당할 수도 있기는 하다.
Subnet에서 발생한 트래픽이 인터넷 게이트웨이로 라우팅되는 경우 해당 Subnet을 Public Subnet이라고 한다 위 그림에서는 Subnet 1이 Public Subnet이 되는 것이다. Public Subnet의 인스턴스들이 IP를 사용해 인터넷과 통신할 수 있게 하려면 인스턴스에 Elastic IP 혹은 Public IP 가 있어야 한다.
인터넷 게이트웨이로 라우팅되지 않는 Subnet 2는 Private Subnet이라고 한다.
Subnet이 인터넷 게이트웨이에 이르는 경로르 갖고있지는 않지만 그 트래픽이 Site-to-Stie VPN 연결을 위한 가상 Private 게이트웨이로 라우팅되는 경우, 이 Subnet을 VPN 전용 Subnet이라고 한다. 이 그림에선느 Subnet 3이 VPN 전용 Subnet이 된다.
참고로 계정에서 생성할 수 있는 VPC 및 Subnet 수는 할당량이 정해져 있다.
VPC 및 Subnet 크기 조정
VPC 는 IPv4 와 IPv6 를 지원하고 각각에 대해 다양한 CIDR 블록 크기를 할당할 수 있다. 기본적으로 생성하는 VPC와 Subnet에는 IPv4 CIDR 블록이 부여되어 있다.
IPv4에서 VPC 및 Subnet 크기 조정
VPC를 만들 때 VPC의 IPv4 CIDR 블록을 지정해야 한다. 허용된 블록 크기는 /16~/28이다. VPC 생성을 마쳤다면 보조 CIDR 블록을 VPC에 연결할 수 있다.
VPC를 생성할 경우 Private IPv4 주소의 범위를 사용하는 것이 좋다.
(Private IPv4 주소의 범위를 사용하지 않는 VPC가 존재하는가..? 이런건 너무 억지긴하네ㅋㅋ)
Subnet의 CIDR 블록은 VPC와 동일하게 사용된다. 단, VPC에 두 개 이상의 Subnet을 만들 경우, Subnet의 범위가 겹치지 않아야 한다. (당연한거지...) 예를 들어 CIDR 블록이 10.0.0.0/24인 VPC를 만들 경우 256개의 IP 주소를 지원한다. 이 블록을 각각 128개의 IP 주소를 지원하는 2개의 Subnet으로 나눌 수 있다. (/25)
하나의 Subnet에서 예약되어 있는 5개의 IP 주소를 살펴보자.
- 10.0.0.0: 네트워크 주소
- 10.0.0.1: AWS에서 VPC 라우터용으로 예약
- 10.0.0.2: AWS에서 예약 (DNS 서버의 IP 주소)
- 10.0.0.3: AWS에서 나중에 사용하려고 예약
- 10.0.0.255: 네트워크 브로드캐스트 주소
VPC에 IPv4 CIDR 블록 추가
보조 IPv4 CIDR 블록을 VPC와 연결할 수 있다. CIDR 블록을 VPC에 연결하면 VPC 라우팅 테이블에 경로가 자동으로 추가되면서 VPC 내에서 라우팅 기능이 가능해진다.
VPC에 CIDR 블록을 추가할 경우 다음 규칙이 적용된다.
- 허용된 블록의 크기는 /28 ~ /16 Subnet Mask 이다.
- CIDR 블록은 VPC에 연결된 기존 CIDR 블록들과 겹치면 안된다. (당연하죠?)
- 기존 CIDR 블록의 크기를 늘리거나 줄일 수 없다. (진짜...?)
- VPC에 연결할 수 있는 CIDR 블록의 수와 라우팅 테이블에 추가할 수 있는 경로의 수는 할당량으로써 제한이 되어있다.
- CIDR 블록은 모든 VPC 라우팅 테이블에서 경로의 대상 CIDR 범위보다 작아야 한다.
예를 들어, 기본 CIDR 블록이 10.2.0.0/16인 VPC에서 가상 프라이빗 게이트웨이에 대해 대상이 라우팅 테이블에 10.0.0.0/24로 라우팅 되어 있다. 10.0.0.0/16 범위의 보조 CIDR 블록을 연결하려고 한다면 할 수 없다. 10.0.0.0/25와 같이 세분화는 할 수 있지만 더 큰 범위는 안된다는 것이다. - ....
Subnet 라우팅
각 Subnet은 Subnet 외부로 나가는 아웃바운드 트래픽에 대해서 허용된 경로를 지정하는 라우팅 테이블이 연결되어 있어야 한다. 생성된 각 Subnet은 자동으로 VPC의 기본 라우팅 테이블에 연결되고, 이 내용을 변경할 수 있다.
NAT 게이트웨이 혹은 인스턴스를 활용해 VPC의 인스턴스가 IPv4 를 통해 인터넷으로 아웃바운드 연결을 시작하고 인터넷으로부터의 원치 않은 인바운드 연결은 차단하도록 할 수 있다. 할당 가능한 Elastic IP 주소의 수가 제한되어 있으므로 고정 Public IP 주소가 필요한 인스턴스가 많을 경우 NAT 디바이스를 사용하는 것이 좋다.
Subnet 보안
각 Subnet에는 네트워크 ACL이 연결되어 있어야 한다. 생성된 각 Subnet에는 자동으로 VPC의 기본 네트워크 ACL이 연결되고 이후에 이 내용은 변경할 수 있다.
VPC 또는 Subnet에 흐름 로그를 만들어 VPC 또는 Subnet의 네트워크 인터페이스를 들어오고 나가는 모든 트래픽을 캡쳐할 수 있다. 또한 개별 네트워크 인터페이스에 흐름 로그를 만들 수도 있다.
(VPC 또는 Subnet의 네트워크 인터페이스에 오가는 트래픽을 loudWatch Logs/Amazon S3 를 통해 캡쳐해 관리하고 있는가?.. 이런 항목도 가능할듯 하다.)
docs.aws.amazon.com/ko_kr/vpc/latest/userguide/flow-logs.html
VPC 및 Subnet 관련 작업
VPC 만들기
VPC를 생성할 때 IPv4 CIDR 블록을 /28~/16 범위 내에서 지정하게 되는데, RFC 1918 규격에 따라 Private IP 주소 범위에 속하는 CIDR 블록을 지정하는 것이 좋다.
VPC에서 서브넷 만들기
VPC에 새로운 Subnet을 추가하려면 VPC 범위에서 Subnet의 IPv4 CIDR 블록을 설정해야 한다. Subnet을 상주시키려는 가용 영역또한 지정할 수 있다. (당연히 하나의 가용영역에 여러 개의 Subnet을 둘 수 있다)
만드는 법은 그냥 Create Subnet 누르고 따라가면된다. (VPC, 가용영여그 CIDR 블록 등 설정)
Subnet을 만든 후에 다음 작업을 수행할 수 있다.
- 라우팅을 구성할 수 있다. Subnet을 Public Subnet이 되게 하려면 먼저 VPC에 인터넷 게이트웨이를 연결하고, 사용자 지정 라우팅 테이블을 만들어 경로를 추가해줘야 한다.
- Subnet 설정을 수정해 해당 Subnet에서 시작하는 모든 인스턴스가 Public IPv4 나 IPv6 주소를 받도록 지정할 수 있다.
- 필요에 따라 보안그룹을 생성 또는 수정할 수 있다. (기본은 준다)
- 필요에 따라 네트워크 ACL을 생성 또는 수정할 수 있다.
- 다른 계정과 Subnet을 공유할 수 있다.
VPC에 보조 IPv4 CIDR 블록 연결
그냥 따라서 하면된다...?
Subnet에서 인스턴스 시작
Console을 통해 Amazon EC2를 열고 인스턴스 시작을 누른다. 지침대로 진행을한 후 Configure Instance Details 페이지의 Network 목록에서 필요한 VPC를 선택했는지 확인한다.
다음 페이지에서 인스턴스의 스토리지를 구성하고 태그를 추가할 수 있다. Configure Security Group 페이지를 통해 기존 보안그룹 중 하나를 선택하거나 새로운 보안그룹을 생성하면 된다.
VPC 삭제
VPC 콘솔을 사용해 VPC를 삭제하기 위해서는 다음 구성요소를 종료하거나 삭제해야 한다.
- VPC의 모든 인스턴스
- VPC 피어링 연결
- 인터페이스 엔드포인트
- NAT 게이트웨이
'Cloud > Concept' 카테고리의 다른 글
[AWS] AWS VPC 사용설명서 정리(5) - Security (0) | 2020.12.25 |
---|---|
[AWS] AWS VPC 사용설명서 정리(4) - 기본 VPC 및 서브넷 (0) | 2020.12.24 |
[AWS] AWS VPC 사용설명서 정리(2) (0) | 2020.12.05 |
[AWS] AWS VPC 사용설명서 정리(1) - What is VPC? (0) | 2020.12.05 |
[AWS] AWS IAM 사용설명서 정리(1) - Security (0) | 2020.10.30 |