Cloud_AWS 네트워크 서비스 & 퍼블릭/프라이빗 서브넷 구성 실습

AWS 네트워크 서비스

AWS 리전(Region) 네트워킹 디자인

  • 리전(Region):
    전 세계 주요 도시의 데이터 센터들이 모여 있는 물리적 그룹이다. 즉, 하나의 리전은 여러 데이터 센터가 모여 있는 큰 지역이라고 볼 수 있습니다.
  • 가용 영역(Availability Zone, AZ):
    리전 안에 여러 개의 독립된 영역이 있다. 각 가용 영역은 여러 데이터 센터로 구성되어 있으며, 서로 다른 자연 재해나 정전 같은 문제에 대비해 지리적으로 약간 떨어져 있다(보통 100km 이내).
  • Intra-AZ 연결 (가용 영역 내 연결):
    같은 가용 영역 내에 있는 데이터 센터들은 고밀도 광섬유 케이블을 통해 100GE 또는 400GE 속도로 서로 연결되어 있다. 연결을 통해 해당 가용 영역 내에서 빠르고 안정적인 네트워크 환경을 구축할 수 있다.
  • Inter-AZ 연결 (가용 영역 간 연결):
    리전 내의 서로 다른 가용 영역들은 일정 거리(약 100km 이내)를 두고 있지만, 네트워크로 서로 연결되어 있다. 이렇게 함으로써 하나의 가용 영역에 문제가 생겨도 다른 영역이 서비스를 계속 제공할 수 있도록 설계되어 있다.
  • 트랜짓 센터 연결:
    리전 내의 모든 가용 영역은 외부 인터넷과 통신하기 위해 트랜짓 센터에 연결되어 있다. 트랜짓 센터는 외부 네트워크와의 접점 역할을 하여, 리전 내부의 서비스들이 외부와 원활하게 소통할 수 있도록 한 네트워크 서비스

 

AWS 글로벌 네트워크와 엣지 POP

  • 엣지 POP은 AWS가 운영하는 전용 네트워크를 활용해, 안정적이고 고성능의 서비스를 제공하는 센터이다.
  • 전 세계에 300개 이상의 엣지 로케이션과 13개의 리전별 엣지 캐시가 서로 연결되어 하나의 글로벌 네트워크를 구성한다.
  • 이 글로벌 네트워크 덕분에 사용자는 전 세계 어디서나 빠르고 신뢰할 수 있는 서비스를 경험할 수 있다.

 

AWS 네트워킹 서비스

  • VPC (Virtual Private Cloud):
    사용자가 직접 만드는 가상의 네트워크다. 이 네트워크 안에서 서버, 데이터베이스 등 다양한 자원을 유연하게 운영할 수 있다.
  • Transit Gateway:
    여러 개의 VPC와 온프레미스(내부 데이터 센터) 네트워크를 하나의 중앙 게이트웨이로 연결해주는 서비스다.
  • Route 53:
    AWS의 관리형 DNS 서비스로, 도메인 이름 등록, 트래픽 라우팅, 서버 상태 확인 등 다양한 기능을 제공한다.
  • Global Accelerator:
    AWS의 글로벌 네트워크를 활용해 애플리케이션에 빠르고 안정적으로 접속할 수 있도록 지원한다. 이를 통해 애플리케이션의 가용성과 성능이 향상된다.
  • Direct Connect:
    온프레미스 환경과 AWS 클라우드 간에 전용 네트워크 연결을 제공하여, 안정적이고 빠른 데이터 전송이 가능하다.
  • Site-to-Site VPN:
    IPsec VPN을 이용하여 온프레미스와 AWS 클라우드를 암호화된 네트워크로 안전하게 연결해주는 서비스다.

 

Amazon VPC 서비스 상세

리전과 VPC

  • Amazon VPC는 리전마다 독립적으로 구성되어 있다.
  • 예를 들어, 서울 리전에 VPC를 만들면 그 VPC는 오직 서울 리전에만 존재하고 다른 리전에서는 사용할 수 없다.
  • 한 리전 안에 여러 개의 VPC를 만들 수 있으며, 필요에 따라 서로 다른 VPC들을 연결해서 더 큰 네트워크를 구성할 수 있다.

서브넷과 가용영역

  • 서브넷은 VPC 내에서 네트워크를 더 작은 단위로 나눈 영역이다.
  • 퍼블릭 서브넷(인터넷과 직접 통신 가능)과 프라이빗 서브넷(내부 통신 전용)으로 구분된다.
  • 하나의 서브넷은 특정 가용영역 내에서 생성되며, 이로 인해 물리적으로 분리된 환경에서 운영된다.

 

IP CIDR

  • IP CIDR은 네트워크에 할당할 수 있는 IP 주소 범위를 나타내는 방식이다.
  • VPC 생성 시, 내부 서브넷들이 사용할 IP 주소 범위를 CIDR 블록으로 지정한다.
  • 각 서브넷은 분할된 IP CIDR을 갖고 있으며, 이를 통해 서브넷 안의 자원들이 IP CIDR 범위 안에 있는 IP 주소를 사용한다.

가상 라우터와 라우팅 테이블

  • 가상 라우터는 기본 라우팅 테이블을 보유하고 있다.
  • 기본 라우팅 테이블 외에 별도 라우팅 테이블을 생성 할 수 있다.
  • 생성된 라우팅을 서브넷과 연결하여 서브넷마다 라우팅 테이블을 가질 수 있다.
  • 라우팅 테이블에 타깃 대상에서 로컬은 내부 간 통신을 의미한다.

 

보안 그룹과 네트워크 ACL

  • Amazon VPC는 보안 그룹(Security group)과 네트워크 ACL(Acess Conrol List) 같은 가상의 방화벽 기능을 제공.
  • 보안에 대한 규칙은 사용자의 요구에 따라 수정이 가능하다.
  • 보안그룹에 대한 특징
    • 보안 그룹은 인스턴스와 같은 자원에 대한 트래픽 접근을 통제한다.
    • 보안 그룹은 이전 상태 정보를 기억하고 다음에 그 상태를 활용하는 스테이풀 접근 통제를 수행한다.
    • 스테이풀 동작으로 인해 인바운드 규칙에 따라 트래픽을 허용한 경우 정보를 기억하고 아웃바운드 규칙 여부 판단에 상관 없이 자동으로 인바운드 요청에 대한 응답을 해준다.
  • 네트워크 ACL에 대한 특징
    • 네트워크 ACL은 서브넷에 대한 트래픽 접근을 통제한다.
    • 이전 상태 정보를 기억하지 않아 다음에 그 상태를 활용하지 않는 스테이트리스 접근 통제를 수행한다.
    • 스테이트리스 동작으로 인해 인바운드 규칙에 따라 트래픽을 허용했더라도 아웃바운드 규칙으로 트래픽 허용 여부를 다시 판단한다.

 

VPC와 다른 네트워크 연결

 

인터넷 게이트웨이

  • Amazon VPC는 프라이빗 네트워크 환경이므로, 외부 인터넷과 연결이 필요하면 인터넷 게이트웨이를 생성 후 VPC와 연결하여 외부 인터넷과 통신한다. 
  • 퍼블릭 서브넷 라우팅 테이블에서 타깃 대상을 인터넷 게이트웨이로 지정하여 외부 통신 환경을 구축해야 한다.

NAT 게이트웨이

  • 프라이빗 서브넷이 외부 인터넷과 통신 할 수 있도록 한다.
  • IP 주소 변환 기능을 제공하며, 프라이빗 IP 주소를 퍼블릭 IP 주소로 변환하여 외부 인터넷과 통신하게 해준다.
  • 외부 인터넷에서 프라이빗 서브넷에는 접근이 불가능하다.
  • NAT 게이트웨이는 항상 퍼블릭 서브넷에 위치한다.

 

VPC 피어링

  • 서로 다른 VPC를 연결하는 기능이다. 서로 다른 리전뿐만 아니라 다른 계정에 위치한 VPV도 연결할 수 있다.
  • VPC 피어링을 할 경우 IP CIDR 블록이 중복되면 연결이 불가능하므로 VPC 피어링을 하기 전, IP 주소 대역을 점검해야 한다.

전송 게이트웨이

  • 다수의 VPC나 온프레미스를 단일 지점으로 연결하는 중앙 집중형 라우터이다.
  • 단일 지점 연결이라 네트워크 구성이 간소화되고 비용도 절감되는 효과가 있다.

 

가상 프라이빗 게이트웨이

  • 관리형 AWS Site-to-Site VPN을 연결하거나 AWS Direct Connect로 온프레미스 환경을 연결한다.

 

AWS 퍼블릭/프라이빗 서브넷 구성 실습

목표 아키텍처

 

실습 단계

  1. 사용자 VPC를 생성한다.
  2. 퍼블릭 서브넷을 생성한다.
  3. 퍼블릭 서브넷 환경에서 통신을 확인한다.
  4. 프라이빗 서브넷을 생성한다.
  5. 프라이빗 서브넷 환경에서 통신을 확인한다.
  6. 실습 자원 모두 삭제 > <

 

실습 1단계 (사용자 VPC 생성)

사용자 VPC 생성 (가상 라우터, 기본 네트워크/라우팅 테이블이 자동으로 같이 생성됨)

 

실습 2단계 (퍼블릭 서브넷 생성)

퍼블릭 서브넷 생성
퍼블릭 서브넷을 연결한 라우팅 테이블 생성
생성한 VPC와 연결한 인터넷 게이트웨이 생성
라우팅 테이블에 생성한 인터넷 게이트웨이 연결

 

실습 3단계 (퍼블릭 서브넷 통신 확인)

생성한 VPC 안에 SSH/HTTP 프로토콜에 대한 보안 그룹 생성
생성한 퍼블릭 서브넷 안에 인스턴스를 생성(인스턴스는 VPC 안에서 생성했던 보안그룹과 연결하여 생성)
curl 명령어를 통해 SSH 서버(생성했던 EC2 인스턴스 연결)에서 외부 인터넷과 잘 통신되는 결과를 확인

 

외부 인터넷에서 퍼블릭 서브넷 안에 있는 인스턴스에 접근 가능 확인

 

* 불필요한 IP 점유를 방지하기 위해 AWS는 인스턴스를 중지하고 재시작하면 새로운 IP를 부여한다. 

 

실습 4단계 (프라이빗 서브넷 생성)

프라이빗 서브넷을 생성
프라이빗 라우팅 테이블 생성
퍼블릭 서브넷에 NAT 게이트웨이 생성
프라이빗 라우팅 테이블에 NAT 게이트웨이 연결

 

실습 5단계 (프라이빗 서브넷 통신 확인)

프라이빗 서브넷에 인스턴스 생성
프라이빗 인스턴스는 SSH로 바로 접근 못하기에 퍼블릭 인스턴스를 통해 접근
NAT 게이트웨이를 통해 프라이빗 인스턴스가 외부 인터넷에 접근 성공

 

*프라이빗 인스턴스는 외부에서 접근 불가능

 

실습 6단계 목표실습 달성 > < 모두 삭제