한량의 개발블로그
[AWS] VPC (Virtual Private Cloud) 본문
Virtual Private Cloud(VPC)
Virtual Private Cloud(VPC)는 사용자의 AWS 계정 전용 가상 가상 네트워크입니다. VPC는 AWS 클라우드에서 다른 가상 네트워크와 논리적으로 분리되어있습니다. Amazon EC2 인스턴스와 같은 AWS 리소스를 VPC에서 실행할 수 있습니다. IP 주소 범위와 VPC 범위를 설정하고 서브넷을 추가하고 보안 그룹을 연결한 다음 라우팅 테이블을 구성합니다.
쉽게 말해서 VPC는 가상으로 존재하는 데이터 센터 입니다. 즉, VPC를 이용하면 원하는대로 사설망을 구축하여 사용할 수 있습니다. (리전 단위)
VPC 사용 사례
- EC2, RDS, Lambda등의 AWS 컴퓨팅 서비스 실행
- 다양한 서브넷 구성
- 보안 설정 (IP Block, 인터넷에 노출되지 않는 EC 구성)
VPC의 구성 요소
- Availability Zone
- 서브넷
- 인터넷 게이트웨이
- NACL/보안그룹
- 라우트 테이블
- NAT Instance/ NAT Gateway
- Bastion Host
- VPC Endpoint
Availability Zone
- 데이터 센터
- 하나의 Region안에 2개 이상의 AZ로 이루어져 있습니다
- 고가용성을 위해 각 AZ는 물리적으로 분리되어 있습니다
서브넷이란?
- VPC의 하위 단위
- VPC에 할당된 IP를 더 작은 단위로 분할한 개념
- 하나의 서브넷은 하나의 가용영역안에 위치
- CIDR Block Range로 IP주소 지정
AWS 서브넷 IP 계산 시
- AWS의 사용 가능 IP 숫자는 5개를 제외하고 계산
- 예를 들어 IP가 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.2455(마지막 번호) : 네트워크 브로드캐스트 어드레스
- 즉 총 사용 가능한 IP 갯수는 2^8 - 5 == 251
라우트 테이블
- 트래픽이 어디로 가야 할지 알려주는 이정표
- VPC 생성시 기본으로 하나가 제공
- 가장 구체적인 IP로 답변해줍니다
- 예를 들어,
- Destination이 10.0.0.0/16과 0.0.0.0/0이 있고
- IP 주소가 10.0.1.231인 경우
- 라우트 테이블은 10.0.0.0/16으로 안내해줍니다
인터넷 게이트웨이
- VPC가 외부의 인터네소가 통신할 수 있도록 경로를 만들어주는 리소스
- 확장성과 고가용성이 확보되어 있습니다
- IPv4, IPv6 지원
보안 그룹 (Security Group)
- 인스턴스에 대한 인바운드 및 아웃바운드 트래픽을 제어하는 가상 방화벽 역할
- Network Access Control List(NACL)와 함께 방화벽의 역할을 하는 서비스
- 기본적으로 모든 포트는 비활성화 (선택적으로 설정 가능)
- Deny 불가능
- 인스턴스 단위 - 하나의 인스턴스에 하나의 SG설정 가능
- 설정된 인스턴스는 설정한 모든 SG의 룰을 적용 받음
- Stateful - Inbound된 트래픽이라면 Outbound도 허용시켜줍니다
NACL(Network Access Control List)
- 보안 그룹처럼 방화벽 역할을 담당
- 서브넷 단위
- 포트 및 아이피를 직접 Deny가능
- Statless : Inbound된 트래픽이어도 Outbound에서 허용해야 나갈 수 있습니다
- 낮은 숫자부터 순서대로 규칙 평가
예를들어, 112.12.35.4라는 IP를 Deny 하고 싶은 경우,
위 그림처럼 규칙번호 100에 0.0.0.0/0을 Allow하고 규칙번호 200에 112.12.35.4/32 Deny하는 경우
NACL은 규칙 번호를 낮은 순서대로 평가하기 때문에 112.12.35.4는 인스턴스에 접속이 가능합니다.
반대로, 규칙번호 100에 112.12.35.4를 Deny하는 경우에는 112.12.35.4가 인스턴스테 접속할 수 없게됩니다.
Nat Gateway / Nat Instance
- Nat Instance => 단일 EC2 인스턴스
- Nat Gateway => AWS에서 제공하는 서비스
- Amazon VPC의 프라이빗 서브넷에 있는 인스턴스가 인터넷에 쉽게 연결할 수 있는 통로
- 가용성이 높은 AWS관리형 서비스
- 서브넷 단위
- Public Subnet에 있어야 합니다 => 인터넷에 연결하기 위해
Bastion Host
- 외부에서 사설 네트워크에 접속할 수 있도록 경로를 확보해주는 서버
- 실무에서는 잘 쓰이지 않고, AWS Session Manager를 더 많이 사용한다고 합니다
VPC Peering (VPC간 연결)
- Transitive Peering 불가능
- A와 B가 연결되어 있고, B와 C가 연결되어 있더라도 A와 C가 연결되어 있는 것은 아닙니다
VPC FlowLog
- VPC로그를 Cloud Watch에 저장 가능합니다
'AWS' 카테고리의 다른 글
AWS S3 자동배포 (0) | 2021.11.11 |
---|---|
S3 정적 웹사이트 호스팅하기 (0) | 2021.11.03 |
Comments