[Archtecting on AWS] Network

Created
Nov 17, 2023
Created by
Tags
AWS
Property
 

VPC (Virtual Private Cloud)

 

VPC 생성에 기본으로 필요한 것

  • CIDR(Classless Inter Domain Route) block (CIDR block 은 한 번 정해지고 나면 변경 불가.)
  • 최근 MSA 적용 사례들이 늘어나고 있어서 CIDR block 내에 IP 를 모두 사용하기도 어렵고, 서브넷 간 CIDR 블록 충돌을 고려하면 VPC CIDR 블록을 크게 잡는 건 지양하는 편.
  • CIDR block subnet mask / network ID / host IP range 확인하는 사이트 : https://cidr.xyz/
 

Subnet 생성에 기본으로 필요한 것

  • CIDR (VPC CIDR block 범위 내)
  • AZ
 

Subnet 생성 시 고려 할 것

  • public/private
  • routing table
    • routing table 형식 : CIDR block 또는 IP | target → IP 에 접근하기 위해선 타겟을 경유해야함을 나타냄.
    • 서브넷 만들면 라우팅 테이블은 알아서 만들어주는데 public/private 에 따라 라우팅 룰을 새로 만들어야 함.
    • 예) 0.0.0.0 | IGW -> 세상의 모든 IP 에 접근하려면 IGW (Internet Gateway) 을 경유하세요.
    • 예) 10.0.0.6/16 | local10.0.0.6/16 CIDR 에 소속되는 IP 에 접근하려면 local (서브넷) 을 경유하세요.
  • 다중 AZ 에 2개 이상 subnet 구성 (for High Availability)
 

public subnet 생성 시 고려할 것

  • IGW
  • IGW 으로 연결하는 라우팅 룰 (0.0.0.0 | IGW) → IGW 으로 향하는 라우팅이 존재하는 서브넷 == public subnet ?
  • Public IP (IGW 통해 인터넷에 접속할 때 공개하는 IP)
 

Elastic IP

  • public subnet 에 있는 컴퓨팅 서버에 Elastic IP 부여
  • Elastic IP 는 EC2 에 연결되어 있지 않아도 비용 발생
 

Elastic Network Interface (ENI)

  • 고정 Public/Private IP, MAC 주소 제공
  • 로드밸런서가 바라보는 인터페이스
  • EC2 서버에 ENI 탈부착
 

private subnet 생성 시 고려할 것

  • 인터넷 접속이 필요한 경우 NAT Gateway
  • 라우팅 테이블에 NAT Gateway 에 대한 라우팅 룰 생성
 

NACL (Network Access Control List)

notion image
  • 서브넷 단위로 설정하는 방화벽 (서브넷 안에 있는 모든 리소스 대상에 방화벽 적용)
  • rule number 가 작을수록 적용 우선순위가 높다.
  • stateless (inbound/outbound 규칙은 서로 독립적)
 

Security Group

  • 리소스 단위로 설정하는 방화벽.
  • NACL 보다 Security Group 을 더 많이 활용하는 편.
  • stateful (inbound ACL 이 설정되어 있으면 해당 ACL을 통과해서 들어온 트래픽에 대한 outbound 를 허용)
  • security group chaining 가능 (ex. public subnet SG 에 정의된 inbound rule 을 통과해서 들어온 트래픽을 private subnet 에 허용하도록 private subnet SG inbound rule 생성 가능)
notion image
notion image
💡
ping 명령어는 ICMP(Internet Control Message Protocol) 을 사용하므로 다른 서브넷에 있는 인스턴스에 ping 에 대한 응답을 받으려면 SG 에 ICMP 인바운드 룰을 허용해야 한다.
 

VPC endpoint

notion image
IGW, NAT, public IP 를 통해 퍼블릭 서비스(ex.S3) 또는 private 서비스에 접근하지 않고 VPC endpoint 를 통해 접근 가능.
  • gateway VPC endpoint
  • interface VPC endpoint
 

VPC peering

  • 리전 내 또는 cross-region VPC 피어링(peering) 가능.
  • 피어링 대상의 두 VPC 내에 라우팅 룰 정의 필요.
  • 피어링 간 IP 대역은 겹치면 안된다.
  • 전이적이지 않다.
    • ex) A 와 B 피어링, B 와 C 피어링 되어있다고 해서 A 와 C 가 피어링 되지 않는다.
    • n개의 VPC 들을 피어링하면 combination(n, 2) 만큼 라우팅 룰이 필요하므로 복잡도가 높아짐.
    • 따라서 다중 VPC peering 필요한 경우 Transit Gateway 를 사용.
 

Transit Gateway