Basic Network Concepts
IP 주소
- 네트워크에 연결된 각 장치에 할당된 각 고유한 번호
- 인터넷에서 각 장치를 식별하고 통신할 수 있다.
- 가장 많이 사용되는 주소 체계 → IPv4
- 4개의 숫자로 구성, 0~255까지의 값을 가질 수 있다.
- 각각의 숫자는 8bit를 가질 수 있다.
- 약 43억개의 고유 주소 제공 가능
CIDR 표기법
- 주로 IP주소 뒤에 슬래시와 함께 네트워크 접두사의 길이를 나타내는 숫자를 붙여서 사용
- e.g. 192.168.1.0/16 → 16 = 네트워크 접두사의 길이
- 16개의 비트가 네트워크를 나타내는 접두사, 나머지 16개의 비트 → 호스트에게 할당된 주소
- 예약된 IP 주소
- 전체가 0인 주소 → 네트워크 주소
- 전체가 1인 주소 → 브로드캐스트 주소
DNS (Domain name service)
- 도메인 이름 → IP주소로 변환해주는 역할
- 인터넷의 전화번호부와 같은 역할, 도메인 이름과 서버를 연결해준다.
- DNS가 도메인네임을 보고 해당 서버의 IP주소로 연결해준다.
- 이를 통해 기억하기 쉬운 도메인 이름을 사용하여 웹사이트에 접근할 수 있다.

네트워크 방화벽

- 네트워크의 나가고 들어가는 트래픽을 모니터링하고 제어하는 장치
- 네트워크를 보호하기 위한 보안 규칙을 강제하여 무단 접근 및 위협으로부터 네트워크를 보호 가능
- 정해진 보안 규칙을 바탕으로 트래픽을 허용하거나 차단한다.
- 특정 IP주소나 특정 포트를 차단 가능 → 네트워크 내부로의 무단접근 방지, 외부로의 민감한 정보 유츨 방지 가능
라우터

- 컴퓨터 네트워크 간의 데이터 패킷을 전달하는 장치
- 인터넷 트래픽을 관리하고 방향을 설정
- 데이터를 출발지에서 목적지까지 호율적으로 전달하기 위한 최적의 경로를 결정하는 장치
- 라우터는 네트워크 인터페이스를 통해 데이터 패킷을 수신하고, 패킷에는 출발지 주소와 목적지 주솟가 포함되엉 씨아.
- 라우터는 이 정보를 바탕으로 라우팅 테이블을 조회, 라우팅테이블을 통해 최적의 경로를 설정 → 패킷을 다음 홉으로 전달한다. → 패킷이 최종 목적지에 도달할때까지 반복된다.
- 라우터는 주기적으로 라우팅 테이블을 업데이트해서 최신 경로 정보를 유지한다.
라우팅테이블

- 라우터 내의 데이터 테이블로 네트워크 목적지로 가는 경로를 나열해주는 라우터를 도와주는 테이블
- 라우팅 테이블은 각 목적지까지의 경로와 해당 경로의 매트릭을 포함하고 있다.
- 매트릭은 데이터가 이동할 최적 경로를 결정하는 데 도움을 준다.
- 이를통해 데이터 패킷이 목적지까지 효율적으로 도달할 수 있도록 최적 경로를 선택할 수있다.
- 라우팅테이블에는 목적지 IP주소, 인터페이스 등이 포함된다.
로드밸런서

- 들어오는 네트워크 트래픽을 여러 서버에 분산시키는 장치
- 어플리케이션의 가용성,신뢰성을 높여준다.
- 예를 들어 웹사이트에 많은 사용자가 접속할 때 접속 요청을 여러 서버에 분산시켜 과부하를 방지한다.
- 사용자는 빠르고 안정적인 서비스 이용 가능
- 서버의 장애가 발생했을 때 트래픽을 자동으로 다른 서버에 우회시켜 서비스의 연속성을 보장한다.
Basic Network Service
AWS Networking Service Overview (리전 > VPC > AZ > Subnet)

- 리전 → VPC
- 가용영역 → Subnet → Private / Public
- 각각의 서브넷에는 EC2와 같은 인스턴스가 있을 수 있음
- VPC에서 인터넷을 접속하기 위한 인터넷 게이트웨이
- private subnet의 경우, 인터넷으로 바로 연결되지 못하는데 이를 도와주기 위한 NAT 게이트웨이
VPC (Virtual Private Cloud)

- 가상 사설 네트워크 → 클라우드 환경에서 프라이빗 네트워크를 구성할 수 있도록 해주는 서비스
- VPC를 생성하려면 CIDR 사용하여 IPv4 or IPv6 주소범위를 지정해야한다.
- 각 계정 및 리전 당 최대 5개의 VPC를 생성할 수 있다.
- VPC 프라이빗 IP 범위 → 셋 중에 선택
- 10.0.0.0/8
- 172.16.0.0/12
- 192.168.0.0/16
서브넷

- 특정 리전 내의 가용 영역 수준에서 분할되는 분할 네트워크
- 하나의 서브넷으로 두 개의 가용영역에 걸쳐 사용하는 것은 불가하다. 각 서브넷은 완전히 하나의 가용영역 내에 있어야 하며, 여러 영역에 걸쳐 있을 수 없다.
- VPC의 CIDR 블록에서 iP 범위를 지정하여 생성되며, 각서브넷의 IP 범위는 서로 겹칠 수 없다.
- 서브넷은 VPC보다 네트워크를 더 작은 범위로 분할하여 관리할 수 있게 해주며
- 네트워크 트래픽을 효율적으로 분산하고 보안을 강화할 수있다
- 5개의 IP주소가 예약되어 사용됨
- 192.168.10.0 : Network address
- 192.168.10.1 : Reserved for the router
- 192.168.10.2 : Reserved for DNS
- 192.168.10.3 : Reserved for future use
- 192.168.10.255 : Reserved as the broadcast address
인터넷 게이트웨이

- VPC가 인터넷과 통신할 수 있게 해준다.
- 인터넷 게이트웨이는 VPC에 연결되어있어야한다. ⇒ VPC 내의 리소스들이 인터넷과 연결될 수 있다.
- 퍼블릭 서브넷 라우팅 테이블에는 인터넷게이트웨이가 포함되어야한다. → 퍼블릭 서브넷 내의 리소스들이 인터넷과 연결될 수 있다.
- 0.0.0.0/0 → Internet Gateway
NAT(Network Address Translation) 게이트웨이

- EC2 인스턴스가 있는 프라이빗 서브넷은 인터넷과 직접 통신할 수 없음
- 하지만 프라이빗 서브넷의 인스턴스들이 인터넷이 필요할 때도 있음 ⇒ NAT 게이트웨이
- (인터넷에서 업데이트를 다운로드하거나 외부리소스에 접근해야하는 경우)
- NAT 게이트웨이는 특정 퍼블릭 서브넷에 생성 → 프라이빗 서브넷의 인스턴스가 인터넷에 접근해야할 때 NAT 게이트웨이를 통해 간접적으로 인터넷과 통신할 수 있음
- 이 과정에서 인터넷의 프라이빗 IP주소는 공개되지 않음 → 보안 유지 가능
- NAT 게이트웨이는 프라이빗 서브넷에 있는 인스턴스가 인터넷과 안전하게 통신할 수 있도록 도와줌 ⇒ 보안 유지, 외부 통신 원활
Network Security
Security Group

- Security Group : 인스턴스와 ENI(Elastic Network Interface)를 보호하기 위한 Stateful 방화벽
- Stateful 방화벽 : 인바운드 트래픽을 받았을 때 해당 트래픽에 대한 정보를 기억해놨다가 아웃바운드를 자동으로 허용해줄 수 있는 지능적인 방화벽
- Stateless 방화벽 = 상태 비저장 방화벽 (https://omoknooni.tistory.com/m/64)
- 블랙리스트 기반으로 트래픽 허용
- 인바운드, 아웃바운드 트래픽의 Rule을 설정해주어야한다.
- 패킷 전체를 검사하지 않고, 패킷의 헤더만 검사해 Stateful보다 처리속도가 빠르다.
- Stateful과는 달리 Rule이 적용되는 우선순위를 지니고 있어 각 규칙별 평가할 순서를 지정해야한다.
- Stateful 방화벽 = 상태 저장 방화벽
- 화이트리스트 기반으로 트래픽 허용
- 인바운드로 패킷(Request)가 들어올 때, 이에 대한 세션이 생성되고, 세션에 출발지/목적지 IP와 포트가 테이블에 저장된다.
- 이후 Response 패킷이 방화벽으로 들어올 때, 세션 테이블에서 응답 패킷과 일치하는 정보를 찾아 존재하는 경우 응답패킷을 바로 내보내준다.
- 이때, 아웃바운드 정책과 상관없이 세션 테이블에 일치하는 정보가 있는지 확인한 후 응답을 내보내준다.
- stateful 방화벽은 stateless 방화벽보다 보안성이 우수하다
- ⇒ Security Group은 Stateful 방화벽이다.
- 시큐리티 그룹은 각 ENI 혹은 인스턴스에 최소 하나 이상 필요하며 네트워크 트래픽을 제어하는 중요한 역할을 한다.
- 시큐리티 그룹에서는 차단은 없고, 오직 허용만 존재 → 화이트리스트
- 기본적으로 모든 인바운드는 허용이 없어서 모든 인바운드 트래픽이 차단이 되고, 모든 아웃바운드 트래픽은 허용된다
방화벽에서의 Stateful VS Stateless
방화벽은 설정한 Rule에 따라 진입되는 패킷을 Pass할 것인지, Drop할 것인지 필터링해주는 유해한 트래픽을 차단하기위한 하드웨어 내지 서비스이다. 대부분의 방화벽은 정책 기반으로 트래픽을
blog.omoknooni.me

- Inbound 규칙
- 만약, 인바운드로 들어오는 모든 IP를 허용하고 싶음 → 0.0.0.0/0 허용 규칙 추가
- 만약, 10.0.0.0/16 허용 = AWS 사설 네트워크 허용
- ⇒ 인바운드는 모든 트래픽이 차단 - 특정 포트에 특정 아이피를 허용하려면 인바운드 규칙을 주어야한다.
- Outbound 규칙
- Destination을 다른 그룹으로도 설정할 수 있음
NACL (Network Access Control List)

- VPC와 서브넷을 보호하기 위한 네트워크 레벨의 Stateless 방화벽
- 시큐리티 그룹은 Stateful 방화벽이었음
- Stateless 방화벽이기 때문에 상태를 저장하지 않음 → NACL은 명시적인 인바운드 및 아웃바운드 규칙을 필요로 함
- 이를 통해 네트워크 레벨에서 세밀한 보안 설정을 할 수 있음
- NACL은 허용과 거부 규칙을 모두 지원함
- 각 규칙은 우선순위 규칙에 따라 평가, 낮은 번호부터 순차적으로 적용됨 (1순위 → 2순위 → ..)
- 이때 첫 번째로 일치하는 규칙이 적용되므로, 규칙의 순서가 매우 중요하다
|
Security Group
|
NACL
|
보호대상 수준
|
인스턴스, ENI
|
VPC, 서브넷
|
방화벽
|
Stateful
|
Stateless
|
규칙
|
허용만 존재
|
허용과 거부 모두 지원
|
인바운드 규칙
|
허용하고자하는 IP추가 (모든 IP 허용 → 0.0.0.0/0)
|
|
아웃바운드 규칙
|
모든 아웃바운드 트래픽은 허용됨
|
명시적으로 규칙지정 필요
|
이외 특징
|
각 ENI, 인스턴스에 하나 이상 필요
|
우선순위 규칙
|
EIP, ENI

- EIP = Elastic IP
- 고정 퍼블릭 주소로, EC2 인스턴스에 할당할 수 있다.
- EC2 인스턴스의 기본 퍼블릭 IP를 할당하면 동적 IP가 되어, 재시작할때마다 변경될수고, 프라이빗 IP는 인스턴스를 재시작해도 변하지 않는다.
- 이때, 고정된 Public IP가 필요할때는 EIP를 사용한다.
- EC2 인스턴스에 고정된 퍼블릭 IP를 제공하며 인스턴스에서 분리해서 다른 인스턴스에 재할당 가능
- ENI = Elastic Network Interface → Interface Endpoint
- IP주소와 MAC주소를 보유
- ENI 하나 당 Private IP + 하나의 Public IP(opional)
- ENI는 Virtul NIC(Network Interface Card) = EC2의 가상의 랜카드
- EC2는 반드시 하나 이상의 ENI가 연결되어 있음
- 제일 처음 EC2를 생성할 때 Primary ENI가 생성되어 연결됨
- 즉, 하나의 EC2 인스턴스에 여러개의 ENI를 연결할 수도 있다.
- 네트워크 인터페이스 엔드포인트로 사용될 수도 있다.
- ENI는 인스턴스간의 네트워크 트래픽을 분리하거나 여러 IP주소를 관리할때 유용하게 사용할 수 있다
AWS WAF

- 웹어플리케이션 방화벽으로, http 혹은 https 요청을 모니터링하고 방화벽 기능 제공
- WAF는 https 를 직접 제공하지는 않는다. https를 활성화하려면 CloudFront, ALB, SSL 인증서와 같은 서비스가 필요하다.
- 네트워크 계층에 대한 방어는 제공하지 않는다 → NLB(Network Load Balancer)에 대한 방어X
- AWS CloudFront 배포, Amazon API Gateway REST API, Application Load Balancer(ALB), AWS AppSync GraphQL API, Amazon Cognito 사용자 풀에 대한 방어 제공
- 웹어플리케이션을 다양한 공격으로부터 보호할 수 있다.
- SQL injection, XSS 공격으로부터 웹어플리케이션을 보호한다.
- SQL injection : 악성 SQL 쿼리를 주입하여 데이터베이스를 조작하는 공격
- XSS 공격 : 악성 스크릡트를 주입하여 사용자 브라우저에서 실행되는 공격
- 웹 Access Control List 규칙을 적용하여, 웹 요청을 허용하거나 차단한다.
- 이를 통해 사용자는 원하는 보안 정책을 설정하고 적용할 수 있다.
- 예를 들어, 특정 IP주소에서 접근을 차단하거나 특정 패턴 요청을 차단할 수 있다.
- AWS Firewall Manager
- 여러 계정 및 리전에 걸쳐 AWS WAF 규칙과 보안 정책을 중앙에서 관리할 수 있다.
AWS Shield

- AWS의 디도스 공격 방어 서비스
- 네트워크 트래픽을 지속적으로 모니터링 및 분석하여 디도스 공격으로부터 보호한다.
- 비정상적인 트래픽 패턴을 감지한다.
- 네트워크 및 전송 계층 DDoS 공격으로부터 방어
AWS Shied Advanced
AWS Shild Advanced = WAF + Shield Standard
- EC2, Elastic Load Balancing(ELB), CloudFront, AWS Global Accelerator, AWS Route53 리소스에서 실행되는 애플리케이션을 목표로하는 공격에 대해 더 높은 수준의 보호를 구현한다.
- DDoS, XSS, SQL Injection에 대한 공격 방어
AWS WAF vs Shield Standard vs Shield Advanced
- WAF - XSS, SQL injection → 어플리케이션계층에 대한 방어 → API Gateway
- Shield Standard - DDoS → 네트워크 및 전송 계층에 대한 방어 → NLB
- Shield Advanced(WAF+Shield Standard) - XSS, SQL injection, DDoS → 네트워크 및 전송계층 + 어플리케이션계층에 대한 방어 → NLB, API Gateway
Load Balancer - ELB

- 들어오는 트패픽을 여러 인스턴스 및 IP주소에 균등하게 분배하여 고가용성과 헬스체크를 제공, TLS 종료를 처리해주는 로드밸런서 서비스 ⇒ 고가용성 확보 가능
어플리케이션 로드밸런서인 ALB
- http, https 프로토콜 지원
- OSI 모델의 7계층(어플리케이션 계층)에서 동작
- http, https 요청 경로에 따라 로드밸런싱을 수행
“Application Load Balaner 뒤의 Amazon EC2 인스턴스에서 웹어플리케이션을 호스팅”한다는 것
= 웹어플리케이션이 EC2 인스턴스에서 실행되고 있으며, ALB가 이를 통해 사용자 요청을 EC2 인스턴스로 분배한다는 것을 의미
왜 동적 데이터와 연결되는가?
→ 웹어플리케이션은 보통 동적 데이터를 생성한다. 예를 들어, EC2 인스턴스에서 실행되는 웹 서버(Apache, Nginx 등)은 사용자의 요청에 따라 데이터베이스를 실행하거나, 서버 측 스크립트(Node.js 등)를 처리하여 사용자 요청에 맞는 콘텐츠를 실시간으로 생성한다.
→ 따라서 ALB를 통해 EC2 인스턴스에서 제공되는 데이터는 사용자 요청에 따라 실시간으로 서리 및 제공되므로 “동적 데이터”라고 해석된다.
- 네트워크 로드밸런서 NLB
- TCP, UDP, SSL, TLS 프로토콜을 지원
- OSI 모델의 4계층(전송계층)에서 동작
- IP주소와 TCP 포트를 기반으로하는 로드밸런싱을 수행
Network Connection
VPC Peering

- VPC간의 통신을 지원함 (프라이빗 AWS 네트워크를 통해)
- VPC끼리 1:1 connection을 지원한다. 이때, CIDR 블록이 오버랩되면 안된다.
- VPC 연결에 유용하지만, 많은 VPC 연결에는 추천하지 않는다. (Transit Gateway)
💡 유효한 IP주소 범위 선택 문제
- 동일한 IP주소, 범위가 겹치는 IP주소 → 선지 삭제
- 맨 뒤 prefix가 32 → VPC는 Private subnet, Public subent에 할당하기위해 IP주소가 1개이면 안됨 → 선지 삭제
- 연결하는 IP주소들이 아예 다른 숫자들을 가지고 있어도 상관없음
AWS Direct Connect

- AWS와 온프레미스를 연결하는 서비스
- ‘전용선’을 AWS에서 지원해주는 서비스
- 실제 물리적인 전용선을 설치하여 AWS와 온프레미스를 연결하는 서비스
- 전용선 설치를 고객이 직접 통신 공급자를 통해 받을 수도 있고, AWS 파트너 서비스를 통해서 활용할 수도 있다.
- DX Location : AWS에 의한 전용선 공급자
- 전용선을 설치한 후에, AWS 서비스와 실제로 네트워킹을 연결하기 위해서는 VIF가 필요하다.
- Public VIF : public IP 연결을 필요로 하는 S3, DynamoDB 등의 리소스를 연결하는 VIF
- Private VIF : VPC와 연결하고자하는 VIF
- Transit VIF : Transit Gateway와 연결하고자하는 VIF
- 각 연결하는 리소스에 따라 다른 VIF를 사용한다.
- Virtual Private Gateway와 함께 사용할 수 있다.
Transit Gateway

- VPC나 온프레미스 환경에서 AWS VPC와 연결할 때 사용되는 서비스
- 5000개의 VPC까지 연결이 가능하고, VPC, VPN, DIrect Connect도 같이 연결할 수 있다.
- 이를 통해 네트워크 연결 관리를 쉽게 할 수 있다.
VPC Endpoint
- AWS 안에있는 서비스들은 굳이 인터넷을 통해 다른 AWS 서비스로 연결되는 것은 매우 비효율적
- Gateway Endpoint
- S3, DynamoDB → S3의 게이트웨이 엔드포인트는 무료
- 서로 다른 VPC가 AWS 네트워크 안에 있을 때, Private subnet 내에 있는 EC2가 다른 VPC의 S3에 접근하고자 한다. 이때 사용하는 것이 gateway endpoint
- EC2는 프라이빗 서브넷에 있기 때문에 라우팅 테이블을 통해 게이트웨이 엔드포인트까지 접근해야한다.
- 그 다음, 게이트웨이 엔드포인트는 다른 VPC에 있는 S3에 연결을 해줄 수 있는 엔드포인트를 제공한다.
- 외부 인터넷으로 나가지 않고도 다른 VPC 리소스에 접근이 가능하게 해준다.+) Direct Connect는 AWS 서비스와 온프레미스 네트워크를 연결하는 데에 사용된다. (EC2-S3 간의 데이터 전송은 AWS 내부 네트워크에서 처리될 수 있기 때문에 VPC Endpoint를 쓰면 된다.)
- Interface Endpoint
- ENI의 privateIP를 붙여서 사용하는 형식 → S3, Cloud watch, SNS, System Manager, Kines, KMS, ELB
- ENI와 같이 사용해야한다. 해당 EC2에 ENI를 하나 붙이고, 인터페이스 엔드포인트를 간으하게 하는 것은 AWS Private Link 서비스를 같이 사용해야한다. 다른 VPC에 있는 ELB 서비스에 접속해서 로드밸런싱 되어있는 EC2 서비스와 연결하고자 한다.
- 인터페이스 엔드포인트를 연결해주는 것이 AWS Private Link임
AWS Private Link(VPC Endpoint Service)
- 퍼블릭 인터넷에 트래픽을 노출하지 않고도 AWS 서비스간에 안전한 비공개 연결을 제공하는 서비스
- 키워드:
- 사설 인스턴스(NAT) 대신 사설로 액세스하기 위함. VPC 엔드 포인트를 작동하여 인터넷을 통과하지 않고 연결 제공.
- SNS에 액세스하기 위해서는 2가지 방법 존재
- NAT Gateway : 인터넷 게이트웨이 - NAT Gateway – EC2 - VPC Endpoint - SNS를 거침,
- VPC 엔드 포인트 : 엔드 포인트를 생성해 EC2 인스턴스에 연결 EC2 – ENI – SNS를 거침).
- 엔드 포인트에는 2가지 타입이 존재 (Interface Endpoint – 사설 서브넷에 ENI를 프로비저닝, Gateway Endpoint – 라우팅 테이블을 대상으로 사용하므로 게이트웨이를 프로비저닝하며 S3, DynamoDB 지원).
- VPC 엔드 포인트에 문제가 생길 것을 대비해 VPC 내의 DNS 설정 해상도 활성화와 VPC 테이블 확인 필요. 무차별 대입 공격 및 분산 서비스 거부 공격과 같은 위험에 대한 노출이 줄어듦.
- 서비스 VPC에 애플리케이션이 있고 고객 VPC에 소비자 애플리케이션이 있어 서비스를 노출하려면 고객 VPC에서 생성한 ENI를 PrivateLink를 통해 네트워크 로드 밸런서와 연결하여 서비스 VPC와 통신.
- 원하는 방향에서만 연결을 시작하도록 설정할 수 있음
VPN
- Direct connect와 비교되는 서비스
- 전용선을 설치하지 않고, 기존에 있던 인터넷 위에서 전용선처럼 사용할 수 있는 가상네트워크를 만들어주는 서비스
- 온프레미스와 AWS 서비스가 연결될 수 있도록 도와주는 서비스
- 인터넷 위에서 통신하는 서비스 → 인터넷 컨디션에 따라 속도 차이 발생
- 속도가 중요한 서비스에는 추천 X
- Direct Connect에 비해 저렴한 가격을 원하는 서비스에는 추천 O
- AWS Site-to-Site VPN
- 회사의 온프레미스 네트워크와 AWS VPC 간의 지속적인 연결 지원
- 다이렉트 커넥트가 동작하지 않을 때 사용하기도 한다.
- AWS Client VPN
- 임시 디사이별 연결을 위한 서비스
DNS Service
AWS Route 53
- DNS역할 + 리전 레벨의 고가용성 제공
- route53에 연결되어있는 리소스들의 헬스체크
- 라우팅 타입 - Simple Routing, Weighted Routing, Geolocation Routing, Latency-Based Routing, Failover Routeing, Multi-Value Answer Routing
Simple Routing

- IP가 하나 매핑되는 구조 (가장 단순한 구조)
- e.g. metacode.com → 해당되는 IP주소를 매핑 → 해당 IP 주소가 연결되어 있는 ELB로 연결 → 들어온 트래픽을 EC2 인스턴스에 분배
Weighted Routing

- 가중치 라우팅
- e.g. metacode.com → X.X.X.X 로 라우팅할지, Y.Y.Y.Y로 라우팅할지 미리 선정해놓은 가중치에 따라 트래픽을 분배하는 라우팅 방법
- 리소스가 적은 곳에 가중치를 적게 부여, 리소스가 많은 곳에 가중치를 높에 부여하면 고가용성 확보 가능
Geolocation Routing

- 요청한 유저의 Location을 따라서 해당 리전의 IP를 반환해주는 서비스
- e.g. metacode.com을 Korea에서 입력 → Korea에 있는 ELB 서비스에 연결
Latency-Based Routing (지연 베이스 라우팅)

- 지연베이스 라우팅
- 저지연성을 확보하기 위해 가장 짧은 응답이 오는 인스턴스의 IP를 반환하여 연결해주는 서비스
- e.g. metacode.com → X.X.X.X 의 지연이 Y.Y.Y.Y의 지연보다 적다면, X로 연결하여 연결속도 향상 가능
Failover Routeing

- 장애를 대비한 라우팅
- 평소에는 프라이머리로 라우팅하고 있다가, 프라이머리 인스턴스에 장애가 발생하면 스탠바이 인스턴스로 라우팅을 해준다.
Multi-Value Answer Routing

- ELB가 붙어있지 않지만, ELB가 있는 것처럼 작동한다.
- 라우트53에서 랜덤하게 연결되어있는 IP를 반환해준다. 이때 랜덤한 IP는 헬스체크 후에 정상적인 IP만 반환하기 때문에 장애에 대비하여 고가용성을 높일 수도 있다.
Content Delivery
Amazon CloudFront
- CND(Cloud Network Delivery)서비스
- 전세계의 400개가 넘는 엣지 로케이션에서 컨텐츠를 캐싱하여 사용자에게 빠르게 전달해주는 서비스
- 정적 리소스를 빠르게 전달하는데 큰 강점이 있다.
- 동적 데이터도 CloudFront를 통해 전달하게 되면 캐싱은 안되더라도 빠르게 배포할 수 있다.
- AWS CloudFront 에서는 보안 기능인 AWS 실드(디도스 방지)와 AWS WAF을(SQL Injection, XSS 방지) 지원한다. + 정적 및 동적 콘텐츠 모두에 적용 가능
- 지리적 제한 서비스 → 특정 국가에만 캐싱된 컨텐츠를 볼 수 있도록 설정할 수도 있다.
- 객체 무효화 서비스 → 캐시된 컨텐츠를 삭제하거나 업데이트하는 과정.
- 여러 엣지 로케이션에 콘텐츠를 캐싱하여 사용자에게 빠르게 제공할 때, 캐시된 컨텐츠를 업데이트해야할 때 사용한다.
- 객체 무효화 방법
- 캐시가 자동으로 만료되도록 설정하는 TTL 만료 방식
- 헤더를 통해 변경된 파일만 가져오는 방법
- 객체이름을 바꾸는 방법
- 명시적으로 무효화하는 방법
- CloudFront의 아키텍처
- 오리진 서버 → 원본 컨텐츠를 호스팅하는 서버 → 웹사이트의 HTML파일, 이미지, 동영상 등의 파일 저장
- AWS S3 버킷, EC2 인스턴스, HTTP 서버 또는 외부의 다른 서버를 오리진 서버로 지정할 수 있다.
- 클라우트 프론트는 전 세게에 걸쳐 분산된 엣지 로케이션에 오리진 서버로부터 전달받은 컨텐츠를 캐시에 저장한 후 사용자에게 전달하여 전송 속도를 높일 수 있다.
- 사용자가 요청을하면→ 엣지 로케이션에서 요청된 컨텐츠가 이미 캐시되어있는지 확인2) → 캐시안되어있다면 cache miss → 오리진 서버에 요청하여 데이터를 받아 다시 엣지 로케이션에 캐시
- 1) → 캐시되어있다면 cache hit → 바로 응답
- → 클라우드 프론트는 사용자의 요청을 가장 가까운 엣지 로케이션에 라우팅한다.
- 오리진 서버에 대한 부하를 줄이고, 컨텐츠 전달 속도를 높일 수 있다. 이를 통해 사용자 경험을 개선하고 서버 비용 절감 가능
CloudFront + S3 ⇒ OAI, OAC
- S3 + CloudFront를 사용하는 상황에서 S3 에 직접 액세스하는 것을 막으려면 OAC 또는 OAI를 사용할 수 있다.
- OAI (Origin Access Identity)
- CloudFront와 S3 버킷에 대한 접근을 프라이빗하게 연결하는 기능
- = CloudFront만 S3의 파일에 접근할 수 있도록 설정하는 안전 장치
- 다른 사용자들이 S3 버킷의 URL로 직접 접근하지 못하고, CloudFront를 통해서만(S3 버킷에 접근할 수 있는 특수 사용자만) 콘텐츠를 접근하게 디어 보안이 강화된다.
- OAC(Origin Access Control)
- OAI의 업그레이드 버전으로, IAM Role을 사용해 더 세부적이고 유연한 보안 설정이 가능하다.
AWS Global Accelator

- 전세계의 AWS 네트워크를 사용하여 클라이언트 접근을 더 빠르게 만들어준다.
- 캐싱서비스는 아니고, 요청을 할 서버가 거리적으로 멀리 있다면 많은 네트워크 장비를 거쳐야 함. 이때 AWS Global Accelator를 사용해서 AWS의 네트워크를 활용 → 네트워크 전송 효율 높일 수 있다.⇒ 애플리케이션의 가용성을 높인다.
- ⇒ 공용 인터넷을 거치는 대신 가장 가까운 엣지 로케이션과 통신한 후 내부 AWS 네트워크를 거쳐 트래픽 전송.
- AWS Global Accelator 엔드포인트 까지 온다면, 엔드포인트가 AWS 네트워크 통해 원본 서버까지 좀 더 빠르게 접근 가능
- AWS Global Accelator에서는 고정 IP주소를 할당해줄 수 있음 → 이 IP를 통해 접속이 가능하고, 이 IP주소는 AWS 네트워크를 통하기 때문에 응답 속도도 빠르다
- 이를 통해 트래픽 관리도 용이하다
- AWS Shield를 통해 DDoS 보호를 자동으로 받음.
- 게임, IoT, Voice over IP나 글로벌하게 고정 IP를 요구하는 HTTP를 사용할 때 성능 향상. TCP/UDP 상의 다양한 애플리케이션의 성능을 향상.
'SAA-C03' 카테고리의 다른 글
AWS Certification 자격증 등록번호 확인하는 방법 (Validation number) (0) | 2025.01.27 |
---|---|
[SAA-C03] 3. Database (0) | 2024.12.26 |
[SAA-C03] 2. Storage (3) | 2024.12.20 |
[SAA-C03] 1. Compute & Container & Serverless (3) | 2024.12.20 |
[SAA-C03] 0. What is AWS? (0) | 2024.12.20 |