3 분 소요

VPC 및 Route 53

Route53

  • aws의 dns 서비스
  • dns + port 모니터링(health check) + l4(failover) + gslb(라우팅 정책, 네트워크에서 경로를 찾는 행위)
  • 도메인을 타깃으로 한 분산 처리(로드밸런서와는 다름)

  • route 53: 도메인 확인 ➡️ 로드밸런서: 프로토콜(tcp, udp), 포트 번호, 애플리케이션 정보(http, https) 확인
  • 네임서버 : ip 주소와 도메인 네임을 연결해주는 역할을 함

IP

  • 인터넷에 연결되어 있는 모든 장치를 식별할 수 있도록 각 장비에 부여되는 고유 주소
  • 분류
    • 고정 ip
    • 유동 ip
  • 사용 범위
    • 공인 ip
    • 사설 ip ; ipconfig
  • DNS
    • domain name system
    • 도메인 이름 > 네트워크 주소로 변환 (forwarding DNS)
    • reverse DNS ; 네트워크 주소 > 도메인 이름으로 변환
    • 분산형인 이유
      • Root DNS > TLD DNS > Authoritative DNS 순서로 질의하여 각 서버가 일부 정보만 담당하므로 전체가 분산 구조로 동작함
    • 통신 흐름
      • DHCP > ARP > DNS > TCP > HTTP/HTTPS
  • DNS 레코드
    • 기본 형식: RR(Name, Value, Type, TTL)
    • A, CNAME, NS, Alias
      • Alias ) Route53의 특수 레코드, aws 리소스와 연결할 때 사용함
      • A ) 도메인 이름을 ipv4 주소에 매핑
      • CNAME ) 하나의 도메인 이름을 다른 도메인 이름에 매핑, 주로 서브도메인에 사용
      • NS ) 어떤 네임 서버가 권한을 관리하는지 나타내는 레코드
  • aws 라우팅 정책
    • 단순 : 표준 DNS 기능을 사용함
    • 가중치 기반 : 각 리소스에 보낼 트래픽을 비율로 지정함
    • 지리적 위치 : 사용자의 위치에 기반하여 트래픽 라우팅
    • 지리적 근접 : 리소스 위치에 기반하여 트래픽 라우팅
    • 지연 시간 : 지연 시간이 짧은 리전으로 트래픽 라우팅
    • 장애조치 : 정상 상태일때만 트래픽을 라우팅
    • 다중 응답 : 무작위로 트래픽 라우팅

VPC

  • CIDR
    • IP 주소 = 네트워크 id + 호스트 id(장치 식별)
    • classless inter-domain routing
    • 192.168.0.0/24 ⇒ 24개의 비트를 네트워크 id로 마스크하여 나머지 비트를 host id로 사용함
    • aws에서는 16~28의 서브넷 마스크 범위만 허용함
  • AWS 구조
    • 리전 ) 전세계에서 데이터센터를 클러스터링한 물리적 위치, 데이터센터를 지리적으로 나눈 단위
    • AZ(가용영역) ) 여러 데이터센터를 묶은 단위, AZ 여러개로 리전을 구성함

VPC

  • 클라우드 리소스들을 격리하기 위해 만들어짐
  • vpc 별로 네트워크 구성 가능, 독립적인 하나의 네트워크로 작동
  • 시스템 의존도 가 내려가며 유지보수의 편리성
  • 리전당 5개 생성 가능, VPC당 5개의 CIDR 설정 가능
  • 사설 IPv4 범위만 할당 가능
    • 다른 VPC끼리 cidr와 겹치면 안됨, /28로 설정하기를 권장
  • 계정 생성시 default vpc 생성됨

서브넷

  • vpc의 ip 주소를 나눠 리소스를 배치하는 물리적 주소 범위
  • ip주소의 논리적 영역을 쪼개 만든 하위 네트워크 망
    • ip 범위 안에서 서브넷의 ip 범위를 지정해야 함
  • public과 private subnet이 존재함

  • VPC는 하나의 리전에 존재하는 것 처럼 서브넷은 하나의 AZ에만 존재함 > 고가용성을 위해 여러 AZ를 사용하는 것을 권장
  • 왜 VPC를 분리해서 사용해야 하는가?
    • ip 주소의 효율적인 사용을 위해서
    • 보안 격리
      • public과 private을 분리하여 내부망을 사용 가능
    • 관리 용이성

IGW

  • vpc 리소스를 인터넷과 연결하도록 허용하는 ec2 인스턴스 혹은 람다함수
  • vpc는 기본적으로 인터넷과 연결되어있지 않음
  • IGW와 서브넷을 연결하는 과정이 추가적으로 필요함
    • Routing Table
      • 서브넷 또는 게이트웨이의 네트워크 트래픽이 어디로 전송되어야 할지에 대한 라우팅 규칙을 포함한 테이블
      • public(target>igw), private(target>local)의 여부를 결정함

Bastion Host & NAT Gateway

  • private subnet 안에 있는 리소스들을 외부와 통신하기 위하여 사용
  • 내부 > 외부, 외부 > 내부 방향의 차이가 있음

  • NAT Gateway
    • private subnet이 외부 인터넷이 필요한 경우 거치도록 라우팅을 추가함
    • Private sub > Public sub 내의 NAT gateway > IGW > 외부 연결 가능
    • 단방향성
    • 특정 AZ에만 생성되며 Elastic IP를 사용함
    • 여러 AZ에 NGW를 사용하기를 권장(내결함성을 높임)
    • 사용하지 않는 시간에도 비용 부과, 데이터양도 비용에 들어감
  • Bastion Host
    • 내외부 네트워크에서 게이트웨이 역할을 수행
    • EC2 Instance에 해당함
      1. bastion host security group
      2. ec2 시큐그룹 설정을 해줘야 함

NACL

  • 인스턴스별로 보안그룹을 설정할 수 있는데 서브넷 단위로 트래픽제어를 해주는 방화벽을 말함
  • 서브넷이 생성되면 Default NACL에 연결됨
  • 커스텀 NACL을 만드는 경우 규칙을 직접 설정해야 함
  • stateless (보안그룹은 stateful)

VPC Peering

  • 두 vpc를 연결하여 서로 통신하도록 함

    private ip주소를 사용하여 두 vpc간 트래픽을 라우팅할 수 있도록 하여 두 vpc간의 연결을 아루는 서비스

    인터넷을 거치지 않음 (비용 저렴하며 속도 빠름)

  • 안전함
  • 두 vpc의 cidr이 겹치면 안됨
  • vpc 피어링은 전이되지 않음 > A-B , B-C 간 되어있어도 A-C는 통신할 수 없음
  • 피어링 활성화를 위하여 서브넷의 라우팅 테이블도 업데이트 해주어야 함
  • 서로 다른 AWS 계정 및 리전에도 통신 가능함

VPC Endpoint

  • S3, CloudWatch등은 Vpc내부에 위치한 서비스가 아니라 public ip를 갖고 외부에서 접근하는 서비스임
    • private ec2 instance는 NAT(public sub) > IGW를 거쳐서 접근해야 함
  • VPC 엔드포인트를 사용하면 aws 내부에서 바로 연결이 가능함, 안전하고 효율적인 리소스간 연결 가능