Route 53
AWS의 DNS 서비스로 다음의 기능을 구현한다.
● DNS(네임서버) + port 모니터링(Health Check) + L4(Failover 기능)+ GSLB(라우팅 정책)
● 도메인을 타겟으로 분산 처리 (load balancing)
통신 과정
● client가 네트워크 접속 후에 aws.amazon.com 접속 시도
DHCP → ARP → DNS → TCP → HTTP/HTTPS
DHCP를 통해 기기에 고유한 IP를 할당하여 네트워크에 접속한 후에
ARP를 통해 해당 IP와 MAC주소를 mapping한다.
이후, client가 aws.amazon.com 접속 시도 시에 DNS 서버를 통해 해당 사이트의 IP를 할당받는다.
이떄, DNS는 분산형 데이터베이스 시스템으로 Root DNS로부터 .com DNS(top-level-domain DNS)를 받고,
.com DNS로부터 amazon.com DNS(authoritative DNS)를 찾아 .amazon.com DNS에서 aws.amazon.com IP주소를 최종 획득한다.
DNS 레코드
RR(Name, Value, Type, TTL)의 형식으로 다음의 유형을 지정한다.
● A : 도메인 네임과 IP간의 연결
● CNAME : 도메인 네임의 별칭을 매칭 (1개 이상 가능)
● NS : 도메인에 대한 네임서버 권한을 알려주는 네임서버 레코드
● Alias : Route53의 고유 기능, 도메인 네임&AWS 리소스(EC2, S3..등)을 연결
VPC
CIDR (Classless Inter-Domain Routing)
IP주소는 네트워크 ID + 호스트ID로 구성되어 있다.
CIDR는 네트워크 ID와 호스트ID 주소 범위를 구분하기 위한 표기법으로 BASE IP / subnet Mask로 표기된다.
192.168.0.0/24의 경우
IPv4의 32비트 중에 24비트는 네트워크ID로 mask하고, 나머지 8비트는 호스트ID로 활용한다는 의미이다.
(AWS의 경우, /16~/28의 서브넷 마스크 범위만 허용한다)
CIDR표기 | 서브넷 마스크 | 네트워크 크기(호스트 수) | 사용 가능 범위(예시) |
/8 | 255.0.0.0 | 16,777,214 (A 클래스) | 192.0.0.1~192.255.255.254 |
/16 | 255.255.0.0 | 65,534 (B 클래스) | ~192.168.255.254 |
/24 | 255.255.255.0 | 254 (C 클래스) | ~192.168.0.254 (255는 브로드캐스트 주소) |
AWS 구조
Region
● AWS의 데이터 센터들을 지리적으로 나눈 단위
AZ(availability zone)
● 여러 데이터 센터들을 묶은 단위
● 각 Region에 여러 AZ 구성
VPC(virtual private cloud)
● 나만의 독립된 가상 네트워크망
● 독립적인 하나의 네트워크로 작용하도록 구성
● region단위로 생성되며, 하나의 region에 5개 설계 가능
● VPC CIDR는 다른 VPC나 네트워크와 범위가 겹치면 안됨
(이를 고려하여, /28로 설정하는 것이 좋을 수도)
Subnet
● VPC의 IP주소를 나눠 리소스가 배치되는 물리적인 주소 범위로 VPC IP 범위 내에서 지정
● IP 네트워크 논리적 영역을 쪼개서(subnetting) 만든 하위 네트워크 망
subnetting을 통해 주어진 호스트 수의 내에서 IP 주소를 효율적으로 사용 가능 !
● Public / Private subnet이 존재
● AZ 내부에 존재
IGW (Internet Gateway)
● VPC의 리소스를 인터넷에 연결하도록 허용하는 EC2 인스턴스 혹은 lambda 함수
● VPC는 기본적으로 격리된 네트워크 환경이므로 이를 인터넷과 연결하도록 구현한 통로
Route Table
● 서브넷/gateway 네트워크 트래픽이 어디로 전송되어야할 지 라우팅 규칙을 포함한 테이블
● 각 서브넷에는 각각의 route table이 연결
그런데.... private subnet에서 인터넷 리소스를 요구하는 경우?
NAT Gateway
● Public subnet에 존재
● Private subnet이 외부 인터넷이 필요할 때, 해당 게이트웨이를 거치도록 라우팅 추가
● Elastic IP사용
● 여러 AZ에 생성(다중 NAT Gateway)하여 내결함성 강화 가능
● 비싼 편
Bastion Host
● Public Subnet에 위치하여 public에서 private subnet로의 통신을 도와주는 매개체
● 중계 서버
● SG(security group)의 설정을 통하여 구현
Bastion Host SG - 인터넷에서 제한된 CIDR(외부)로부터 private subnet으로의 접근 허용
EC2(private subnet) SG - Bastion Host의 보안그룹 / Bastion Host의 개인 IP에 대해서 SSH 연결 허용
NACL(Network Access Control List)
● Subnet 단위의 방화벽
● default NACL은 in/outbound에 대해서 모든 요청을 허용
● 규칙마다 숫자(1~32766)을 부여하여 우선 순위를 지정 (낮을수록 우선)
● stateless이기에 inbound로 허용되었더라도 outbound 필터링이 적용된다.
(inbound는 port를 적용해도 outbound는 임의의port가 적용되므로
0.0.0.0 적용 및 well-known port이외의 포트 허용을 적용해야한다!)
+ NACL vs SG
NACL(network access control list) | SG(security group) |
subnet단위로 보안 | 인스턴스 단위 |
Stateless : 트래픽의 허용여부 기억x >> 매번 확인 |
Stateful : 해당 트래픽에 대한 과거 허용여부 확인 >> 아웃바운드에 대해 평가 x |
높은 우선순위먼저 평가 | 모든 규칙이 평가됨 |
Subnet 내의 모든 EC2인스턴스(리소스)에 적용 | EC2/ALB 등 리소스 하나에 적용 |
Allow/Deny 규칙모두 허용가능 (whitelist / blacklist) |
Allow 규칙만 설정 가능 |
VPC Peering
● 두개의 VPC를 연결하여 마치 하나의 VPC에 있는 것처럼 설정
● 피어링을 활성화하고 싶다면 VPC 서브넷의 라우팅 테이블도 통신이 가능하도록 업데이트
● 서로 다른 계정, 서로 다른 리전에서도 가능
● VPC의 CIDR이 겹치면 안됨
● 활성화 : VPC 서브넷의 라우팅테이블도 통신 가능하도록 업데이트 필요
VPC endpoinit
● VPC 내부에 설정 시, AWS 내부 네트워크를 통해 안전하게 AWS 리소스(cloudfront, s3 등)간 연결 가능
'Cloud' 카테고리의 다른 글
CloudFormation (0) | 2025.04.10 |
---|---|
Load Balancing과 Auto Scaling (0) | 2025.04.09 |
S3 & Cloudfront (0) | 2025.03.26 |