VPC, Route 53 실습 회고
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로 설정하기를 권장
- 다른 VPC끼리 cidr와 겹치면 안됨,
- 계정 생성시 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)의 여부를 결정함
- Routing Table
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에 해당함
- bastion host security group
- 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 내부에서 바로 연결이 가능함, 안전하고 효율적인 리소스간 연결 가능