탄탄대로
VPN과 VPC, NAT 본문
■ VPN(Virtual Private Network)
VPN은 큰 규모의 조직이 여러 곳에서 분산되어 있는 컴퓨터들을 연결하는 보안성 높은 사설 네트워크(Private Network)를 만들거나, 인터넷을 활용하여 원격지 간에 네트워크를 서로 연결하고 암호화 기술을 적용하여 보다 안정적이며, 보안성 높은 통신 서비스를 제공하는 서비스.
AWS는 VPC(Virtual Private Cloud)와 VPC Gateway를 통해 On-Premise의 VPN 장비와 AWS간의 VPN을 연결할 수 있음. 이를 통해 보안성 높은 하이브리드 클라우드(Hybrid Cloud) 환경을 구현하여, 원활한 클라우드 컴퓨팅 서비스를 지원.
※ On-Premise
기업의 서버를 클라우드 같은 원격 환경에서 운영하는 방식이 아닌, 자체적으로 보유한 전산실 서버에 직접 설치하여 운영하는 방식을 말함.
기업의 비지니스 정보를 보안성 높게 관리할 수 있다는 것이 장점이지만, 시스템을 구축하는데 많은 시간과 비용이 들어간다는 단점이 있음.
※ Off-Premise
클라우드 방식의 서비스를 의미함. 구축 시간과 비용을 절감한다는 장점이 있지만, On-Premise보다 보안에 취약하다는 단점이 있음.
※ Hybrid IT Infra
보안성이 높은 데이터는 On-Premise 환경에서, 보안성이 낮은 데이터는 클라우드 환경을 사용하는 것을 말함.
■ VPC(Virtual Private Cloud)
VPC는 AWS 클라우드에서 논리적으로 격리된 네트워크 공간을 할당하여 가상 네트워크에서 AWS 리소스를 이용할 수 있는 서비스를 제공함.
Amazon VPC 자체 IP 주소 범위, 서브넷(Subnet) 생성, 라우팅 테이블(Routing Table) 및 네트워크 게이트웨이 구성 선택 등 가상 네트워킹 환경을 완벽하게 제어할 수 있으며, VPC에서 IPv4와 IPv6를 모두 사용하여 리소스와 애플리케이션에 안전하고 쉽게 액세스 할 수 있음.
구분 | 내용 |
서비스명 | Amazon VPC(Virtual Private Cloud) |
설명 | 직접 정의 가능한 가상 네트워크(Private Network)에서 AWS 리소스를 구동할 수 있는 논리적으로 격리된 네트워크 제공 |
주요 특징 | - AWS에 사설 네트워크 구축 - 회사와 AWS 간 VPN을 연결하거나 가상 네트워킹 구현 - 기존 데이터 센터와의 연결을 통해 하이브리드 환경 구성 - AWS를 회사 인프라의 일부처럼 사용할 수 있으며, 내부 시스템 소프트웨어의 연동이 매우 쉬움 (예: 메일, 그룹웨어와 같은 업무 시스템, 파일 서버 등) - 세심한 네트워크 설정 가능 - 모든 리전(Region)에서 이용 가능 |
■ VPC의 구성 요소
① 프라이빗 IP(Private IP) 주소
인터넷을 통해 연결할 수 없는, VCP 내부에서만 사용할 수 있는 IP 주소. 프라이빗 IP는 VCP에서 시작된 인스턴스 서브넷의 범위에서 자동으로 할당 됨. 동일 네트워크에서 인스턴스 간 통신에 사용할 수 있음.
② 퍼블릭 IP(Public IP) 주소
인터넷을 통해 연결할 수 있는 IP 주소. 인스턴스와 인터넷 간의 통신을 위해 사용. EC2 생성 시 옵션으로 퍼블릭 IP 주소의 사용 여부를 선택할 수 있으며, 인스턴스에서 퍼블릭 IP 주소를 수동으로 연결하거나 해제할 수 없음. 인스턴스가 재부팅되면 새로운 퍼블릭 IP 주소가 할당됨.
③ 탄성 IP(Elastic IP) 주소
동적 컴퓨팅을 위해 고안된 고정 퍼블릭 IP 주소. VCP의 모든 인스턴스와 네트워크 인터페이스에 탄성 IP를 할당할 수 있음. 사용 가능한 탄력적 IP 주소는 5개로 제한됨.
■ VCP와 서브넷(Subnet)
VCP는 사용자의 AWS 계정을 위한 전용의 가상 네트워크. VCP는 AWS 클라우드에서 다른 가상 네트워크와 논리적으로 분리되어 있으며, Amazon EC2 인스턴스와 같은 AWS 리소스를 VCP에서 실행할 수 있음.
VCP 내부의 네트워크에서도 서비스의 목적에 따라 IP Block을 나누어 구분할 수 있음. 이렇게 분리된 IP Block의 모음을 서브넷(Subnet)이라고 함. 네트워크 상 서브넷과 동일한 개념.
※ 서브넷(Subnet)
각 네트워크에 부여된 네트워크 주소부와 호스트 주소부의 크기를 변경해 여러 네트워크로 분할하는 방법. 즉, 하나의 네트워크를 여러 네트워크로 나누는 것.
서브넷은 서브넷 마스크(subnet nask)라는 값을 사용하는데 네트워크 주소부의 비트는 1로, 호스트 주소부의 비트는 0으로 설정하는 값임.
VCP는 리전(Region)의 모든 가용 영역(Availability Zone)에 적용되며, 각 가용 영역에 하나 이상의 서브넷을 추가할 수 있음. 하지만 서브넷은 단일 가용 영역에서만 생성할 수 있으며, 여러 가용 영역으로 확장 불가능.
■ VPC(Virtual Private Cloud)와 서브넷(Subnet) 사이즈
VPC를 생성할 때 VPC에서 사용하게 될 IP 주소의 범위를 지정하는데, 이때 범위는 CIDR(Classless Inter-Domain Routing) 블록 형태로 지정해야 함.
■ 퍼블릭 서브넷(Public Subnet)과 프라이빗 서브넷(Private Subnet)
- 퍼블릭 서브넷(Public Subnet) : 서브넷 네트워크 트래픽이 인터넷 게이트웨이(Internet Gateway, IGW)로 라우팅이 되는 서브넷.
- 프라이빗 서브넷(Private Subnet) : 서브넷 네트워크 트래픽이 인터넷 게이트웨이로 라우팅 되지 않는 서브넷.
EC2 인스턴스가 IP를 통해 인터넷과 통신할 수 있으려면 퍼블릭 IP(Public IP) 주소나 탄력적 IP(Elastic IP) 주소가 있어야 함. 일반적으로 인터넷망을 통해 서비스를 수행하는 웹 서버(Web Server)는 퍼블릭 서브넷에 생성하며, 인터넷에 직접적으로 연결할 필요 없고, 보안성을 필요로 하는 DB 서버는 프라이빗 서브넷에 생성함.
■ 라우팅 테이블(Routing Table)
각 서브넷은 서브넷 외부로 나가는 아웃바운드(Outbound) 트래픽에 대해 허용된 경로를 지정하는 라우팅 테이블(Routing Table)이 연결되어 있어야 함. 라우팅 테이블은 VPC의 서브넷 내에서 생성된 네트워크 패킷이 목적지 주소로 이용하기 위해 어떤 경로로 이동되어야 하는지를 알려주는 나침반과 같음.
생성된 서브넷은 자동으로 VCP의 기본 라우팅 테이블과 연결되며, 테이블의 내용은 변경 가능.
■ 보안 그룹(Security Group)과 네트워크 액세스 제어 목록(Network ACL)
VPC는 보안 그룹(Security Group)과 네트워크 ACL라는 서비스를 통해 네트워크 통신과 트래픽에 대해 IP와 Port를 기준으로 통신을 허용하거나 차단하기 위한 기능을 제공.
구분 | 보안그룹(Security Group) | 네트워크 ACL(Network Access Control List) |
서비스 범위 | 인스턴스 레벨에 적용 | 서브넷 레벨에 적용 |
적용 정책 | 허용(Allow) 규칙만 적용 | 허용(Allow) 및 거부(Deny) 규칙 적용 |
구동 방식 | 규칙에 상관없이 반환 트래픽 허용 | 반환 트래픽이 별도로 허용되어야 함 |
룰(Rule)검토/적용 | 해당 객제 내 모든 룰 검토 | 해당 객체 내 룰을 번호 순으로 처리 |
적용 방법 | 인스턴스에 보안 그룹 추가 필요 | 연결된 서브넷에 모든 인스턴스 자동 적용됨 |
■ VPC 피어링 연결(VPC Peering Connection)
피어링 연결은 비공개적으로 두 VPC 간에 트래픽을 라우팅할 수 있도록 서로 다른 VPC간의 네트워크 연결을 제공. VPC Peering을 통해 동일한 네트워크에 속한 것과 같이 서로 다른 VPC의 인스턴스 간에 통신이 가능함.
■ NAT(Network Address Translation) 게이트웨이
외부 네트워크에 알려진 것과 다른 IP 주소를 사용하는 내부 네트워크에서, 내부 IP 주소를 외부 IP 주소로 변환하는 작업을 수행하는 서비스.
NAT 게이트웨이는 프라이빗 서브넷(Private Subnet) 내에 있는 인스턴스를 인터넷(예: 소프트웨어 업데이트용) 또는 다른 AWS 서비스에 연결하고, 외부망 또는 인터넷에서 해당 인스턴스를 연결하지 못하도록 구성하는데 사용.
외부에 공개될 필요가 없거나, 보안상 중요한 서비스이지만 윈도우 패치나 보안 업데이트, 소프트웨어 업데이트를 인터넷을 통해 받아야하는 경우 NAT 게이트웨이나 NAT 인스턴스를 사용하게 됨.
NAT 게이트웨이를 구성하기 위한 세 가지 조건.
① 퍼블릭 서브넷 - NAT 게이트를 생성하기 위해 퍼플릭 서브넷(Public Subnet)을 지정
② 탄력 IP 주소 - NAT 게이트웨이와 연결할 탄력 IP(Elastic IP) 주소 필요
③ 라우팅 테이블 업데이트 - NAT 게이트웨이를 만든 후 인터넷 트래픽이 NAT 게이트웨이로 통신이 가능하도록 프라이빗 서브넷(Private Subnet)과 연결된 라우팅 테이블(Routing Table)업데이트
NAT 게이트웨이를 구성하면 프라이빗 서브넷의 인스턴스가 인터넷과 통신할 수 있음.
■ VCP Endpoint
Amazon S3은 인터넷망에 연결된 서비스로 인터넷 기반의 IP 주소와 연결 정보를 갖고 있음. 이러한 공용 리소스에 퍼블릭 서브넷에 위치한 인스턴스는 인터넷을 통해 문제 없이 연결할 수 있음.
하지만 프라이빗 서브넷에 위치한 인스턴스는 S3에 연결하기 위해서 NAT 게이트웨이나 NAT 인스턴스가 필요.
이럴 경우 VPC Endpoint를 이용하면 빠르고 손쉽게 S3, DynamoDB에 연결할 수 있음.
■ 하이브리드 클라우드(Hybrid Cloud) 환경 구성
기본적으로 Amazon VPC에서 서비스되는 인스턴스는 On-Premise에 있는 서버나 IDC 내의 시스템과 통신할 수 없음.
AWS VPC 내 인스턴스와 IDC 내 시스템 간의 데이터 통신을 위해 VPC에 가상의 프라이빗 게이트웨이를 연결하고 사용자 지정 라우팅 테이블을 생성하며, 보안 그룹의 규칙을 업데이트하고, AWS 관리형 VPN 연결을 생성(VPC와 자체 네트워크 사이의 연결을 의미)하여 VPC에서 원격의 네트워크에 접속 가능하도록 하여 하이브리드 클라우드(Hybrid Cloud) 환경을 구성할 수 있음.
출처: 「아마존 웹 서비스 AWS Dicovery Book」, 권영환, 정보문화사
'AWS' 카테고리의 다른 글
Amazon RDS (0) | 2022.12.20 |
---|---|
Amazon S3와 Amazon Glacier, AMI (0) | 2022.12.20 |
클라우드 컴퓨팅과 AWS EC2, EBS, Security Group (0) | 2022.12.20 |