[Practitioner] 독립적인 나만의 가상 네트워크 공간 생성 (1)

2020. 9. 1. 14:03AWS/Practitioner

1. Network

1) Network

네트워크는 서로가 가지고 있는 정보를 결합하여 생산적인 가치 만드는 일을 뜻한다. 서로 통신을 하기 위해서는 반드시 지켜야 하는 약속을 프로토콜이라고 지칭한다.

2) VPN (Virtual Private Network)

큰 규모의 조직이 여러 곳에 분산되어 있는 컴퓨터들을 연결하는 보안성이 높은 사설 네트워크를 만들거나, 인터넷을 활용하여 원격지 간에 네트워크를 서로 연결하고 암호화 기술을 적용하여 보다 안정적이며, 보안성 높은 통신 서비스를 제공하는 서비스이다. AWS는 VPC (Virtual Private Cloud)와 VPC Gateway를 통해 On-Premise의 VPN 장비와 AWS 간의 VPN을 연결할 수 있으며, 이를 통해 보안성 높은 하이브리드 클라우드 환경을 구현하여 원활한 클라우드 컴퓨팅 서비스를 지원한다.

 

 

 

2. VPC (Virtual Private Cloud)

1) VPC

Amazon VPC는 AWS 클라우드에서 논리적으로 격리된 네트워크 공간을 할당하여 가상 네트워크에서 AWS 리소스를 이용할 수 있는 서비스를 제공한다. Amazon VPC 자체 IP 주소 범위, 서브넷 생성, 라우팅 테이블 및 네트워크 게이트웨이 구성 선택 등 가상 네트워킹 환경을 완벽하게 제어할 수 있으며 VPC에서 IPv4와 IPv6를 모두 사용하여 리소스와 애플리케이션에 안전하고 쉽게 액세스할 수 있다. 보안 그룹 및 네트워크 제어 목록을 포함한 다중 보안 계층을 활용하여 각 서브넷에서 EC2 인스턴스에 대한 액세스를 제어할 수 있다.

 

즉, Amazon VPC는 직접 정의 가능한 가상 네트워크에서 AWS 리소스를 구동할 수 있는 논리적으로 격리된 네트워크를 제공한다. AWS에 사설 네트워크 구축과 회사와 AWS간 VPN을 연결하거나 가상 네트워킹을 구현할 수 있다. 기존 데이터 센터와의 연결을 통해 하이브리드 환경을 구성하고 AWS를 회사 인프라의 일부처럼 사용할 수 있다. 내부 시스템 소프트웨어의 연동이 쉽고 세심한 네트워크 설정과 모든 리전에서 이용이 가능하다는 장점이 있다.

 

1년간 무료로 이용할 수 있는 프리티어로는 VPC 자체로 비용이 발생하지 않지만, VPN 연길 시 네트워크 송/수신에 따른 종량제 비용이 발생한다.

2) Private IP, Public IP, Elastic IP 주소

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

 

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

 

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

3) VPC와 서브넷

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

 

VPC는 리전의 모든 가용 영역에 적용되며, 각 가용 영역에 하나 이상의 서브넷을 추가할 수 있다. 서브넷은 단일 가용 영역에서만 생성할 수 있고 여러 가용 영역으로 확장할 수 없다. 서브넷은 CIDR 블록 형태(/24)로 지정하고, 트래픽이 인터넷 Gateway로 라우팅되는 서브넷을 Public, 인터넷 Gateway로 라우팅 되지 않는 서브넷을 Private 서브넷이라 한다. EC2 인스턴스가 인터넷과 통신을 하기 위해서는 Public IP나 탄성 IP 주소가 필요하다. 일반적으로 접근이 많은 웹 서버는 Public 서브넷에, 인터넷이 직접적인 접근이 필요 없고 높은 보안이 필요한 데이터베이스는 Private 서브넷에 생성한다.

4) 라우팅 테이블

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

5) 보안 그룹과 네트워크 액세스 제어 목록 (ACL)

VPC는 네트워크 통신과 트래픽에 대해 IP와 Port로 허용하거나 차단할 수 있는 기능(보안 그룹, 네트워크 액세스 제어 목록)이 있다. 이 기능을 이용하여 AWS 상에서 방화벽과 동일한 기능을 사용할 수 있다.

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

6) VPC 피어링 연결 (VPC Peering Connection)

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

7) NAT (Network Address Translation)

NAT는 외부 네트워크에 알려진 것과 다른 IP 주소를 사용하는 내부 네트워크에서 내부 IP 주소를 외부 IP 주소로 변환하는 작업을 수행하는 서비스다. NAT Gateway는 Private 서브넷 내에 잇는 인스턴스를 인터넷 또는 다른 AWS 서비스에 연결하고 외부망 또는 인터넷에서 해당 인스턴스에 연결하지 못하도록 구성하는데 사용한다. 즉, 외부에 공개될 필요가 없거나 보안상 중요한 서비스지만 보안 업데이트, 소프트웨어 업데이트를 인터넷을 통해 받아야하는 경우 NAT Gateway나 NAT 인스턴스를 사용한다.

8) VPC Endpoint

Amazon S3는 인터넷망에 연결된 서비스로 인터넷 기반의 IP 주소와 연결 정보를 가지고 있다. 이러한 공용 리소스에 대해 Public 서브넷에 위치한 인스턴스는 인터넷을 통해 문제 없이 연결 가능하다. 하지만 Private 서브넷에 위치한 인스턴스는 S3와 같은 공용 리소스를 연결할 수 없다. 이 경우 NAT Gateway나 NAT 인스턴스가 필요하지만 VPC Endpoint로 빠르고 쉽게 연결할 수 있다.


[참고] 아마존 웹 서비스 AWS Discovery Book

 

728x90