Route53
Route53
- Route53: AWS의 DNS 서비스
- 도메인을 타깃으로 분산 처리 가능(!=로드밸런서)
DNS
- DNS(Domain Name System): 도메인네임(aws.amazon.com)을 네트워크 주소(192.168.1.0)으로 변환(Forwarding DNS)하거나, 그 반대의 역할(Reverse DNS)을 수행하는 분산형 데이터베이스 시스템
DNS 레코드
- DNS 레코드: Request 패킷을 받았을때 어떻게 처리할지 정해둔 지침으로, RR(Name, Value, Type, TTL)의 형식
- A: 도메인 네임과 IP간의 연결 (IPv4버전)
- CNAME: 도메인 주소를 또 다른 도메인 주소로 이중 매핑
(www.movie.com, KOREA-CDN.movie.com, CNAME, 20),
(www.movie.com, US-CDN.movie.com, CNAME, 20)
- NS: 네임 서버 레코드로 도메인에 대한 네임 서버의 권한을 누가 관리하고 있는지 알려주는 방법
- Alias: Route53에서만 제공하는 특별한 레코드로 도메인네임과 AWS리소스간의 연결
VPC
CIDR
- CIDR(Classless Inter-Domain Routing): IP 주소에서 네트워크 ID와 호스트 ID의 주소 범위를 구분하기 위한 하나의 표기법
ex) 192.168.0.0/24 -> IP 주소 중 24개의 비트를 네트워크ID로 mask하여, 나머지 비트를 호스트ID로 활용한다는 뜻
AWS 구조
- 리전: 전 세계에서 데이터 센터를 클러스터링하는 물리적 위치. 즉, AWS의 데이터센터들을 지리적으로 나눈 단위
- AZ (가용 영역, Availability Zone): 여러 데이터 센터들을 묶은 단위로, AZ 여러 개가 모여 리전을 구성
VPC
- VPC (Virtual Private Cloud): 독립된 가상 네트워크망
- 리전 당 5개 설계 가능 (즉, 리전 단위로 생성이 되며, 리전을 지정해 생성 가능)
- VPC 당 5개의 CIDR 설정 가능
- 사설 IPv4 범위만 할당 가능
- VPC CIDR는 다른 VPC나 네트워크와 범위가 겹치면 안됨
- 계정을 만들면 Default VPC가 생성이 됨
VPC 별로 네트워크 구성 가능 -> VPC는 완전하게 독립적인 하나의 네트워크로 작동 -> 시스템 의존도 ↓, 유지보수 용이
Subnet과 Subnetting
- Subnet: VPC의 IP 주소를 나눠 리소스가 배치되는 물리적인 주소 범위 IP 네트워크 논리적인 영역을 쪼개서 만든 하위 네트워크망
- Subnetting: VPC를 쪼개는 것
- IP 주소들을 낭비없이 효율적으로 사용하기 위해 subnetting이 필요함
- VPC의 IP 범위 안에서 서브넷의 IP 범위를 지정해야 함
- VPC가 하나의 리전에 존재하는 것처럼, 서브넷은 하나의 AZ에만 존재
IGW
- IGW(Internet Gateway): VPC의 리소스를 인터넷에 연결하도록 허용하는 EC2 인스턴스나 람다 함수
- VPC는 기본적으로 격리된 네트워크 환경으로, 기본적으로 인터넷과 연결되어 있지 않음
- IGW를 설정했다고 자동으로 인터넷으로 연결이 되는 것은 아님 (IGW와 Subnet들을 연결해주는 과정이 필요)
Route Table
- Route Table: 서브넷 혹은 게이트웨이의 네트워크 트래픽이 어디로 전송되어야 될 지에 관한 라우팅 규칙을 포함한 테이블
- 서브넷에는 각각 라우트 테이블이 연결되어 있음
NAT Gateway
- NAT Gateway: 인터넷 접속이 가능한 Public Subnet에 NAT Gateway를 설정해두고, Private Subnet이 외부 인터넷이 필요할 때 NAT Gateway을 거치도록 라우팅을 추가
- Private Subnet이라는 망 구조를 유지하면서 외부와 조건적으로 데이터 통신이 가능하게 하는 방법
- Private Subnet의 AWS 리소스 -> Public Subnet의 NAT Gateway -> IGW -> 외부 연결 가능
- 반대로 외부 -> Private Subnet으로 연결은 X
- 특정 AZ에서 생성이 되며, Elastic IP 사용
- 여러 개의 AZ에 생성해(=다중 NAT Gateway) 내결함성(fault tolerance) 강화 가능
- 비용은 시간 당 비용 + 전달되는 데이터 양에 따라 책정
Bastion Host
- Bastion Host: Public Subnet에 위치해 외부에서 Private Subnet으로의 통신을 도와주는 대리인
- 내부와 외부 네트워크 사이에서 일종의 게이트웨이 역할을 수행
- 역시 Private Subnet이라는 망 구조를 유지하면서 외부와 조건적으로 데이터 통신이 가능하게 하는 방법
- Bastion Host를 사용하고 싶으면 해야하는 설정들
1. Bastion Host Security Group: 보안 그룹은 인터넷에서 제한된 CIDR(외부)로부터 Private Subnet으로의 접근을 허용해야 함
2. EC2 Security Group: Bastion Host의 보안 그룹 혹은 Bastion Host의 개인 IP에 대해 SSH 연결을 허용해야 함
NACL
- NACL: Subnet을 오고가는 모든 트래픽에 대해 허용(allow)하거나 거부(deny)하여 트래픽을 제어하는 역할
- Security Group과 달리 인스턴스 단위가 아닌 Subnet 단위로 보안
- 서브넷이 생기면 ‘기본 NACL(Default NACL)’에 연결됨
- 규칙마다 숫자(1 ~ 32766)를 부여해 우선 순위를 지정
VPC Peering
- VPC Peering: Private IPv4 주소 혹은 IPv6 주소를 사용해 두 VPC 간 트래픽을 라우팅 할 수 있도록 해줘 두 VPC 간의 연결을 이루는 서비스
- AWS 네트워크를 통해 연결되므로 안전
- VPC 피어링 관계는 전이되지 않음
- 서로 다른 계정, 서로 다른 리전에서도 가능
- 피어링을 활성화하고 싶다면 VPC 서브넷의 라우팅 테이블도 통신이 가능하도록 업데이트를 해줘야 함
VPC 엔드포인트
- Private Subnet의 EC2 인스턴스가 Amazon SNS 서비스에 접근하려면?
NAT Gateway에서 Internet Gateway를 거쳐 인터넷 외부로 나가고 Amazon SNS에 액세스할 수 있음 -> 비용, 보안 이슈..
- VPC 엔드포인트를 VPC 내부에 설정함으로써 AWS 내부 네트워크를 이용해 안전하고 효율적이게 리소스 간 연결을 할 수 있음