전에 배웠던 다양한 AWS 네트워킹 서비스 중 Amazon VPC를 알아보고 실습을 진행한다고 한다
일단 실습을 진행하기 전에 Amazon VPC에 대해 알아보자!!
Amazon VPC 소개
Amazon VPC(Virtual Private Cloud)는 사용자 정의로 구성된 가상의 프라이빗 클라우드 네트워크이다
(사용자는 Amazon VPC에서 제공하는 다양한 네트워킹 요소를 이용하여 가상의 클라우드 네트워크를 구성할 수 있다)
Amazon VPC 기본 구성 요소
리전과 VPC
Amazon VPC는 리전마다 독립적으로 구성되어 있다
리전 내에는 다수의 VPC를 생성할 수 있으며, 각 VPC는 서로 독립적으로 분리된다
=> 이런 측면에서 사용자는 어느 리전에 VPC를 생성할지 미리 계획해야 함
독립적으로 구성된 VPC는 필요에 따라 동일 리전이나 다른 리전에 위치한 VPC들을 서로 연결하여 클라우드 네트워크를 확장할 수도 있음
서브넷과 가용 영역
Amazon VPC라는 하나의 독립된 클라우드 네트워크에도 서브넷을 이용하여 분리된 네트워크로 구성할 수 있다!
=> 서브넷은 VPC 내 별도로 나누어진 네트워크라고 생각 (서브넷은 반드시 하나의 가용 영역에 종속적으로 위치)
서브넷은 VPC 네트워크 환경 구성에 따라 퍼블릭 서브넷과 프라이빗 서브넷으로 분류할 수 있다
퍼블릭 서브넷은 인터넷 구간과 연결되어 있어 외부 인터넷 통신이 가능한 네트워크 영역이고,
프라이빗 버스넷은 인터넷 구간과 연결되지 않은 폐쇄적인 네트워크 영역이다
IP CIDR
IP CIDR은 네트워크에 할당할 수 있는 IP 주소 범위를 표현하는 방법이다
VPC 내 생성된 서브넷도 VPC의 IP CIDR에서 분할된 IP CIDR을 가지고 있다
=> 서브넷에 생성되는 자원은 IP CIDR 범위 안에 있는 IP 주소를 할당 받을 수 있음
가상 라우터와 라우팅 테이블
Amazon VPC를 생성하면 기본적으로 네트워크 경로를 확인하여 트래픽을 전달하는 목적의 가상 라우터가 생성된다!
이렇게 생성된 가상 라우터는 기본 라우팅 테이브를 보유하고 있으며, 이를 통해 네트워크 경로를 식별할 수 있다
기본 라우팅 테이블 외에 별도의 라우팅 테이블을 생성할 수 있고,
생성된 라우팅 테이블은 서브넷과 연결하여 서브넷 마다 라우팅 테이블을 가질 수 도 있다
보안 그룹과 네트워크 ACL
Amazon VPC는 보안 그룹과 네트워크 ACL 같은 가상의 방화벽 기능을 제공하여 서브넷과 생성된 자원에 대한 트래픽을 보호한다
트래픽 접근을 통제하는 것이 주된 목적이며, IP CIDR 블록, 프로토콜, 포트 번호 등을 정의하여 허용과 거부를 결정하는 보안 규칙을 만든다
여기서 중요한 점은 보안 규칙에는 방향성이 있다!
가상의 방화벽을 기준으로 들어오는 인바운드(inbound) 규칙과 빠져나가는 아웃바운드(outbound) 규칙이 있기 때문에 트래픽 흐름을 고려한 보안 규칙을 세워야 한다
보안 그룹과 네트워크 ACL은 송수신 트래픽의 접근을 통제한다는 점에서 서로 같지만, 크게 3가지의 차이점이 있다
1. 트래픽 접근 제어 대상
보안 그룹과 네트워크 ACL의 가장 큰 차이점은 접근 제어 대상이 서로 다르다는 것이다!
보안 그룹은 인스턴스와 같은 자원 접근을 제어하며, 네트워크 ACL은 서브넷 접근을 제어한다
2. 스테이트풀과 스테이트리스
보안 그룹은 이전 상태 정보를 기억하고 다음에 그 상태를 활용하는 스테이트풀 접근 통제를 수행하며,
네트워크 ACL은 이전 상태 정보를 기억하지 않아 다음에 그 상태를 활용하지 않는 스테이트리스 접근 통제를 수행한다
보안 그룹의 스테이트풀 동작은 인바드운 규칙에 따라 트래픽을 허용한 경우 정보를 기억했다가 아웃바운드 규칙에 상관없이 자동으로 접근이 허용된다
반대로, 네트워크 ACL의 스테이트리스 동작은 인바운드 규칙에 따라 트래픽을 허용했어도 상태를 저장하지 않았기 때문에 아웃바운드 규칙으로 트래픽 허용 여부를 한번 더 판단한다
3. 허용 및 거부 정책
보안 그룹의 정책 테이블은 허용 규칙만 나열하며 허용 규칙에 해당하지 않으면 자동 거부된다
반면 네트워크 ACL의 정책 테이블은 허용 규칙과 거부 규칙이 모두 존재하여 규칙을 순차적으로 확인하고 허용과 거부를 판단한다
(네트워크 ACL에도 모든 규칙이 매칭되지 않으면 거부하는 규칙이 기본적으로 존재)
쉽게 말하면 보안 그룹의 테이블은 허용이 가능한 대상만 나열되어 있고
네트워크 ACL의 테이블은 허용이 가능한 대상과 거부 대상 모두가 나열되어 있어 순차적으로 매칭을 확인하는 느낌이다
Amazon VPC와 다른 네트워크 연결
Amazon VPC의 독립된 클라우드 네트워크에서 다른 네트워크와 연결하는 다양한 기능을 알아보자
인터넷 게이트웨이
Amazon VPC는 외부 인터넷 구간과 연결되지 않은 독립적인 네트워크인걸 배웠었다
따라서, 외부 인터넷 구간과 연결이 필요하면 인터넷 게이트웨이라는 네트워킹 자원을 생성한 후 Amazon VPC와 연결하여 외부 인터넷과 통신한다!
(여기에서 인터넷 게이트웨이는 VPC와 인터넷 구간의 논리적인 연결이자 인터넷으로 나가는 관문이 되는 네트워킹 자원)
퍼블릭 서브넷은 외부 인터넷 통신이 가능한 네트워크이다
서브넷의 라우팅 테이블에서 외부 인터넷으로 나가는 타깃 대상을 인터넷 게이트웨이로 지정하여 퍼블릿 서브넷 환경을 만든다
방법은 간단한데
1. 인터넷 게이트웨이를 생성하고 Amazon VPC에 연결
2. 서브넷의 라우팅 테이블에 타깃 대상을 인터넷 게이트웨이로 지정
이렇게 하면 Amazon VPC에서 퍼블릭 서브넷을 구성할 수 있다!
NAT 게이트웨이
NAT 게이트웨이(Network Address Translation gateway)는 프라이빗 서브넷에서 외부 인터넷으로 통신하는 관문 역할을 한다
NAT는 IP 주소를 변환하는 기능을 제공하며, 프라이빗 IP 주소를 퍼블릭 IP 주소로 변환하여 외부 인터넷 구간 통신 환경을 구성한다!
NAT 게이트웨이는 프라이빗 서브넷의 외부 인터넷 구간을 돕는 역할을 하지만 실제 인터넷 게이트웨이와 연결된 퍼블릭 서브넷에 위치한다!
프라이빗 서브넷에서 외부 인터넷 구간 통신을 할 때
프라이빗 서브넷은 프라이빗 IP 주소를 NAT 게이트웨이로 전달하여 퍼블릭 IP 주소로 변환한 후 인터넷 게이트웨이를 통해 외부 인터넷 구간과 데이터를 송수신할 수 있다
하지만, 반대로 외부 인터넷 구간에서 프라이빗 서브넷의 프라이빗 IP 주소로는 데이터를 송수신할 수 없다
VPC 피어링
VPC 피어링은 서로 다른 VPC를 연결하는 기능이다
동일 리전뿐만 아니라 다른 리전에 위치한 VPC와 연결할 수도 있고, 다른 계정에 위치한 VPC까지 연결할 수 있다
(VPC 피어링으로 연결할 경우 IP CIDR 블록이 중복되면 연결이 불가능한 제약이 있어 VPC 피어링으로 클라우드 네트워크를 확장할 때는 IP 주소 대역을 반드시 점검!)
전송 게이트웨이
전송 게이트웨이는 다수의 VPC나 온프레미스를 단일 지점으로 연결하는 중앙 집중형 라우터이다
단일 지점 연결이라 네트워크 구성이 간소화되고 비용도 절감되는 효과가 있다
가상 프라이빗 게이트웨이
가상 프라이빗 게이트웨이는 관리형 AWS Site-to-Site VPN을 연결하거나 AWS Direct Connect로 온프레미스 환경을 연결한다
이렇게 해서 Amazon VPC와 다른 네트워크를 연결하는 기능까지 알아보았고
이제 실습을 진행하면 된다!
'Infra > AWS 교과서' 카테고리의 다른 글
[AWS 교과서] 3장 - AWS 네트워킹 서비스(5) (1) | 2024.01.07 |
---|---|
[AWS 교과서] 3장 - AWS 네트워킹 서비스(4) (2) | 2024.01.07 |
[AWS 교과서] 3장 - AWS 네트워킹 서비스(2) (1) | 2024.01.03 |
[AWS 교과서] 3장 - AWS 네트워킹 서비스(1) (1) | 2024.01.03 |
[AWS 교과서] 2장 - AWS 컴퓨팅 서비스(3) (2) | 2024.01.03 |