VPC

Vorhandenheit ·2022년 2월 25일
0

AWS

목록 보기
6/10

VPC (Virtual Private Cloud)

아마존 웹서비스는 서버 호스팅 서비스가 아닌 클라우드 서비스로 분류됩니다. 이 클라우드 서비스의 특징 중 하나가 바로 네트워크 환경을 직접 설계할 수 있다는 겁니다.
그래서 VPC를 사용함으로 인스턴스가 속하는 네트워크를 구분하여 각 네트워크에 맞는 설정을 부여할 수 있습니다.

만약 이를 사용하지않았다면, 인스턴스별로 일일히 네트워크 설정을 적용해야하고 인스턴스를 추가할 때마다 모든 인스턴스를 수정해야할 것입니다.

1. VPC 구축

(1) VPC

VPC는 하나의 Region내에서만 생성이 가능합니다. 하나의 VPC에는 여러개의 Amazon Availibility Zone에 걸쳐서 생성될 수 있습니다. VPC를 구성할 때는 IPv4 주소 범위를 CIDR(Classless Inter-Domain Routing)블록 형태로 지정합니다.

VPC 구축하기 위해서는 VPC IP범위를 RFC1918이라는 사설아이피대역에 맞추어 구축합니다. vpc에서 한번 설정된 IP대역은 수정할 수없고 각각의 VPC는 독립적이기 때문에 서로 통신할 수 없습니다. 통신하고 싶다면 VPC 피어링 서비스를 통해 VPC간에 트래픽을 라우팅할 수 있도록 설정할 수 있습니다.

VPC 사용하는 사설 IP 대역
1. 10.0.0.0 ~ 10.255.255.255(10/8 prefix)
2. 172.16.0.0 ~ 172.31.255.255(182.16/12 prefix)
3. 192.168.0.0 ~ 192.168.255.255(192.168/16 prefix)

IP (Internet Protocal)

IP는 '공인'과 '사설'로 나누어집니다. 공인 IP는 인터넷망에서 한 단말에서 한 단말로 접속할 수 있는 주소로, 어느 한 곳에서 사용하고 있다면 다른 곳에서 사용하지못합니다. 총 42억개가 있지만 이것만으로 부족해졌기 때문에, IP주소의 낭비를 차단, 내부 자원보호등의 이유로 사설IP를 사용하게됩니다.
사설 IP는 공인 IP와 다르게 중복하여 사용할 수 있고, 외부인터넷과 관련되지않고 내부사설 네트워크에서만 사용합니다.

(2) Subnet

서브넷은 VPC의 IP주소를 나누어 리소스가 배치되는 물리적인 주소 범위를 뜻합니다. VPC를 쪼개는 것이기 때문에 VPC보다 대역폭이 낮습니다. 이 subnet은 하나의 AZ에 할당됩니다.

서브넷은 다시 'Public Subnet'과 'Public Subnet'으로 나뉠 수 있습니다. 나누는 이유는 보안을 강화하기 위함입니다.

  • Public Subnet : 인터넷과 연결이 되어있는 서브넷으로 인스턴스는 인터넷에 연결되어 아웃바운드, 인바운드 트래픽을 주고받을 수 있습니다.
  • Private Subnet : 외부에 노출되어있지않기 때문에 접근할 수 없습니다.

(3) Routing table

라우터는 VPC안에서 발생한 네트워크 요청을 처리하기 위해 어디로 트래픽을 전송해야하는지 얄려주는 역할을 합니다. 서브넷이 각기 다른 네트워크 대역을 갖고 있기 때문에 다른 서브넷으로 가기 위해서는 'Routing'이 필요합니다.

모든 라우팅 테이블에는 VPC 내부 통신을 위한 '로컬 라우팅'이 포함되어있습니다. 이 라우팅은 기본적으로 모든 라우팅 테이블에 추가됩니다. VPC에서 하나 이상의 IPv4 CIDR블록이 연결되어있는 경우, 라우팅 테이블에 각 IPv4 CIDR 블록의 로컬 경로가 필요합니다. -AWS VPC 설명서

VPC에는 암시적 라우터가 있으며 라우팅 테이블을 사용하여 네트워크 트래픽이 전달되는 위치를 제어합니다. VPC의 각 서브넷을 라우팅 테이블에 연결해야합니다. 테이블에서 서브넷에 대한 라우팅을 제어합니다. -AWS VPC 설명서

VPC 내 subnet에 할당된 Resource라면 어느 Subnet이든 다른 subnet의 Resource와 자유롭게 통신할 수 있습니다.

(4) Internet Gateway

인터넷 게이트웨이는 VPC 리소스와 인터넷 간 통신을 활성화하기 위해 VPC연결하는 게이트웨이입니다. Public Subnet만 외부와 통신하므로 public subnet의 라우팅 테이블에서만 인터넷 게이트웨이로 향하는 규칙을 포함합니다.

VPC에서 EC2가 외부인터넷과 통신하고자 하는 경우 조건
1.Internet 통신하고자 하는 Resource가 공인 IP를 보유할 것
2.Resource가 소속된 Subnet의 Routing Table에 '0.0.0.0/0' 목적지로 갖는 Routing 'Interet Gateway'이 있을 것
3.Network ACL과 Security Group 규칙에서 허용할 것

(5) NAT Gateway

private subnet이 인터넷과 통신할 수 있도록, public subnet이 속한 인스턴스에 전송해서 인
터넷과 통신할 수 있게 도와주는게 NAT 게이트웨이입니다.

NAT(Network Addresss Transition)
네트워크 주소 변환은 컴포터 네트워킹에 쓰이는 용어로, IP패킷의 TCP/UDP 포트 숫자와 소스 및 목적지의 IP주소 등을 재기록하면서 라우터를 통해 네트워크 트래픽을 주고 받는 기술을 말합니다. NAT를 이용하는 대게 사설 네트워크에 속한 여러 개의 호스트가 하나의 공인 IP 주소를 사용하여 인터넷에 접속하기 위함입니다. -위키백과

(6) VPC Endpoint

VPC 엔드포인트는 인테넛 게이트웨이나 NAT 게이트웨이와 같은 다른 게이트웨이 없이 AWS 서비스와 연결하여 통신할 수 있는 private connection을 제공하는 서비스입니다. Private link를 통해 AWS와 연결함으로 데이터를 인터넷에 노출하지않고 바로 접근할 수 있습니다.

(7) 네트워크 ACL(Network Access Control List) / 보안그룹(Security Group)

네트워크 ACL과 보안그룹은 인바운드와 아웃바운드 트래픽에 대해 보안 정책을 설정할 수 있는 방화벽과 같은 기능을 합니다.

  • 네트워크 ACL : Subnet을 오가는 트래픽을 제어하는 역할
  • Security Group : Subnet 내 인스턴스의 트래픽을 제어할 수 있습니다.
  • VPC Flow Logs : VPC 내에 있는 Resource들은 Elastic Network interface를 가집니다. ENI에 VPC Flow Logs를 설정하면 ENI를 지나다니는 IP트래픽을 수집할 수 있씁니다.

출처

https://www.44bits.io/ko/post/understanding_aws_vpc
https://jbhs7014.tistory.com/164
https://medium.com/harrythegreat/aws-%EA%B0%80%EC%9E%A5%EC%89%BD%EA%B2%8C-vpc-%EA%B0%9C%EB%85%90%EC%9E%A1%EA%B8%B0-71eef95a7098
https://icarus8050.tistory.com/55
https://www.44bits.io/ko/post/understanding_aws_vpc

profile
읽고 기록하고 고민하고 사용하고 개발하자!

0개의 댓글