4장 Amazon VPC

GonnabeAlright·2022년 3월 16일
0
post-thumbnail
AWS Certified Solutions Architect STUDY GUIDE 도서를 읽고 정리한 내용입니다.

Amazon VPC

Amazon VPC 서비스는 EC2의 네트워크 계층이며, EC2 인스턴스를 비롯한 여러 AWS 서비스에 네트워크 리소스를 담을 수 있는 가상 네트워크다. 모든 VPC는 기본적으로 다른 모든 네트워크와 격리돼 있지만, 필요할 때는 인터넷 및 다른 VPC 등 다른 네트워크와 연결할 수 있다.
VPC는 한 AWS 리전 안에서만 존재할 수 있으며, 한 리전에서 만든 VPC는 다른 리전에서는 보이지 않는다. 하나의 계정에 여러 VPC를 둘 수 있고 단일 리전에 여러 VPC를 만들 수 있다.

VPC는 전통적인 네트워크와 같이 하나 이상의 연속적 IP 주소 범위인 Classless Inter Domain Routing(이하 CIDR) 블록으로 표시한다. 다른 퍼블릭 인터넷 주소와 충돌을 피하기 위해 RFC 1918 범위를 사용할 것을 권장하고 있다.

  • 10.0.0.0 - 10.255.255.255(10.0.0.0/8)
  • 172.16.0.0 - 172.31.255.255(172.16.0.0/12)
  • 192.168.0.0 - 192.168.255.255(192.168.0.0/16)

서브넷은 VPC에 있는 네트워크 로직 컨테이너(logical container)로서 EC2 인스턴스와 같은 VPC 리소스를 연결한다. 서브넷은 네트워크 상에 존재하는 여러 인스턴스를 서로 격리하는 역할을 하며, 인스턴스 간의 트래픽 유입 및 유출을 제어하고 기능별로 조직화한다.

서브넷은 하나의 가용 영역(AZ, Availability Zone)내에서만 존재할 수 있다. 가용 영역은 리전에 비해 상대적으로 작은 지리적 위치이며, 개별 데이터 센터와 비슷한 개념이다. AWS 리전의 가용 영역은 서로 연결돼 있으며, 하나의 가용 영역에 장애가 발생하더라도 다른 영역에 그 형향이 미치지 않도록 설계됐다.

Elastic Network Interface(이하 ENI)는 인스턴스가 AWS 서비스, 다른 인스턴스, 온프레미스 서버, 인터넷 등 다른 네트워크 리소스와 통신할 수 있도록 하며, Secure Shell(SSH) 또는 Remote Desktop Protocol(RDP) 등을 이용해 인스턴스에서 실행되는 OS와도 통신할 수 있다. 각 인스턴스에서 기본 프라이빗 IP 주소는 인스턴스의 기본 ENI와 연결된다.

인터넷 게이트웨이는 퍼블릭 IP 주소를 지닌 인스턴스를 인터넷과 연결하며, 인터넷에서 들어오는 요청을 수신할 수 있도록 한다. 하나의 VPC에는 단 하나의 인터넷 게이트웨이만 연결할 수 있지만 여러 개의 인터넷 게이트웨이를 생성한 뒤 여러 개의 VPC를 인터넷으로 연결해서 사용할 수 있다.

VPC 내에서 트래픽의 유입, 유출, 이동을 제어하려면 라우트 테이블(route table)에 저장된 라우트를 이용해야 한다. VPC 아키텍처는 IP 라우팅을 소프트웨어 함수로 구현한 내재된 라우터(implied router)의 특징을 지닌다. 즉 VPC에는 인터페이스 IP 주소를 설정할 가상의 라우터도, BGP와 같은 동적 라우팅 프로토콜도 없다는 의미이며, 사용자는 내재된 라우터가 사용할 라우트 테이블만 관리하면 된다.

BGP

BGP(Border Gateway Protocol)는 서로 다른 조직의 네트워크를 연결할 때 사용하는 라우팅 프로토콜이다. 기업체 또는 학교나 정부 기관등이 2개 이상의 ISP와 연결할 때 BGP를 사용한다. 그리고 ISP들끼리 네트워크를 연결할 때도 BGP를 사용한다. 하나의 링크만을 사용해서 연결하는 것을 싱글 호밍(Single homing)이라고 하며, 두 개 이상의 링크를 연결해서 사용하는 것을 멀티 호밍(Multi homing)이라고 한다. 대부분의 BGP는 멀티 호밍을 사용한다. 또한 BGP를 설정할 때는 하나의 BGP 번호인 AS(Autonomous System) 번호를 부여한다. 동일한 네트워크 내부에서 사용하는 BGP를 내부 BGP, iBGP(internal BGP)라고 하며 서로 다른 네트워크에서 사용하는 BGP를 외부 BGP, eBGP(external BGP)라고 한다.

BGP는 신뢰성 있는 통신인 TCP 포트 179번을 사용하여 유니캐스트 방식으로 라우팅 정보를 전송한다. 현재 사용되는 BGP는 버전 4로 BGP4로 부른다. 또한 IGP랑은 다르게 BGP는 조직간에 계약된 Policy에 따라 최적 경로를 결정한다. IGP는 다른 조직에 관여받지 않고 라우팅 정책을 설정할 수 있으나 BGP는 수많은 AS로 구성되어 있고 그 중 하나인 해당 조직의 AS에서 라우팅 정책을 설정하여 원하는 라우팅이 이루어지게 해야한다.

BGP는 장애가 발생하면 하나의 국가, 크게는 전 세계의 네트워크에 영향을 미칠 수 있다. 일반적인 조직에서 IGP의 네트워크 수는 많아봐야 수천개를 넘지 않지만 BGP는 보통 수만 개에서 수십만 개 이상의 네트워크가 라우팅 테이블에 인스톨 된다.

인터넷을 통해 인스턴스에 접근하도록 하려면, 기본 라우트를 생성한 뒤 인터넷 게이트웨이로 향하도록 해야 한다. 퍼블릭 서브넷이란 인터넷 게이트웨이로 향하는 라우트를 포함한 서브넷이고, 프라이빗 서브넷이란 인터넷 게이트웨이를 대상으로 하는 라우트가 하나도 없는 서브넷을 의미한다.

탄력적 IP(Elastic IP Address)는 사용자 요청에 따라 AWS가 사용자의 계정에 할당하는 퍼블릭 IP 주소이다. 계정에 EIP가 할당되면, 사용자가 직접 해제하지 않는 한 해당 주소를 독점적으로 사용할 수 있다. AWS 외부에서 보면 EIP와 AWS가 자동으로 할당한 퍼블릭 IP 간에는 차이가 없다.

네트워크 주소 변환

ENI와 퍼블릭 IP 주소를 연결하더라도 새로운 주소로 ENI의 환경을 재설정하지 않는다. 대신 인터넷 게이트웨이가 퍼블릭 IP 주소를 ENI의 프라이빗 IP 주소로 맵핑하게 되며, 이러한 프로세스를 네트워크 주소 변환, 즉 NAT(Network Address Translation)이라 부른다.

  • 인스턴스의 프라이빗 IP 주소: 172.31.7.10
  • EIP: 35.168.241.48
  • 인터넷 호스트: 198.51.100.11

퍼블릭 IP를 지닌 인스턴스를 인터넷 상의 호스트에 연결할 경우

인터넷 게이트웨이에 전달되는 패킷

  • Source IP: 172.31.7.10
  • Destination IP: 35.168.241.48

패킷 변환

  • Source IP: 35.168.241.48
  • Destination IP: 198.51.100.11

인터넷 호스트가 인스턴스의 EIP에 패킷을 전송하는 경우

인터넷 게이트웨이에 전달되는 패킷

  • Source IP: 198.51.100.11
  • Destination IP: 35.168.241.48

패킷 변환

  • Source IP: 198.51.100.11
  • Destination IP: 172.31.7.10

네트워크 주소 변환은 인터넷 게이트웨이에서 이뤄지지만, NAT 게이트웨이NAT 인스턴스에서도 네트워크 주소 변환 작업을 수행한다.

NAT 인스턴스는 Linux 기반 AMI로 생성된 일반적인 EC2 인스턴스의 일종이며 기능적인 측면에서 NAT 게이트웨이와 공통점이 있지만 NAT 인스턴스는 대역폭 요구에 따라 자동으로 확장할 수 없고 NAT 게이트웨이는 자동으로 확장할 수 있다.

VPC 피어링을 구성하면 프라이빗 AWS 네트워크를 통해 하나의 VPC에 포함된 인스턴스가 다른 VPC에 포함된 인스턴스와 소통할 수 있다. 또한 VPC 피어링 환경에서 인터넷 게이트웨이나 NAT 디바이스는 공유할 수 없지만, NLB(Network Load Balancer)는 공유할 수 있다.

기업 데이터 센터와 관련된 리소스의 경우, 프라이빗 속성을 지니고 인터넷과도 연결성이 없도록 설계하는데 AWS의 온프레미스와 프라이빗 연결 서비스는 가상 프라이빗 네트워크(VPN), AWS Transit Gateway, AWS Direct Connect가 있다.

AWS Direct Connect 서비스는 여러분의 AWS 리소스에 대한 프라이빗, 저지연성 연결을 제공한다. 주요 장점 중 하나는 AWS 리소스 접속 시, 인터넷을 우회해서 접속할 수 있는 방법을 제공해 문제 발생 가능성은 낮추고 광대역 인터넷을 사용할 수 있도록 해주는 것이다.

Dircet Connect에는 전용 연결 타입, 호스트 연결 타입두 가지 타입이 제공된다.

전용(Dedicated) 연결 타입은 물리적인 단일 연결로서 AWS Direct Connect 지점에서 중단된다. 전용 연결을 이용하려면 Direct Connect 지점에 자체 장비를 추가해야 한다.

호스트 연결 타입은 1Gbps 미만의 연결 속도로도 충분하거나 Direct Connect 지점에 자체 장비를 추가할 여력이 없다면, 50 Mbps ~ 10 Gbps 연결을 지원하는 호스트(Hosted) 연결 타입을 이용할 수 있따.

0개의 댓글