AWS - 네트워크 VPC

Jaca·2021년 12월 22일
0

VPN

VPN(Virtual Private Network)는 큰 규모의 조직이 여러 곳에 분산 되어 있는 컴퓨터들을 연결하는 보안성 높은 사설 네트워크를 만들거나, 인터넷을 활용하여 원격지 간에 네트워크를 서로 연결하고 암호화 기술을 적용하여 보다 안정적이며, 보안성이 높은 통신을 제공하는 것이다.

기존의 IDC에서 서비스하던 모든 시스템을 클라우드로 옮기는 것은 쉬운 일이 아니기 때문에 'IDC - 클라우드' 간의 연결을 통해 기존 시스템과 클라우드 시스템 간의 데이터 통신이 필요하다.

AWS는 VPC와 VPC Gateway를 통해 온프레미스의 VPN 장비와 AWS의 VPN 간의 연결을 할 수 있으며, 이를 통해 보안성 높은 하이브리드 클라우드 환경을 구현한다.

VPC

VPC(Virtual Private Cloud)는 AWS 클라우드에서 논리적으로 격리된 네트워크 공간을 할당하여 가상 네트워크에서 AWS 리소스를 이용할 수 있는 서비스를 제공한다.

VPC 자체 IP 주소 범위, 서브넷 생성, 라우팅 테이블 및 네트워크 게이트웨이 구성 선택 등 가상 네트워킹 환경을 완벽하게 제어할 수 있다.

네트워크의 구성을 쉽게 정의할 수 있고, 보안 그룹 및 네트워크 ACL를 포함한 다중 보안 계층을 활용하여 각 서브넷에서 EC2 인스턴스에 대한 액세스를 제어할 수 있다.

구분내용
서비스 명Amazon VPC
설명직접 정의 가능한 가상 네트워크에서
AWS 리소스를 구동할 수 있는 논리적으로 격리된 네트워크 제공
주요 특징- AWS에서 사설 네트워크 구축
- 회사와 AWS 간의 VPN을 연결하거나 가상 네트워킹 구현
- 기존 데이터 센터와의 연결을 통해 하이브리드 환경 구성
- AWS를 회사 인프라의 일부처럼 이용할 수 있으며, 내부 시스템 소프트웨어의 연동이 매우 쉬움
- 세심한 네트워크 설정 가능
- 모든 리전에서 이용 가능
프리티어VPC 자체는 비용이 발생하진 않지만, VPN 연결 시 네트워크 송/수신에 따른 종량제 비용 발생

VPC의 구성 요소

IP 주소

프라이빗 IP 주소
인터넷을 통해 연결할 수 없는, VPC 내부에서만 사용할 수 있는 IP 주소.
VPC에서 시작된 인스턴스 서브넷 범위에서 자동으로 할당되며, 동일 네트워크에서 인스턴스 간 통신에 사용할 수 있다.
기본 프라이빗 주소와 별도로 보조 프라이빗 IP 주소라는 추가 주소를 할당할 수 있다.

퍼블릭 IP 주소
인터넷을 통해 연결할 수 있는 IP 주소.
인스턴스와 인터넷 간의 통신에 사용.
EC2 생성 시 옵션으로 퍼블릭 주소의 사용 여부를 선택할 수 있고, 인스턴스에서 퍼블릭 IP 주소를 수동으로 연결하거나 해제할 수 없다.
인스턴스가 재부팅되면 새로운 주소가 할당된다.

탄성 IP 주소
동적 컴퓨팅을 위해 고안된 고정 퍼블릭 IP 주소.
VPC의 모든 인스턴스와 네트워크 인터페이스에 탄성 IP를 할당할 수 있으며, 다른 인스턴스에 주소를 신속하게 다시 매칭하여 인스턴스 장애 조치를 수행할 수 있다.
탄력적 IP 주소의 효율적 활용을 위해 탄력적 IP 주소가 실행 중인 인스턴스와 연결되어 있지 않거나, 중지된 인스턴스 또는 분리된 네트워크 인터페이스와 연결되어 있는 경유 시간당 요금이 부과된다.
사용 가능한 탄성 IP 주소는 5개로 제한된다.

VPC와 서브넷

VPC는 사용자와 AWS 계정을 위한 전용의 가상 네트워크를 말한다.
이러한 VPC는 AWS 클라우드에서 다른 가상 네트워크와 논리적으로 분리되있으며, EC2 인스턴스와 같은 AWS 리소스를 VPC에서 실행할 수 있다.
VPC 내부의 네트워크에서도 서비스 목적에 따라 IP Block으로 나누어 구분할 수 있다.
이렇게 분리된 IP Block의 모음을 서브넷이라고 한다.

VPC는 리전의 모든 가용 영역에 적용되며, 각 영역에 하나 이상의 서브넷을 추가할 수 있다.
하지만 서브넷은 단일 가용 영역에서만 생성할 수 있으며, 여러 가용 영역으로 확장할 수 없다.

VPC와 서브넷 사이즈

VPC를 생성할 때 VPC에서 사용하게 될 IP 주소의 범위를 지정하게 되는 범위를 CIRD(Classless Inter-Domain Routing) 블록 형태로 지정해야 한다.
자세한 CIRD 블록 계산은 검색을..

퍼블릭 서브넷과 프라이빗 서브넷

서브넷 네트워크 트래픽이 인터넷 게이트웨이로 라우팅이 되는 서브넷을 퍼블릭 서브넷이라 하고,
인터넷 게이트웨이로 라우팅 되지 않는 서브넷을 프라이빗 서브넷이라고 한다.

EC2 인스턴스가 IP를 통해 인터넷과 통신을 할 수 있게 하려면, 퍼블릭 IP 주소나 탄성 IP 주소가 있어야 한다.
일반적으로 인터넷 망을 통해 서비스를 수행하는 웹 서버는 퍼블릭 서브넷에 생성하며, 인터넷에 직접적으로 연결할 필요가 없고, 보다 높은 보안성을 필요로 하는 DB 서버는 프라이빗 서브넷에 생성한다.

라우팅 테이블

각 서브넷은 서브넷 외부로 나가는 아웃바운드 트래픽에 대해 허용된 경로를 지정하는 라우팅 테이블이 연결되어 있어야 한다.
생성된 서브넷은 자동으로 VPC의 기본 라우팅 테이블과 연결되며, 테이블의 내용을 변경할 수 있다.

VPC의 주요 서비스

보안 그룹과 네트워크 ACL

VPC는 네트워크 통신과 트래픽에 대해 IP와 Port를 기준으로 통신을 허용하거나 차단하기 위한 기능을 제공한다.
이러한 서비스를 보안 그룹과 네트워크 ACL 이라 한다.

VPC의 보안 그룹과 네트워크 ACL을 통해 AWS 상에서 방화벽과 동일한 기능을 사용할 수 있다.

보안 그룹과 네트워크 ACL의 서비스 비교

구분보안 그룹네트워크 ACL
서비스 범위인스턴스 레벨에 적용서브넷 레벨에 적용
적용 정책허용 규칙만 적용허용 및 거부 규칙 적용
구동 방식규칙에 상관없이 반환 트래픽 허용반환 트래픽이 별도로 허용되어야 함
룰 검토/적용해당 객체 내 모든 룰 검토해당 객체 내 룰을 번호 순으로 처리
적용 방법인스턴스에 보안 그룹 추가 필요연결된 서브넷에 모든 인스턴스 자동 적용됨

VPC 피어링 연결

피어링 연결은 비공개적으로 두 VPC 간에 트래픽을 라우팅할 수 있게 하기 위한 서로 다른 VPC 간의 네트워크 연결을 제공한다.
VPC 피어링을 통해 동일한 네트워크에 속한 것 같이 서로 다른 VPC의 인스턴스 간에 통신이 가능하다.

NAT(Network Address Translation) 게이트 웨이

NAT는 외부에 알려진 것과 다른 IP 주소를 사용하는 내부 네트워크에서, 내부와 외부의 IP 주소를 변환하는 서비스이다.

NAT 게이트웨이는 프라이빗 서브넷 내에 있는 인스턴스를 인터넷 또는 다른 AWS 서비스에 연결하고, 외부망 또는 인터넷에서 해당 인스턴스에 연결하지 못하도록 구성하는 데 사용한다.

외부에 공개될 필요가 없거나, 보안상 중요한 서비스이지만 윈도우 패치나 보안 업데이트, 소프트웨어 업데이트를 인터넷을 통해 받아야 하는 경우 NAT 게이트웨이나 NAT 인스턴스를 사용하게 된다.

NAT 게이트웨이를 구성하기 위해 3가지 조건이 필요하다.

  1. NAT 게이트를 생성하기 위해 퍼블릭 서브넷 지정
  2. NAT 게이트웨이와 연결할 탄력적 주소 필요
  3. NAT 게이트웨이를 만든 후 인터넷 트래픽이 NAT 게이트웨이로 통신이 가능하도록 프라이빗 서브넷과 연결된 라우팅 테이블 업데이트

VPC Endpoint

S3는 인터넷망에 연결된 서비스로 인터넷 기반의 IP 주소와 연결 정보를 가지고 있다.
이러한 공용 리소스에 대해 퍼블릭 서브넷에 위치한 인스턴스는 인터넷을 통해 문제 없이 연결 가능하다.

하지만 프라이빗 서브넷에 위치한 인스턴스는 인터넷과 연결되어 있는 S3와 같은 공용 리소스를 연결할 수 없다.
S3에 연결하기 위해서 NAT 게이트웨이나 NAT 인스턴스가 필요하다.
하지만 VPC Endpoint를 통해 빠르게 S3, DynamoDB에 연결할 수 있다.

VPN 연결

기본적으로 VPC에서 서비스되는 인스턴스는 온프레미스에 있는 서버나 IDC 내의 시스템과 통신할 수 없다.

인터넷을 통한 연결은 보안적으로 취약하기 때문에 AWS VPC 내 인스턴스와 IDC 내 시스템 간의 데이터 통신을 위해 VPC에 가상 프라이빗 게이트웨이를 연결하고 사용자 지정 라우팅 테이블을 생성하여, 보안 그룹 규칙을 업데이트하고, AWS 관리형 VPN 연결을 생성하여 VPC에서 원격의 네트워크에 접속 가능하도록 하이브리드 클라우드 환경을 구성할 수 있다.

VPN 연결은 VPC와 자체 네트워크 사이의 연결을 의미한다.

profile
I am me

0개의 댓글