민프
[AWS] VPC와 Subnet 본문
1. AWS의 구조
AWS의 예시 구조를 보면 아래와 같은 구성이 되어있을 것 입니다.
우리가 Github, Naver, Netflex를 이용할 때는 다양한 노드를 통해서 Public Internet을 이용해서 접근을 하게 됩니다.
AWS 클라우드도 마찬가지 입니다.
이렇게 Public Internet을 이용해서 사용할 수 있는데 예외적인게 있습니다.
그게바로 VPC입니다.
VPC는 원칙적으로 Public Internet에서 접근이 불가능합니다.
그래서 다른 AWS서비스들은 Public을 Endpoint로 접근을 하고 있습니다.
예를 들어서)
EC2로 S3로 접근을 하려고 할때
AWS내부에 있다고 하더라도 원칙적으로는 바로 접근이 불가능합니다.
그럼 어떻게 되느냐?
EC2 -> Internet Gateway -> Node(Public Internet) -> S3로 접근이 되는겁니다.
따라서 VPC는 외부와 격리된 네트워크를 만드는게 목적입니다.
2. VPC란?
Amazon Virtual Private Cloud(Amazon VPC)를 사용하면 정의한 논리적으로 격리된 가상 네트워크에서 AWS 리소스를 시작할 수 있습니다. 이 가상 네트워크는 AWS의 확장 가능한 인프라를 사용한다는 이점과 함께 고객의 자체 데이터 센터에서 운영하는 기존 네트워크와 매우 유사합니다.
-AWS VPC
- 가상의 데이터 센터
- 외부에 격리된 네트워크 컨테이너 구성 가능
- 원하는 대로 사설망을 구축 가능
- 부여된 IP 대역을 분할하여 사용 가능
- 원하는 대로 사설망을 구축 가능
- 리전 단위
- EC2, RDS, Lambda등 AWS 컴퓨팅 서비스 실행
- 보안설정 (IP Block, 인터넷에 노출되지 않은 EC2)
2-1. VPC의 구성요소
서브넷, 인터넷 게이트웨이, NACL/보안그룹, 라우트 테이블, NAT Instance/NAT Gateway, Bastion Host, VPC EndPoint
- 서브넷
- VPC의 하위 단위로 VPC에 할당된 IP를 더 작은 단위로 분할한 개념
- 하나의 서브넷은 하나의 가용영역(AZ)안에 위치
- CIDR BLOCK RANGE로 IP주소 설정
- AWS 서브넷의 갯수
- AWS의 사용 가능 IP숫자는 5개를 제외하고 계산
- 예 : 10.0.0.0/24라면
- 10.0.0.0: 네트워크 어드레스
- 10.0.0.1: VPC Router
- 10.0.0.2: DNS Server
- 10.0.0.3: 미래에 사용을 위해 남겨 둠
- 10.0.0.255(마지막 번호) : 네트워크 브로드캐스트 어드레스(단 브로드캐스트는 지원하지 않음)
- 즉 총 사용 가능한 IP갯수는 2^8-5 = 251개
- 라우트 테이블(Route Table)
- 트래픽이 어디로 가야 할지 알려주는 이정표
- VPC 생성 시 기본으로 하나 생성
- 아래 사진에서와 같은 IP가 들어왔으면(VPC Peering) 가장 명확하게 구분할 수 있는 곳(네트워크 비트가 큰 것)으로 지정되게 된다.
또 하나 아래 사진을 예시를 들어보면
이렇게 Route Table로 연결이 되어있기 때문에 Subnet과 Subnet끼리 통신을 할 수 있는 겁니다.
서브넷의 종류는 아래와 같이 퍼블릭, 프라이빗 서브넷이 있습니다.
퍼블릭은 우리가 아는 웹서버, API서버 등 유저에게 노출되어야 하는 인프라에 사용되고,
프라이빗은 DB, 로직 서버등 외부에서 노출 될 필요가 없는 인프라에 사용됩니다.
- 인터넷 게이트웨이
- VPC가 외부의 인터넷과 통신할 수 있도록 경로를 만들어주는 리소스
- 기본적으로 확장성과 고가용성이 확보되어 있음
- IPv4, IPv6 지원
- IPv4의 경우 NAT 역할
- Route Table에서 경로 설정 후에 접근 가능
- 무료
위 사진과 같이 Public Subnet은 Internet gateway로 가는 경로가 있는 것을 의미하고,
Private subnet은 Internet gateway로 가는 경로가 없는 것을 의미합니다.
예를 들어서 아래 사진을 보면서 설명해보겠습니다.
Subnet A(Public Subnet)에서 외부로 트래픽을 8.8.8.8로 보내려고 합니다.
오른쪽 Route Table을 보면 10.0.0.0/16(local)이 아닌 0.0.0.0/0으로 경로가 있는 것을 확인하실 수 있습니다.
그럼 해당 타겟 Internet gateway(igw-3830de61)으로 보내지게 됩니다.
참고링크
https://docs.aws.amazon.com/ko_kr/vpc/latest/userguide/what-is-amazon-vpc.html
Amazon VPC란 무엇인가? - Amazon Virtual Private Cloud
이 페이지에 작업이 필요하다는 점을 알려 주셔서 감사합니다. 실망시켜 드려 죄송합니다. 잠깐 시간을 내어 설명서를 향상시킬 수 있는 방법에 대해 말씀해 주십시오.
docs.aws.amazon.com
https://www.youtube.com/watch?v=WY2xoIClOFA