ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 2. 네트워킹과 컨텐츠 전송
    Technique/AWS 2021. 4. 12. 23:31
    반응형

    CloudFront

    Amazon CloudFront는 HTML 파일이나 CSS, 이미지, 동영상과 같은 정적 콘텐츠 등을 캐쉬화 하여 오리지널 서버를 대신하여 전송하는 CDN(Content Delivery Network) 서비스이다.

    AWS에는 전세계 120여 곳의 엣지 로케이션이 존재하며, CloudFront를 사용할 경우 이용자로부터 가장 가까운 엣지 로케이션에서 콘텐츠를 고속으로 전송할 수 있다. 이미지나, 동영상 등 파일 사이즈가 큰 콘텐츠에 접근할 경우, 오리지널 서버의 부하가 높아진다. 서버의 부하가 높아질 경우 서비스의 안정된 공급이 힘들게 되며, 이는 이용자의 이용에 지장을 줄 수 있다. CloudFront를 사용하는 것으로 서버의 부하를 줄이고, 안정적인 서비스를 제공할 수 있기 때문에 서비스의 제공자, 이용자 모두에게 이익이 되는 시스템의 구축이 가능하다.

    CloudFornt의 백엔드

    CDN이기 때문에 원본이 되는 컨텐츠를 저장할 백엔드 서버 (오리지널 서버)가 필요하다. 오리지널 서버로선 ELB, EC2 그리고 S3의 정적 호스팅을 이용하는 것이 가능하다. 또한 온프레미스 서버를 지정하는 것도 가능하기 때문에 지금의 시스템 구성을 크게 변경하지 않고, CloudFront를 도입하여 이벤트 등의 일시적인 액세스 집중에도 견딜 수 있는 시스템을 구축할 수 있다. 또한 URL의 주소에 따라 오리지널 서버를 지정하는 것도 하나의 도메인으로 복수의 서비스를 제공할 수 있기 때문에, 도메인 명을 통일하거나 기업의  Web 거버넌스 전략에도 도움이 된다.

    CloudFront의 백엔드

     

    배포

    CloudFront에는 전송하는 컨텐츠의 내용에 따라 두 가지의 배포 방법이 있다. 다운로드 배포와, 스트리밍 배포이다.

    다운로드 배포 : HTTP나 HTTPS를 사용한 HTML, CSS, 이미지 등의 데이터를 전송하는 데 사용한다.

    스트리밍 배포 : RTMP (Real Time Messageing Protocol )을 사용하여 동영상의 스트리밍 전송을 하는데 이용한다. 더해 RTMP는 2020년 12월 31일 이후로 비권장이 되었다.

    캐시 룰

    확장자나 URL 패스에 따라 캐시 기간을 지정하는 것이 가능하다. 빈번하게 업데이트되는 동적 콘텐츠 (HTML 등)는 기간을 짧게, 크게 변화가 없는 콘텐츠 ( 사진, 동영상 )은 길게 설정하는 것이 가능하다. 또한 동적 사이트의 URL 패스는 캐시를 무효화하는 것으로 CloudFront를 네트워크 경유로만 이용하는 것이 가능하다. CDN은 캐시 취급이 매우 중요하다. 캐시의 강제적인 삭제 운용 등을 포함하여 필요한 캐시를 적절하게 사용할 필요가 있다.

    중요 포인트
    - CloudFront는 정적 컨텐츠를 캐시하여, 오리지널 서버의 대신에 배포하는 CDN 서비스이다.
    - CloudFront의 백엔드 서버에는 ELB, ECS, S3 의 정적 호스팅, 온프레미스 서버를 이용할 수 있다.
    - CloudFront는 2가지 배포 방법이 있다. 다운로드 배포는 HTML, CSS, 이미지 등의 데이터를 배포할 때에 이용되며, 스트리밍 배포는 동영상의 스트리밍 배포할 때에 이용한다.
    - CloudFront에는 확장자나 URL 패스별로 캐시 기간을 설정할 수 있다.

     Route 53

    도메인 관리 기능과 구성 DNS 기능을 가진 서비스이다. Web 콘솔이나 API로 부터 간단히 도메인 정보나 존 정보를 설정, 관리가 가능하다. Route 53은 간단히 도메인이나 DNS 정보를 관리할 뿐만 아니라 네트워크 트래픽의 라우팅과 접속처의 시스템 상태에 따라 접속처를 변경하는 등의 옵션도 가지고 있다. 제대로 사용하면 사용성이나 반환을 높이는 것이 가능하다

    도메인 관리

    신규 도메인의 취득이나 변경응의 수순이 가능하다. 이 서비스를 이용하는 것으로 도메인의 취득부터, 존 정보의 설정까지 Route 53에서 일괄적으로 관리가 가능해진다. 도메인의 년간 이용료는 보통의 AWS 이용료에 청구가 포함되기 때문에 별도의 지불 수속은 불필요하다. 또한 자동 갱신 기능도 있기 때문에 도메인의 갱신을 잊어버리는 등의 리스크가 회피할 수 있다.

    권위 DNS

    DNS는 도메인 명과 IP주소를 변환(이름해결) 하는 시스템이다.

    권위(Authoritative) DNS 란 도메인 명과 IP주소의 변환 정보를 보관하고 있는 DNS로 변환 정보를 보관하고 있지 않는 DNS (캐시 DNS)와 구별할 때 사용한다. Route 53은 권위 DNS 이기 때문에 보관하고 있는 도메인명 이외의 이름 해결 리퀘스트를 하더라도 응답이 없다. 캐시 DNS는 별도의 준비가 필요하다.

    호스트 존과 레코드 정보

    호스트 존은 레코드 정보의 관리 단위를 나타낸다. 평소엔 도메인 명이다. 예를 들어 「example.com의 레코드 정보를 보관할 경우 호스트 존에는 example.com」 이 된다. 레코드 정보는 「www.example.com」 은 IP 주소가 192.168.0.100이다.라고 하는 도메인 ( 또는 서브 도메인 ) 명과 IP 주소를 변환하기 위한 정보이다.

    레코드 정보에는 A레코드, MX 레코드, CNAME 레코드라고 하는 종류가 있다. Route53에 특징적인 레코드로서 Alias 레코드가 있다.

    Alias 레코드는 레코드 정보에 등록한 값으로 CloudFront나 ELB, S3 등 AWS의 리소스 FQDN을 지정할 수 있다. CNAME에도 똑같이 등록이 가능하지만, CNAME 과의 차이 중 하나로 Zone Apex 도 등록할 수 있다는 것이다.

    Zone Apex란 최상위 도메인 (Route53 의 경우 호스트 존 명)이다. 예를 들어 「example.com」 을 S3의 웹 사이트 호스팅 서비스에 접속하는 독자 도메인으로 이용하고 싶을 경우 Route 53 이외의 DNS에는 CNAME 레코드의 사용상 등록이 불가능하다. 하지만 Route 53의 경우 Alias 로케도를 이용하여 등록할 수 있다.

    트래픽 라우팅

    존 정보를 등록할 때, 이름 해결의 문의에 어떤 식으로 응답할지 덩하는 7종류의 라우팅 폴리시가 있다. 요건이나 구성에 응하여 적절한 트래픽 라우팅을 지정하는 것으로 가용성과 응답성이 높은 시스템을 구성할 수 있다.

    • 심플 라우팅 폴리시 : 특별한 라우팅 폴리시를 사용하지 않는 기본적은 1 : 1 라우팅이다.
    • 페일 오버 라우팅 폴리시 : 액티브/스탠바이 방식으로 액티브 측의 시스템 헬스 체크가 실패할 경우 스탠바이 측의 시스템으로 라우팅을 돌리는 방식이다. 프로덕션 시스템에 장애 시에 Sorry 서버의 IP 주소를 세컨더리 레코드로 등록해두고 자동적인 Sorry 켄텐츠를 표시할 수 있다.
    • 위치 정보 라우팅 폴리시 : 유저의 위치 정보를 기반으로 하여 트래픽을 라우팅 하는 경우 사용한다. 이 라우팅 폴리시를 사용하는 것으로 일본으로부터의 액세스는 일본어 콘텐츠로 전송하는 웹 서버에 접속하는 등과 같은 제어가 가능하다
    • 지리적 접근성 라우팅 폴리시 : 리소스의 장소에 의거하여 트래픽을 라우팅 하여 필요에 응하여 트래픽을 어떤 장소의 리소스로부터, 다른 장소의 리소스에 이동하는 등에 사용한다. 지리적 접근성 라우팅 폴리시는 후술 할 트래픽 플로우를 전제하고 있다.
    • 레이턴시 라우팅 폴리시 : 복수의 서버가 분산되어 위치하고 있을 경우에는 지연이 가장 느린 서버가 리퀘스트를 라우팅 한다. 특정 서버만 고부하가 될 경우에 리퀘스트를 분산하는 것이 가능하다.
    • 복수치 회답 라우팅 : 하나의 레코드에 다른 IP 주소를 복수 등록하여 랜덤으로 반응하는 IP주소에 접속시킨다. 헬스 체크가 NG가 된 경우 주소가 돌아오지 않기 때문에 정상 기동 중인 서버에 대해서만 액세스를 분산시키는 것이 가능하다.
    • 가중 라우팅 폴리시 : 특정한 비율로 복수의 리소스에 트래픽을 라우팅 할 때에 사용한다. 거점을 걸쳐 리소스의 다른 서버가 배치되어 있을 경우에 리퀘스트 비율을 조절하는 기능을 이용할 수 있다. 또한 AB 테스트를 위해 새 서비스를 론칭한 서버에 일정 수의 유저를 유도하고 싶을 경우 사용할 수 있다

    라우팅 폴리시는 신뢰성이나 퍼포먼스 등 무엇을 중시하는가에 따라 사용법을 나눠야 할 필요가 있다. 각각의 특징을 모두 다 파악해 두는 것이 중요하다.

    트래픽 플로우

    라우팅 폴리시를 조합하는 것으로 다양한 라우팅 환경을 구축할 수 있지만, 각 레코드 간의 설정이 복잡해질 수 있다. 

    트래픽 플로우는 그것들의 조합을 비주얼 적으로 알기 쉽게 해 주기 위한 툴을 사용하여 정의할 수 있다.

    DNS 페일 오버

    Route 53이 가지고 있는 Fault Tolerant Architecture이다. 시스템에 이상이 발생할 경우에도 장애를 최소한으로 억누르기 위한 방법론을 의미한다. 예를 들어 가동 중인 시스템에 장애가 발생하여 웹사이트가 열리지 않는 상황이 벌어질 경우, 일시적으로 접속처를 Sorry 서버로 지정하고 싶다는 요건이 있을 경우, Route 53의 DNS 페일 오버 기능을 사용하는 것으로 간단히 요건을 만족시킬 수 있다.

    DNS 페일오버는 헬스 체크의 결과에 따라 발동한다. Route 53에는 3종류의 헬스 체크가 존재한다. 이것들을 확실히 파악해 둘 필요가 있다.

     

    포인트 정리

    - Route 53은 도메인, 관리 기능과 권위 DNS 기능을 가진 서비스
    - Route 53에는 7종류의 라우팅 폴리시가 존재하며, 이것들을 조합하여 다양한 라우팅 환경을 구축할 수 있다.
    - Route 53에는 장애시의 피해를 최소화 하기 위한 Fault Tolerant Architecture 로서 DNS 페일 오버 기능이 있다.
    반응형

    'Technique > AWS' 카테고리의 다른 글

    5. AWS의 스토리지 서비스  (0) 2021.04.20
    4. 운용지원 서비스  (0) 2021.04.19
    3. 컴퓨팅 서비스  (0) 2021.04.10
    1. 리전과 가용영역  (0) 2021.04.07
    인증 시험을 준비하며  (0) 2021.04.06

    댓글

Designed by Tistory.