IT STUDY LOG

[AWS] 08. 서비스 노출 본문

devops bootcamp 4/클라우드 서비스 운영

[AWS] 08. 서비스 노출

roheerumi 2023. 4. 17. 14:12

# 학습 목표

  • Cloud와 Deployment의 의미를 각각 알고, 서비스를 남에게 배포할 수 있다.
  • 클라우드 컴퓨팅이 무엇인지 설명할 수 있다.
  • 애플리케이션 배포가 어떻게 변화되어 왔는지 이해할 수 있다.
  • AWS의 각 서비스가 어떤 목적에 부합하는지 이해할 수 있다.
  • S3의 목적과, 정적 웹 사이트 배포 방법을 이해할 수 있다.
  • EC2의 주요 용어를 이해할 수 있다. (AMI, 인스턴스, 인스턴스 유형, 스토리지 타입, 퍼블릭/프라이빗 IP)
  • EC2의 인스턴스 시작/중지/종료에 대해 이해할 수 있다.
  • RDS와 EC2에서의 MySQL 사용이 어떻게 다른지 이해할 수 있다.
  • CloudFront의 목적을 이해할 수 있다.
  • Auto Scaling의 특징 및 역할을 알 수 있다.
  • 로드 밸런서 중 ELB, 그 중에서 Application Load Balancer의 목적을 이해할 수 있다.
  • AWS 인프라 중 VPC에 대해서 이해할 수 있다.
  • Route 53의 목적을 이해하고, 도메인을 연결해 HTTPS로 배포할 수 있다.
  • 빌드 및 배포시 필요한 환경 설정을 할 수 있다.
  • 배포 시 발생하는 문제를 이해하고 고칠 수 있다.

 


# 학습 내용

1.  CloudFront

- CloudFront는 전 세계 티어 1,2,3 의 이동통신사와 협력하여 네트워크에 연결된 글로벌 CDN(Content Delivery Network) 서비스

- 저지연성과 고속전송 속성을 지닌 콘텐츠 배포 기능을 제공

- 콘텐츠 사용자와 가까운 지역(엣지 로케이션)에 네트워크망을 구축하고, 지역별 엣지 캐시를 통해 사용자 경험 수준 향상

- 정적/동적 콘텐츠를 지원하며, 사용자 요청은 가장 가까운 엣지 로케이션에서 처리

 

CloudFront의 핵심 개념

엣지 로케이션

- 글로벌 데이터센터 네트워크로 CloudFront는 엣지 로케이션을 통해 콘텐츠를 배포

- 엣지 로케이션은 전 세계 주요 대도시에 위치하며, AWS 리전 시설의 위치와는 다를 수 있음

지역별 엣지 캐시

- 지역별 엣지 캐시는 오리진 웹 서버와 엣지 로케이션 사이에 위치해 사용자에게 직접 콘텐츠를 전송

- 특정 콘텐츠의 인기가 줄어든다면

 > 개별 엣지 로케이션에서는 해당 객체를 삭제해 인기가 많은 콘텐츠를 제공할 수 있는 여유 공간을 확보

 > 지역별 엣지 캐시는 엣지 로케이션보다 높은 수준의 캐싱 능력을 바탕으로 좀 더 오랜 시간 캐싱 데이터를 유지 

- 이와 같은 캐싱 데이터가 존재하면 사용자의 콘텐츠 요청 시, CloudFront는 오리진 웹 서버에 돌아갈 필요 없이 지역별 엣지 캐시로 사용자 요청에 대응하기 떄문에 콘텐츠 제공 성능 향상

- 지역별 엣지 캐시는 CloudFront의 기본 기능이므로 사용자는 별도의 설정 작업을 하거나 비용을 부담할 필요 없음


CloudFront의 활용 시나리오

정적 콘텐츠 캐싱

- CloudFront의 가장 대표적인 활용방식

- 사진, 영상, 자바스크립트, 스타일시트 등의 정적 콘텐츠 전송 속도를 높여주고 사용자는 엣지 로케이션을 통해 요청한 콘텐츠를 제공받음

 

동적 콘텐츠 캐싱

- 네트워크 최적화를 통한 동적 콘텐츠 가속화 기능을 제공

- EC2 서버에서 실행 중인 애플리케이션 또는 웹사이트를 CloudFront와 통합 가능

 

DDoS 공격 대응

- CloudFront는 OSI 모델의 L3, L4, L7을 보호할 수 있는 AWS Shield, WAF를 통합해 DDoS 공격 방어

- TLS 연결 및 서명 URL을 통한 사용자 인증 등의 기능을 제공

 

강화된 보안성

- CloudFront는 SSL(HTTPS)방식의 보안 기능을 제공

- 보안이 강화된 API, SSL/TSL 적용, advanced SSL 기능을 자동으로 적용 가능

- 모든 인프라와 프로세스는 중요 콘텐츠의 보안 수준을 유지하기 위해 PCI, DDS, HIPAA, ISO 규정을 준수


CloudFront의 적용 방식

경로 패턴 매칭

- 사용자는 웹사이트 또는 애플리케이션의 URL 경로 패턴에 따라 다양한 캐시 제어 동작을 설정 가능

(ex) CloudFront가 이미지 뷰어로부터 요청을 받으면 요청 경로는 images/*.jpg와 같은 경로 패턴과 비교해 그에 맞는 제어 동작을 적용

- 사용자는 이와 같은 경로 패턴에 따라 HTTP/HTTPS 프로토콜 설정, 헤어 또는 캐싱 옵션 설정, 쿠키 및 쿼리 문자열 포워딩 설정, 접근 제한등의 방식으로 특정 오리진으로 요청을 전송 가능

 

헤더

- 헤더 값을 통해 요청 헤더를 오리진 캐시로 포워딩 할 수 있으므로, 디바이스의 헤더를 확인한 뒤 그에 맞는 동작을 적용 가능

(ex) 동일한 사이트를 접속한 노트북 사용자와 스마트폰 사용자의 요청에 각기 다른 반응을 제공

 

쿼리(query) 문자열 및 쿠키

- 웹 애플리케이션 중 일부는 오리진으로 정보를 전달하기 위해 쿼리 문자열을 사용

- 쿼리 문자열은 웹 요청의 일부로, ? 기호 다음에 나오며, 하나 이상의 파라미터를 & 기호로 연결해 사용

 

서명 URL, 서명 쿠키

서명 URL

- 정적 콘텐츠를 S3 버킷에 옮긴 뒤에는 CloudFront의 서명 URL 방식을 통해 해당 콘텐츠에 대한 비인가 접근을 방지

- 서명 URL에는 만료일 및 만료 시간 등의 부가 정보가 포함돼 있어 콘텐츠에 대한 접근을 조금 더 세심하게 제어 가능

- 서명 URL을 이용해 웹 서버가 S3 버킷의 콘텐츠에 접근할 수 있는 시간 또는 방식을 제어 할 수 있으며, 사용자가 특정 콘텐츠에 대한 접근을 요청할 경우 접속 시간 제약이 설정된 서명 URL 링크를 전달 받음

서명 쿠키

- 서명 쿠키는 기능상으로는 서명 URL과 거의 동일하며 단지 HTTP 쿠키에 추가 정보를 넣는다는 점이 다름

- 서명 쿠키는 다수 객체에 대한 접근 제어, URL 변경 없이 동일 객체에 대한 접근 제어를 해야할 때 유용

- 작동 방식

① 사용자가 웹사이트에서 인증을 받으면 Set-Cookie 헤더가 사용자 계정에 전달되고, 사용자 디바이스의 쿠키에 적용됨

② 사용자가 제한 객체에 대한 접근을 요청하면 브라우저는 요청에 포함된 쿠키를 포워딩

③ CloudFront가 쿠키 속성을 확인해 접근 허용 또는 차단 여부를 결정


지역 제한 기능

- 사용자가 콘텐츠에 대한 요청을 하면 CloudFront는 사용자의 위치에 상관 없이 콘텐츠를 전송하나, 특정 국가의 콘텐츠 요청을 거부하려면 다음과 같은 지역 제한 기능을 사용할 수 있음

  • 접속 허용 국가 목록인 화이트리스트를 기반으로 요청 콘텐츠에 대한 접근을 허용하는 방법
  • 접속 금지 국가 목록인 블랙리스트를 기반으로 요청 콘텐츠에 대한 접근을 거절하는 방법

오류 처리 기능

- 콘텐츠 요청에 대해 오리진 서버가 HTTP 4xx, 5xx 상태 코드를 반환하면 사용자에게 커스텀 오류 페이지를 제공 가능

(ex) 커스텀 오리진 서버가 사용 불능 상태고, 5xx 응답을 반환하면, CloudFront는 S3에 호스팅된 정적 페이지를 제공 가능

-  최소 유지시간(TTL)을 정의해 CloudFront 캐시 오류를 얼마나 오래 유지 할지 조절 가능

 

2. Route 53

- 관리형 DNS(Domain Name Service) 서비스

- 사용자의 요청을 EC2 인스턴스, ELB 로드밸런서, S3 버킷 등 AWS 내의 인프라에 연결시켜주며, AWS 외부의 인프라에도 연결 

- Route53은 리전과 독립적으로 작동하므로 다수의 리전을 교차해 연결 가능 + 다수의 리전과 VPC간의 DNS 주소변환도 가능

- Route53은 알리아스(Alias Records, 또는 존 에이펙스 Zone Apex)를 지원

 > 존 에이펙스 :  웹사이트의 루트 도메인을 의미하며, CloudFront를 이용해 루트 도메인으로 콘텐츠를 전송 가능 (ex. http://www.example.com 주소와 http://example.com 주소 모두 동일한 페이지로 연결 가능)

 > DNS 명세서에는 CNAME이 아닌 IP주소(A주소 기록)를 가리키는 존 에이펙스를 입력해야 하며, 이때 Route53의 알리아스 기록을 사용하면 됨

- 퍼블릭 DNS 기록 관리 기능 외에도 도메인 등록, 신규 도메인을 위한 DNS 생성, 기존의 도메인에 DNS 기록 전송 등 다양한 기능을 제공

Route53이 지원하는 주요 DNS 기록 타입(참고 레퍼런스)

  • A(주소기록)
  • AAAA(IPv6 주소기록)
  • CNAME(캐노니컬 네임 기록)
  • CAA(인증 권한 증명)
  • MX(메일 교환 기록)
  • NAPTR(네임 권한 포인터 기록)
  • NS(네임 서버 기록)
  • PTR(포인터 기록)
  • SOA(권한 시작 기록)

 

지원하는 라우팅 정책

가중치 라운드 로빈(Weighted Round Robin)

- 하나의 웹사이트를 위한 여러 대의 웹서버처럼 동일한 기능을 수행하는 여러 개의 리소스를 보유할 경우 Route53을 이용해서 리소스 별로 트래픽을 분산 가능

- 가중치 라운드 로빈은 이제 막 소프트웨어 설정을 변경한 서버에 소량의 트래픽만(새 서버세 10%, 기존 서버에 90%를 분산)을 보내 성능 및 안전 여부를 확인 가능

 

지연 기반 라우팅(Latency-Based Routing)

- 동일한 기능을 수행하는 다수의 EC2 기반 데이터 센터에 리소스를 확보하고 있을 경우 특정 리소스에 대한 DNS 쿼리 요청 시, Route53을 이용해 신속하게 응답할 수 있는 방법

- 해당 라우팅 방법을 통해 글로벌 사용자를 확보한 애플리케이션의 성능 향상 가능 

- 다수의 AWS 리전에서 실행되는 애플리케이션을 Route53 엣지 로케이션에 연결해 최저 지연 시간으로 글로벌 사용자에게 서비스를 제공

 

장애 대응 라우팅(Failover Routing)

- 능동적 혹은 수동적 페일오버 즉, 장애 대응을 통해 가용 리소스 쪽으로 트래픽을 라우팅하고 싶을 때 적합

- 특정 리전에서 모든 리소스를 제공하는 상황에서 해당 리전에 장애가 발생하면, 장애 대응 라우팅을 통해 정상적으로 작동중인 리전으로 트래픽을 라우팅 

 

지역 DNS 라우팅(Geo DNS Routing)

- 사용자의 지역에 따라 DNS 쿼리에 응답하도록 하는 방법

- Route 53의 지역 DNS 라우팅은 요청 발신지를 기준으로 가장 가까운 엔드포인트로 트래픽을 라우팅하며, 지역에 특화된 콘텐츠 서비스를 제공하거나 특정 지역에서 금지 규정이 있는 콘텐츠는 배포되지 않도록 설정 가능

 

# References

https://aws.amazon.com/ko/cloudfront/

 

CDN 서비스 | CloudFront | Amazon Web Services

 

aws.amazon.com

https://aws.amazon.com/ko/route53/

 

Amazon Route 53 | DNS 서비스 | AWS

개발부터 기업 수준 프로그램까지 적절한 지원을 적시에 받을 수 있습니다.

aws.amazon.com

https://aws.amazon.com/ko/blogs/korea/route53-latency-based-routing/

 

Amazon Route53 지연 속도 기반 라우팅 활용하기 | Amazon Web Services

AWS는 전 세계에 11개의 리전(Region)과 30개의 가용 영역(Availability Zone)으로 글로벌 서비스를 제공함으로써, 각 국가 또는 지역 사용자에게 가장 빠른 서비스를 제공합니다. 뿐만 아니라 Amazon CloudFro

aws.amazon.com

 

'devops bootcamp 4 > 클라우드 서비스 운영' 카테고리의 다른 글

[AWS] 09. 컨테이너 배포  (1) 2023.04.19
[AWS] 08. 보안  (0) 2023.04.18
[AWS] 07. 수평확장  (0) 2023.04.17
[AWS] 06. VPC  (0) 2023.04.17
[AWS] 05. RDS 관련 개념  (0) 2023.04.14
Comments