Cloud/AWS Certified Solutions Architect - Asso

네트워크 - VPC

Tony Lim 2023. 8. 28. 12:39
728x90

VPC 개요

CIDR(Classless Inter-Domain Routing)

  • IP 주소 범위를 정의하는 방식
  • IP 주소를 작은 그룹으로 분할 하는것으로 서브네팅이라고함
  • 예) 192.168.32.1/24
    • 192.168.32.1 은 기준 IP, /24는 서브넷 마스크
    • 192.168.32.1의 IP 대역을 24비트로 나눈것
    • 256개의 IP를 사용가능 (192.168.32.0 ~ 192.168.32.255)

 

VPC (Virtual Private Cloud)

  • AWS의 가상네트워크 로 기본 VPC는 인터넷과 연결이 되어 있고 EC2 인스턴스를 생성하면 기본 VPC에 연결
  • s3 ,dynamodb 같은 것들은 public 에 위치해서 바깥의 인터넷과 연결되어 있다.
    private에 있는 EC2들은 바로 접속할 수 없다 (기본 VPC는).
    internet gateway를 거쳐서 나가 접속이 가능하다.
  • routing table을 통해서 각 AZ의 EC2끼리 소통이 가능하다.

 

Custom VPC 생성

  • 10.1.0.0/16 VPC를 먼저 생성한다.
    • 기본 라우팅 테이블 , 기본네트워크 ACL이 생성된다.
  • public subnet, private subnet을 생성한다.
    • 서브넷 생성시 가용영역을 지정하며 1개의 가용영역만 지정가능
    • 생성된 서브넷의 IPv4 CIDR 블록 주소는 추가하거나 수정이 안되며 삭제후 새로 생성만 가능
    • 서브넷 생성후 AWS는 네트워킹 목적으로 처음 4개의 ip주소와 마지막 1개 ip주소를 예약
      • 0 = network id (netmask)
      • 1 = gateway
      • 2 = dns
      • 3 = reserved
      • 255 = broadcast
  • 라우팅 테이블을 거쳐서 어느 목적지로 갈건지 결정해준다.

  • VPC 대역안의 모든 ip들은 라우팅 테이블을 통해 서로다른 AZ에서도 통신이 가능하다.
  • public subnet용 routing table, private subnet용 routing table을 각각 만들어준다.

  • Routing table에 InterGateway 를 추가하여 VPC 대역 내의 다른 ip주소로 가자고 하면 IGW로 보내게 된다.
  • 0.0.0.0/0 은 모든 ip주소를 의미한다.
  • private subnet에 연결된 routing table의 경우 IGW가 없어서 외부 통신이 불가능하다.

 

EC2 생성할 때 VPC는 custom vpc로 동일하게 하고 subnet을 각각 다르게 public , private subnet으로 설정을 한다.


Network Access Control List(NACL) & Security Groups

  • Security Group은 개별 instance에 대한 방화벽 이었다면 NACL은 각 서브넷에 대한 방화벽이다.
  • 보안그룹은 허용 규칙만 지정하고 거부 규칙은 지정할 수 없음
    또한 상태 저장 방화벽으로서 나가는 것을 허용한 트래픽에 대해서는 들어올 때 또다시 검사를 하지 않음
  • 보안그룹은 생성된 VPC내에서만 사용이 가능하다.

 

  • NACL은 상태 비저장 방화벽으로 연결상태를 추적하지 않는다.
  • 인바운드 트래픽에 대한 응답은 아웃 바운드 트래픽 규칙을 따르고
    아웃바운드 트래픽에 대한 응답은 인바운드 트래픽 규칙을 따른다.
  • EC2 웹서버 운영시 외부에서 Client가 접속 후 리턴 트래픽을 받을 때 NAT를 사용하므로 임시포트 (ephemeral ports) 1024 - 65535를 사용
    • default로 NACL의 아웃바운드 트래픽은 모든 포트가 허용으로 되어있다.
  • 가장 낮은 번호가 지정된 규칙부터 시자해서 트래픽이 내부 또는 외부로 전달되도록 허용되는지 결정
  • 번호가 가장 낮은 규칙부터 평가됨
    • 예) 90번이 먼저 적용되서 80은 허용 , 100번에서 80을 제외한 모든 트래픽이 거부가된다.


NAT Instance and NAT Gateway

ec2 instance를 만들 때 private subnet과 연결된 녀석은 만들 때 퍼블릭 IP 자동할당을 비활성화하여 public ip가 따로 없다.

그래서 A zone의 ec2에서 B 존 의 ec2에는 접근이 가능하지만 (vice versa) B존의 ec2 인스턴스는 밖에서 접근이 불가능하다.

또한 B존에서 Outbound traffic으로 인터넷에 접근하려 해도 라우팅 테이블에 IGW가 없어서 밖으로 나가지 못한다.

 

NAT Instance

  • EC2 인스턴에 NAT 기능을 설치하는 방법이다. B존에서 출발한 트래픽이 public ip를 가진 NAT instance를 통과해서 인터넷으로 뿌린다.
  • 많은 트래픽이 발생해 NAT 요청이 많으면 EC2 자원을 많이 사용하게 됨 , 즉 ec2 유형에 따라 처리량이 다름
  • EC2 인스턴스이니까 NAT Gateway에 비해 더많은 기능을 구현 할 수 있고 Security Group 적용가능

 

NAT Gateway

  • 비슷한데 EC2에 따로 구성하는것이 아니라 AWS에서 제공하고 관리하는 GW 서비스를 사용한다.
  • ec2가 아니니까 Port forwarding 등의 사용자가 추가기능을 구현할 수없음,  security group 적용 불가
  • gw 생성시 Elastic IP를 지정해서 public ip 로 사용되게끔 한다.

 

VPC Peering

  • VPC 간에는 기본적으로 네트워크 통신이 되지 않음
  • VPC피어링은 두 VPC간에 트래픽을 라우팅 할 수 있도록 하기 위한 두 VPC 사이의 네트워킹 연결
  • VPC 피어링 트래픽은 퍼블릭 인터넷을 통과하지 않고 프라이빗 IP 주소를 사용하여 서로 통신
  • VPC 피어링은 같은 리전 내에, 다른 리전 간, 다른 AWS 계정간 가능

  1. 요청자가 다른 VPC와 피어링하기 위한 요청을 생성
  2. 수락자 VPC의 소유자가 VPC 요청을 수락하여 피어링을 활성화
  3. 라우팅 테이블에 피어링 연결을 추가


AWS PrivateLink

 

AWS PriavteLink (private 연결 기술)

  • VPC 와 서비스간에 프라이빗 연결을 제공하는 기술

VPC 엔드포인트

  • 인터넷을 통하지 않고 AWS 서비스에 프라이빗하게 연결할 수 있는 VPC 의 진입점
  • 게이트웨이 엔드포인트 , 인터페이스 엔드포인트 , Gateway Load Balancer 엔드포인트

엔드포인트 서비스 (AWS PrivateLink , priavte link를 가능하게 해주는 서비스 이름 )

  • VPC 내에 있는 앱 또는 서비스
  • 다른 AWS 계정의 VPC Endpoint에서 엔드포인트 서비스(AWS PrivateLink)로 연결

 

VPC Endpoints - Gateway Endpoints

public aws service(S3) 에 접근하기 위해 routing table에 internet gateway 를 거쳐서 인터넷을 거쳐 s3에 접근한다.

  • routing table에 예를 들어 s3 에접근하고자 하는 녀석들을 모두 VPC endpoint로 보내게 추가하게되면 인터넷을 들리지 않고 priavte하게 연결을 진행할 수 있다.
  • VPC endpoint를 통해서 다른 VPC랑은 통신할 수 없다. aws public service와 만 통신이 가능하다.

 

 

VPC Endpoints - Interface Endpoints

  • 서브넷의 IP 주소 범위에서 프라이빗 IP주소를 사용하는 탄력적 네트워크 인터페이스
  • 지원되는 AWS 서비스 또는 VPC 엔드포인트 서비스로 전달되는 트래픽에 대한 진입점 역할
  • 엔드포인트는 동일한 리전에서만 지원, VPC와 다른 리전의 서비스간에 엔드포인트를 생성할 수 없음
  • Endpoint 생성이후에는 VPC와 연결된 서비스를 변경할 수 없다

 

VPC Endpoint Service (AWS Private Link)

  • vendor (service provider) 는 VPC에 앱을 구성하고 VPC Endpoint 서비스를 구성
  • 하나 또는 여러 고객(Customer) AWS 계정의 VPC Endpoint가 vendor aws 계정의 NLB 또는 GWLB에 연결
  • 인터넷을 통하지 않고 AWS 내부 네트워크를 통한 트래픽
  • 엔드포인트 서비스 연결시 고객과 벤더의 AWS의 리전이 같아야함

 

VPN & Direct Connect

VPN 개요

  • 인터넷을 이용해 가상 사설망(Virutal Private Network)을 구성하는 것
  • VPN 트래픽은 VPN 프로토콜로 보호 됨
  • IPSec : Site to Site VPN 암호화 프로토콜

 

AWS VPN 연결 옵션 - Client VPN

  • AWS 리소스와 클라이언트 PC와 연결하는 OpenVPN 기반의 VPN 서비스
  • Active Directory 등의 자격증명을 이용해 클라이언트가 VPN에 사용하는 권한을 부여
  • 클라이어트는 VPN 접속을 위한 VPN 구성 파일이 담긴 소프트웨어를 설치

 

AWS Site-to-Site VPN (AWS Managed VPN)

  • IPSec 암호화 프로토콜을 사용하여 AWS VPC와 온 프레미스간에 프라이빗 네트워크를 구성
  • VPC와 연결을 위한 Virtual Private Gateway 및 온-프레미스의 Customer Gateway Device의 정보를 구성하기 위한 Customer Gateway를 설정하여 VPN Tunnel 연결을 만듬
  • AWS Direct Connect의 백업으로 사용 가능
  • VPN 터널당 최대 대역폭은 1.25Gbps

CGDRouter는 고객것이다. Customer gw는 실제 물리적인 gw가 아니라 aws 에서 CGD Router의 정보를 들고 있는것이다.

 

Direct Connect

  • AWS와 온프레미스 간에 DX(Direct Connect) Location 을 통한 전용선을 통해 프라이빗 네트워크 연결 생성
  • 포트당 1Gbps, 10Gbps, 100Gbps 연결 속도 사용 가능
  • 물리적인 구성을 해야 하기에 설치 시간이 오래걸림
  • VPN보다 가격이 비싸며 인터넷을 통하지 않기에 인터넷 전송 비용이 들지 않음
  • 기본적으로 암호화를 지원하지 않음 (암호화를 위해 Direct Connect에 VPN을 구성 가능)
  • 트래픽이 인터넷 연결을 사용하는 Site-to-Site VPN 보다 안정적


Transit Gateway

 

VPC  + On Premise 끼리 소통을 원한다면 굉장히 복잡한 구성방식이 필요하다.

  • Transit Gateway 를 통해 각 VPC 또는 VPN 간의 모든 트래픽을 라우팅
  • 복잡한 피어링 관계를 제거하여 네트워크를 간소화

 

AWS Data Transfer Cost

  • 같은 AZ EC2 서비스끼리는 inbound , outbound traffic 비용이 모두 공짜다
  • 서로다른 AZ Ec2 서비스 끼리 트래픽은 0.1 달러
  • 서로 다른 region 간에 트래픽은 0.2 달러 
  • ec2에서 internet으로 outbound traffic은 0.5~0.9 이고 internet에서 ec2로오는 inbound traffic은 무료다
  • ELB 와 EC2가 같은 AZ이면 무료다.
    • ELB에서 internet에서 나가고 들어오는 트래픽은 0.08이다.
  • internet에서 Direct Connect로 들어오는 비용은 무료이지만 outbound traffice은 0.02 ~0.15 이다.
  • public service에서 cloud front로 가는 outbound traffic은 무료 반대의 inbound traffce은 0.02~0.16
  • clound front의 outbound traffic은 0.002 ~0.1 inbound는 공짜이다.

 

 

 

 

 

728x90