Amazon VPC : AWS에 생성하는 가상 네트워크

yedi·2024년 7월 22일
post-thumbnail

Amazon VPC : AWS에 생성하는 가상 네트워크

| 정의

  • Amazon VPC (Amazon Virtual Private Cloud) 란 AWS가 제공하는 AWS 계정 전용 가상 네트워크
  • EC2나 RDS의 경우 VPC를 선택하지 않으면 서버를 생성할 수 없기 때문에 (웹 서버나 데이터베이스 서버와 같은 서버들은 네트워크에 연결되어 있어야 함) 리소스를 사용하기 위해서는 반드시 필요한 서비스


| 구성

VPC 내에 서버를 설치하면 해당 네트워크에 소속되지만, 별도로 설정하지 않는다면 VPC 자체는 격리된 네트워크가 된다.
외부와 통신하려면 VPC를 인터넷 혹은 회사 내 LAN과 연결해야 한다.
일반적인 네트워크와 다르게 AWS에 VPC를 생성하고 그 안에 서버(인스턴스)를 설치한다.



| 기능

VPC는 네트워크와 서브넷 범위, 라우팅 테이블, 네트워크 게이트웨이와 같은 가상 네트워크 환경을 설정할 수 있다.
가상환경이기 때문에 물리적인 네트워크와 다른 점도 있지만, 기본적인 개념은 같다.
또한, IPv4와 IPv6 둘 다 사용 가능하다.

가용 영역
서버와 네트워크, 프로그램 등의 정보 시스템이 정상적으로 사용 가능하도록 완전히 격리된 한 개 이상의 데이터센터 모음의 구성 단위

인터넷에서 데이터 전송 과정
데이터 전송 -> 라우터 -> 목적지 (IP 주소)

방화벽
네트워크 통신을 제어하는 방식

항목 내용
서브넷 마스크 - 커다란 네트워크를 작게 분할한 네트워크
- 서브넷 마스크의 표기법 중 하나가 CIDR
- 한 VPC 내에서 서브넷별로 역할을 다르게 설정이 가능
CIDR 블록 - CIDR(Classless Inter-Domain Routing)은 네트워크와 서브넷의 범위를 나누는 데 사용되는 표기법
- CIDR = 프리픽스 표기법 (/24, /20 ..)
- VPC를 생성할 때 네트워크 범위를 CIDR로 정하고 이를 더 작은 서브넷으로 나누어 사용
가용 영역 - 서브넷이 구축된 물리적 장소
인터넷 게이트웨이 - 인터넷에 접속하기 위한 출입구로, VPC를 인터넷에 연결하지 않을 경우에는 불필요
라우팅 - 라우터에서 목적지까지 데이터를 송신하는 방법 (어떤 데이터를 어디에 보낼지 조정)
- 네트워크에서 경로를 선택하는 프로세스
- 데이터를 라우터로 보내고 라우터가 목적지로 보내는 방식
(PC를 일대일로 연결하는데에 한계로 사용)
라우팅 테이블 - 라우팅에 대한 설정이 기록된 테이블
보안 그룹 - 인스턴스에 설정하는 가상 방화벽
- 인스턴스 단위로 설정하며 유입되는 데이터는 '거부'가 기본 설정
네트워크 ACL - ACL(access control list)이란 서브넷에 설정하는 가상 방화벽
- 서브넷 단위로 설정
- 네트워크 ACL (서브넷 단위) > 보안 그룹 (인스턴스 단위)
DHCP - IP 주소를 자동으로 할당
- VPC에는 DHCP 서버가 동작하고 있어 인스턴스가 추가되면 해당 서브넷 범위의 IP 주소 중에 하나가 할당
NAT - NAT(Network Address Translation)는 다대다이며 공인 IP주소와 사설IP 주소를 변환한다.

서브넷 마스크와 CIDR 차이

  • 서브넷 마스크은 IP 주소와 유사한 방식으로 접두어의 길이를 표시하는 방법
    (ex 255.255.255.0)
  • CIDR은 가변길이 서브넷 마스크를 사용 (ex /24, /20)

라우터와 게이트웨이 차이점
라우터는 장비, 게이트웨이는 장비가 아닌 개념적 의미(통로, 출입구)

보안 그룹과 네트워크 ACL 차이점

  • 보안그룹과 네트워크 서비스는 설정 수준과 허가 범위가 다르다.
  • 네트워크 ACL은 서브넷 단위로 설정하기 때문에 개별 인스턴스에 설정할 필요가 없음


| VPC 네트워크의 특징과 라우팅 테이블

라우터 (Router)

  • 서로 다른 네트워크 연결
  • 네트워크와 네트워크 간의 경로(Route)를 설정하고 가장 빠른 길로 트래픽을 이끌어주는 네트워크 장비

VPC 네트워크는 클라우드이기 때문에 일반 네트워크와 조금 다르다. 그중 가장 큰 차이점은 라우터이다.
VPC는 물리적인 라우터가 아닌 소프트웨어가 라우터 역할을 하며 라우팅을 수행한다.
라우팅은 설정된 라우팅 테이블에 따라 동작하는데, 라우팅 테이블 하나에 서브넷 여러 개를 설정할 수 있다. 물리적인 서버의 경우 LAN 케이블과 와이파이(Wi-Fi)로 라우터와 연결하겠지만, 클라우드는 라우팅 테이블로 연결한다.

일반적인 서브넷 사이의 통신은 라우터로 이루어지지만, VPC의 경우는 라우터 없이 직접 통신할 수 있다. 또한, VPC 하나에 인터넷 게이트웨이 한 개만 설정할 수 있다. 라우터와 인터넷 게이트웨이는 분명한 IP 주소가 부여되지 않는다. 이는 클라우드의 특징이라고 할 수 있다.

VPC의 특징을 정리해보자.

  • (하드웨어가 아닌) 소프트웨어가 라우팅한다. 라우터는 IP 주소를 갖지 않는다.
  • 라우팅 테이블 한 개에 서브넷 여러 개를 설정할 수 있다.
  • VPC 한 개에 인터넷 게이트웨이는 한 개만 설정할 수 있고, IP 주소를 갖지 않는다.
  • 서브넷 사이의 통신은 라우터 없이 직접 통신할 수 있다.


| 기본 VPC : AWS가 제공하는 기본 VPC

오토 스케일링(Autoscaling)
오토 스케일링은 서버 팜의 컴퓨팅 리소스 양을 동적으로 조정하는 클라우드 컴퓨팅에 사용되는 한 방식이다. 예를 들어, 웹 애플리케이션 뒤에서 실행되는 서버 수는 사이트의 활성 사용자 수에 따라 자동으로 늘어나거나 줄어들 수 있다.

VPC를 설정할 때 인터넷 연결 여부와 오토 스케일링 설정이 필요하다.
인터넷에 연결해야 한다면 인터넷 게이트웨이를 설정해야 하고, 오토 스케일링을 설정해야 한다면 서버가 자동으로 늘어나기 때문에 IP 주소를 많이 확보해 두어야 한다.

또한, 보안그룹과 네트워크 ACL을 설정하려면 인스턴스 용도에 맞는 포트를 설정하는 것도 고려해야 한다.
모든, 포트가 닫힌 것이 기본 설정이므로 서버를 사용하려면 기본 설정을 변경해야 한다.

VPC 사용 절차를 큰 단계로 나누어 보았을때 다음과 같다.

AWS 로그인 -> VPC 생성 -> 서브넷 설정(CIDR 블록에 네트워크 범위를 설정한 후 서브넷으로 나눔) -> 인터넷 연결

위 방법이 복잡한 경우 간단하게 사용할 수 있는 기본 VPC 가 있다.
기본 VPC 는 리전별로 구축되어 있는 VPC이다.
기본 VPC는 특별한 설정 없이 바로 사용이 가능하고, ELB(Elastic Load Balancing)과 같은 서비스도 제공하며, 서브넷과 인터넷 게이트웨이가 기본적으로 구성이 되어있다.
기본 서브넷이라는 서브넷이 가용 영역별로 한 개씩 생성되어 있고, 인터넷 게이트웨이도 구성되어 있으므로 인터넷에 접속할 수 있다.



| VPC 엔드포인트 : 다른 AWS 서비스 및 엔드포인트 서비스와 연결

VPC 엔드포인트 (Endpoint)는 VPC 내부에서 VPC 외부로 접속하기 위한 연결점을 제공하는 가상 서비스이다. 확장성과 고가용성을 지원하며, 네트워크 트래픽에 대해 자동으로 스케일링되기 때문에 네트워크 트래픽에 대해 고민하지 않아도 괜찮다.

VPC 외부의 다른 서비스와 연결하려면 인터넷 게이트웨이를 사용해 접속해야하는데 과정이 복잡하고 보안면에서 우려가 된다.
이러한 이유로 인터넷 게이트웨이를 통하지 않고, S3와 같은 VPC 외부에 있는 서비스와 직접 연결해주는 것을 VPC 엔드포인트 서비스라고 한다.
VPC의 출입구로 엔드포인트를 설정하면 S3와 직접 연결할 수 있다

엔드포인트의 종류에는 인터페이스 엔드포인트와 게이트웨이 엔드포인트가 있다.

항목 내용
인터페이스 엔드포인트
(Interface Endpoint)
- 인터페이스(ENI : Elastic Network Interface) 로 구축하는 유형
- 사설 IP 주소를 가진 ENI가 존재하며 각 서비스와 연결하는 출입구 역할
게이트웨이 엔드포인트
(Gateway Endpoint)
- 라우팅 테이블에 설정된 내용을 라우팅하는 유형
- 서비스 리전 단위로 라우팅 테이블을 설정하는 방식
- 한 번 설정하면 해당 리전의 모든 서비스 사용 가능
- S3와 DynamoDB는 이러한 형식을 가짐

-- 인터페이스 엔드포인트 (Interface Endpoint)

-- 게이트웨이 엔드포인트 (Gateway Endpoint)



| VPC 연결

VPC와 다른 네트워크를 연결하는 방법으로는 VPC 피어링, AWS Direct Connect, AWS VPN, 전송 게이트웨이가 있다.

항목 내용
VPC 피어링
(VPC peering)
VPC 끼리 연결하는 기능
AWS Direct Connect AWS 네트워크에 전용선을 물리적으로 연결하는 방법
AWS VPN AWS 네트워크에 가상으로 전용선 연결
전송 게이트웨이 VPC나 온프레미스 네트워크를 하나로 묶어서 서로 연결하는 연결점 제공

-- VPC 피어링 (VPC peering)



| 참고

https://blog.bespinglobal.com/post/aws-vpc-s3-endpoint-gateway-vs-interface-%EC%B0%A8%EC%9D%B4/
https://medium.com/classmethodkorea/aws-%EC%9E%85%EB%AC%B8-%EC%8B%9C%EB%A6%AC%EC%A6%88-amazon-vpc%ED%8E%B8-2b239ec5afe8
https://www.aladin.co.kr/shop/wproduct.aspx?ItemId=274143194
https://velog.io/@dltkdgus1850/AWS-VPC%EB%9E%80

0개의 댓글