AWS의 네트워킹
Route53 - AWS의 DNS 서비스
역할
- GoDaddy, 가비아와 같은 Domain Registrar(도메인 네임 등록기관)
- DNS service provider로서 DNS 쿼리 서비스를 제공
- Route53은 리전에 속하지 않는 글로벌서비스로, DNS Resolver & 도메인 이름 등록 등을 맡는다.
Route53의 리소스
AWS Route53 자체는 서비스이고, Route53에서 생성하고 관리하는 리소스는 다음과 같다.
1. DNS 레코드 (Record Sets)
- 특정 도메인에 대해 설정된 DNS 레코드로, 도메인에 대한 쿼리 응답을 어떻게 할지 명시한다.
- hostname을 IPv4에 매핑하는 A, IPv6에 매핑하는 AAAA, 다른 hostname에 매핑하는 CNAME, 호스팅영역의 네임서버를 지정하는 NS 등 여러 타입이 있다.
- Route53에서만 제공되는 특별한 유형의 레코드인 Alias 도 있다.
- 도메인 이름을 AWS 리소스(e.g. S3버킷, ELB 로드 밸런서, CloudFront 배포)에 연결하는 레코드!
2. 호스팅 영역 (Hosted Zones)
- 레코드들의 집합으로 Public과 Private으로 나뉜다.
- Public Hosted Zones : 인터넷 상에서 라우트를 제공할 레코드를 모아놓는 곳
- Private Hosted Zones : VPC 내부의 트래픽을 라우팅하는 레코드를 모아놓는 곳
3. 헬스 체크 (Health Checks)
- 헬스 체크를 만들면 Route53이 자동 재해복구를 할 수 있다.
- Public Resource에만 등록할 수 있다.
배경지식
Private IP 대역
10.0.0.0 ~ 10.255.255.255
172.16.0.0 ~ 172.33.255.255
192.168.0.0 ~ 192.168.255.255
이 3가지 대역은 전 세계 어디에도 공인 IP(인터넷 사용자의 로컬 네트워크를 식별하기 위해 ISP가 제공하는 IP 주소)가 없는 약속된 사설로만 사용하는 IP 대역이다.
CIDR (Classless Inter-Domain Routing)
- AWS에서 사용하는 IP 주소 표현 방식이다.
10.0.0.0/24
라면 IP 주소의 총 32비트 중에, mask(앞에서 가릴 비트 수)할 비트수가 24개라는 의미이다.
따라서 이 Subnet Mask에서는 총 2^8로 256개이다.
Region / Availability Zone
- Region : AWS에서 가장 큰 지역의 단위 (e.g. 버지니아 북부, 서울, 오하이오)
- Availability Zone : 리전을 이루는 데이터 센터의 모음으로, AZ 여러개가 모여 리전을 구성한다.
- AZ가 데이터 센터 하나를 의미하는 것만은 아니다. 다수의 데이터 센터가 하나의 AZ를 이룰 수 있다.
- 보안을 위해 2a, 2b와 같은 AZ가 어디에 있고, 어떻게 구성되어있는지 우리는 알 수 없다.
VPC
- Virtual Private Cloud : 나만의 개인 네트워크망 데이터센터로, AWS 사용자 전용 가상의(논리적) 네트워크를 의미한다.
- Region을 지정해 만들 수 있다.
- AWS 계정을 생성하면 자동으로 VPC가 여러 리전에 생성된다. (이렇게 자동생성된 VPC는 과금되지 않는다.)
- 자동으로 생성해줄만큼 당연하게 사용하는 것을 권장하는 서비스라고 해석할 수 있다.
- VPC 리소스 맵으로 잘 설정했는지 시작적으로 확인할 수 있다.
VPC 출시 이전
- VPC는 AWS의 처음부터 있던 서비스는 아니다. (2011년 출시)
- AWS의 수많은 사용자의 네트워크가 격리되지 않은 채로 관리가 되었고, 기업들은 IP 주소 범위를 커스터마이징하고 강력하게 제어할 수 있기를 원해 VPC가 등장하게 되었다.
VPC 만들기
- VPC는 기본적으로는 한 리전에 5개까지 만들 수 있다.
- VPC는 Private IP 대역만 사용할 수 있다.
- CIDR 블록을 5개까지 가질 수 있다. 각 CIDR 블록은 VPC 내에서 사용 가능한 IP 주소 범위를 결정한다.
- VPC의 최대 크기는 /16 (10.0.0.0/15 안됨!)
Subnet : VPC의 작은 네트워크
- Subnetting : IP 주소 공간을 나누는 것
- VPC에 할당한 IP 대역을 쪼개서 리소스가 배치되는 물리적인 주소 범위를 뜻한다.
ex. 대강당이 VPC라면, 학생들은 리소스이고 의자는 IP이다.
대강당은 가, 나, 다 이렇게 구역이 나눠져있는데, 각 구역들은 Subnet이라고 볼 수 있다.
- VPC는 리전에 속하고, Subnet은 AZ에 속한다.
Internet Gateway
- 앞의 대강당 예시에서, 대강당에서 밖으로 나가려면 어떻게 해야할까?
- 문으로 나가면 된다
- VPC에서 이 문의 역할을 해 인터넷과 VPC를 연결하는 것이 바로 Internet Gateway이다.
- 대강당의 2층에 있는 학생들은 1층을 거쳐야만 밖으로 나갈 수 있다. - 밖은 인터넷이고, 1층, 2층은 각각 서브넷 A, 서브넷 B이라면 서브넷 B에 속한 리소스(학생)는 서브넷 A를 거쳐야만 인터넷에 연결될 수 있다.
즉, 프라이빗 서브넷에 속한 리소스는 퍼블릭 서브넷을 거쳐야만 인터넷에 연결될 수 있다.
Public / Private 서브넷의 차이
음 그러면 Private 서브넷에서도 그냥 바로 Internet Gateway로 연결을 하면 Public 서브넷이 되는건가...?
이런 의문을 가질 수 있다. 결론은 NO!
-
서브넷에는 Route Table이라는 것이 연결되어있다.
- Public Subnet : 연결된 라우트 테이블이 외부IP로 향하는 트래픽을 Internet Gateway로 보내도록 설정
- Private Subnet : 연결된 라우트 테이블이 외부IP로 향하는 트래픽을 Internet Gateway로 보내도록 설정되지 않음!
-
Route Table은 라우터와 같은 역할을 하는 리소스이다.
- Destination에 따른 루트를 지정한다.
- VPC 대역은 VPC 내부를 향하고, 이외는 기본 Internet Gateway를 향한다.
0.0.0.0/0
: 라우트 테이블에서 명시한 Destination을 제외한 모든 IP, 여기에 연결된 Subnet은 Public Subnet이다!