[AWS] 글로벌 인프라 활용

dereck·2024년 12월 23일

AWS CCP

목록 보기
10/29
post-thumbnail

왜 글로벌 애플리케이션인가?

왜 글로벌 애플리케이션을 만들까?

글로벌 애플리케이션은 여러 지역에 배포되는 애플리케이션이며, 이는 AWS에선 다양한 AWS 리전과 엣지 로케이션으로 애플리케이션이 배포된다는 의미이다. 이를 통해 전 세계 사용자의 지연 시간이 줄어들게 된다.

지연 시간은 네트워크 패킷이 서버에 도달하는 시간이다.

두 번째 이유는 재해 복구 때문이다. 하나의 데이터 센터나 한 리전에 의존하지 않는 것으로 자연 재해 등으로 인해 전체 리전이 정지되면 재해 복구 계획으로 다른 리전으로 장애 조치를 해서 애플리케이션이 계속 실행되도록 하는 것이다. 그래서 재해 복구 계획은 애플리케이션의 가용성을 높이는데 매우 중요하다.

마지막 이유는 공격에 대비하기 위함이다. 해커들은 온라인에서 여러 이유로 애플리케이션을 중단시키기 위해 공격하지만 이때 애플리케이션이 여러 리전에 있고 전 세계적으로 배포했다면 여러 리전을 한 번에 공격하기 어려워지기 때문이다.

AWS 글로벌 애플리케이션

  • Global DNS - Route 53
    • 사용자를 최소한의 지연 시간으로 가장 가깝게 배포 리전에 라우팅 하도록 하고, 재해 복구 계획에도 유용하다.
  • Global CDN - CloudFront
    • 애플리케이션의 일부를 엣지 로케이션에 다시 복제해 사용자의 지연 시간을 줄이고 일반 요청을 캐시해서 사용자 경험을 개선하고 지연 시간 또한 줄이는 것이다.
  • S3 Transfer Acceleration
    • Amazon S3로의 전 세계적인 업로드와 다운로드 가속화
  • AWS Global Accelerator
    • AWS의 글로벌 네트워크로 글로벌 애플리케이션의 가용성과 성능을 개선한다.

Amazon Route 53

Route 53 개요

Route 53은 관리 DNS이다. 이때 DNS는 Domain Name System의 약자로 전화번호부와 같다. 규칙과 레코드의 모음집으로 클라이언트가 URL을 통해 올바른 서버를 찾아갈 수 있게 도와준다.

라우팅 정책

단순 라우팅 정책

상태 확인을 하지 않는 정책이다. 웹 브라우저는 DNS 시스템에 가서 DNS 검색을 하고 IPv4를 결과로 얻는다.

이것이 단순 라우팅 정책이며 기본적인 정책이다.

가중치 라우팅 정책

트래픽을 여러 기관의 인스턴스에 분산한다. 인스턴스에 정의한 가중치에 따라 트래픽을 분산하는 것이고 로드 밸런싱을 할 때 효율적이다. 또한 가중치 라우팅 정책에서는 상태 확인을 한다.

예를 들어 인스턴스 A, B, C가 있고, 각 가중치가 70%, 20%, 10% 라면 트래픽의 70%는 A로 가고, 트래픽의 20%는 B로 가고, 나머지 10%가 C로 가도록 하는 것이다.

지연 시간 라우팅 정책

지연 시간 라우팅 정책은 사용자의 위치를 살펴보고 지연 시간이 가장 짧은 인스턴스와 통신하도록 리디렉션 하는 것이다.

즉, 지연 시간에 근거하여 가까운 서버에 리디렉션되는 것이다.

장애 조치 라우팅 정책

DNS 시스템은 기본 인스턴스에 장애가 발생하면 장애 회복을 위해 장애 조치 인스턴스로 리디렉션한다. Route 53 덕분에 클라이언트는 인스턴스의 상태에 따라 어떤 인스턴스에 연결될 지 정확히 알고 있다.

첫 번째 정책을 제외한 나머지 정책은 모두 상태 확인을 한다. 이때 각자 다른 목적이 있다.

  1. 가중치 라우팅 정책: 트래픽을 여러 기관 인스턴스에 분산
  2. 지연 시간 라우팅 정책: 지연 시간 최소화
  3. 장애 조치 라우팅 정책: 장애 회복에 도움

AWS CloudFront

CloudFront 개요

CloudFront는 Content Delivery Network, 즉 CDN이다. 여러 엣지 로케이션에서 웹사이트의 콘텐츠를 캐싱해서 읽기 성능을 향상시킨다. 전 세계에서 콘텐츠를 캐싱하기 때문에 전 세계 사용자들의 대기 시간이 단축되어서 사용자 경험을 개선해준다.

예를 들어, 호주에 S3 버킷을 생성하고 거기에 웹사이트를 만들었는데 사용자가 미국에 있을 경우 사용자는 CloudFront를 사용해서 미국에 있는 엣지 로케이션에서 콘텐츠를 요청하고 CloudFront가 호주에서 콘텐츠를 가져올 수 있다. 이후 미국에 있는 또 다른 사용자가 동일한 콘텐츠를 요청할 경우 엣지에서 바로 제공될 것이다.

CloudFront는 전 세계 216개 접속 지점을 두고 있는데 이것은 세계 곳곳에 위치해 있는 AWS 엣지 로케이션에 해당한다. 또한 계속 로케이션을 추가해서 모든 곳에서 사용자 경험을 개선하고 있다. 무엇보다 콘텐츠를 전 세계에 배포함으로써 디도스 공격을 방어한다.

요점은 애플리케이션을 전 세계에서 사용하기 때문에 CloudFront를 이용하면 이런 공격을 막아준다는 것이다. 또 보안 섹션에서 배우게 될 Shield와 Web Application Firewall도 이용한다.

오리진 타입

  • S3 버킷
    • 엣지에서 CloudFront를 이용해 엣지에서 파일을 분산하고 캐싱한다. 이를 보장하기 위해 CloudFront만 S3 버킷에 액세스할 수 있다.
    • Origin Access Control(OAC)라는 것을 사용할 수 있다. 기존의 Origin Access Identity(OAI)가 이걸로 바뀐다.
    • S3 버킷으로 데이터를 전송하는 방식으로 CloudFront가 사용될 수 있다
  • 커스텀 오리진 (HTTP)
    • S3로 데이터 파일을 업로드하는데 이걸 인그레스라고 하고, 모든 사용자 지정 오리진 HTTP 백엔드 앞에도 CloudFront를 둘 수 있다.
      • ALB일 수도 있고, EC2 인스턴스나 S3 웹사이트, 원하는 HTTP 백엔드 다 가능하다.

고수준에서 CloudFront가 활용되는 경우

전 세계에 엣지 로케이션이 위치해 있고, 이 로케이션이 사용자의 오리진에 연결한다. 이때 오리진은 S3 버킷이거나 HTTP 서버일 수도 있다.

클라이언트가 사용자의 엣지 로케이션으로 연결해서 HTTP 요청을 하면 엣지 로케이션은 캐시에 있는지 확인한다. 캐시에 없다면 오리진으로 가서 결과를 받아오고 로컬 캐시에 캐싱해서 다른 클라이언트가 동일한 콘텐츠를 요청할 경우 해당 엣지 로케이션이 오리진으로 이동할 필요가 없다.

CloudFront와 엣지 로케이션을 이용하면 한 리전에 있는 S3 버킷의 콘텐츠를 접속 지점을 통해 전 세계에 배포 가능한지 확인할 수 있다.

CloudFront와 S3 복제의 차이점

  • CloudFront는 글로벌 엣지 네트워크를 사용하는 것이다. 전 세계 어디서나 이용이 가능해야 하는 정적 콘텐츠가 있을 때 유용하다. 즉, 컨텐츠를 전 세계에서 캐싱하는 게 목적인 CDN이다.
  • S3 리전 간 복제는 복제가 일어나길 원하는 리전마다 각각 설정해야 하기 때문에 전 세계 모든 리전에 적용되는 것이 아니고 캐싱이 일어나지 않으며 읽기 전용으로만 된다. 일부 리전에서 항상 바뀌면서 대기 시간이 짧아야 하는 동적 컨텐츠가 있을 때 적합하다. 즉, 전체 버킷을 다른 리전으로 복제하는 게 목적이다.

S3 Transfer Acceleration

전 세계에 있는 파일을 특정 S3 버킷에 전송하고 싶을 때 S3 Transfer Acceleration을 이용하여 전송 속도를 올릴 수 있다.

예를 들어, 미국에 있는 파일을 호주 S3 버킷에 업로드할 때 파일을 엣지 로케이션에 업로드하여 미국 사용자에게 가깝게 하고 내부 네트워크의 안정적이고 빠른 연결을 통해 엣지 로케이션에서 호주의 S3 버킷으로 파일을 전송한다.

즉, 멀리 떨어진 S3 버킷에 파일을 업로드하거나 다운로드할 때 사용한다. 또한 테스트를 통해 얼마나 효과적인지 확인할 수도 있다.

특정 S3 버킷에 파일을 업로드해야 하는 글로벌 애플리케이션이라면 사용해 볼 만한 도구이다.


AWS Global Accelerator

Global Accelerator 개요

Global Accelerator는 AWS 글로벌 네트워크를 이용하여 글로벌 애플리케이션의 가용성과 성능을 개선할 때 사용한다. 사용자와 가장 가까운 위치의 사용 가능한 정상 엔드포인트로 트래픽을 자동으로 재라우팅하여 엔드포인트 장애를 완화하며, 2개의 글로벌 정적 고객용 IP를 제공한다.

트래픽이 도착하는 최종 엔드포인트는 AWS 특정 리전의 ELB(ALB 또는 NLB), 탄력적 IP, EC2 인스턴스이다.

Global Accelerator와 CloudFront의 공통점과 차이점

공통점

  • AWS 글로벌 네트워크를 사용
  • 전 세계 엣지 로케이션을 사용
  • Shield와 통합하여 디도스 보호

차이점

  • CloudFront
    • 콘텐츠 전송 네트워크로 엣지에서 이미지, 영상, 웹사이트와 같은 콘텐츠를 캐싱
    • CloudFront 엣지에서 콘텐츠를 제공하기 때문
  • Global Accerlerator
    • 캐싱하지 않고 내부 AWS 네트워크를 사용하여 요청을 전 세계에 빠르게 전달
    • 엣지 로케이션으로부터의 모든 요청은 리전의 애플리케이션으로 전달됨. 따라서 TCP/UDP와 같이 넓은 범위에서의 요청에서 성능을 개선함
    • 정적 IP 주소를 요구하거나, 결정적이고 빠른 지역 장애 조치 및 좋은 성능을 요구하는 HTTP 사용 용례에 적합

AWS Outposts

Outposts 개요

온프레미스 인프라를 유지하면서 클라우드 인프라를 가져가는 사업을 하이브리드 클라우드라고 한다. 이때 IT 시스템을 처리하는 두 가지 방법이 있다. 하나는 AWS 클라우드, 다른 하나는 온프레키스 인프라를 위한 방법이다. 따라서 두 가지 다른 유형의 API가 있어 복잡할 수 있다.

그래서 AWS는 하이브리드 클라우드를 이용하는 회사를 위해 Outposts 서비스를 만들었다. Outposts는 클라우드와 마찬가지로 자체 온프레미스 애플리케이션을 구축할 수 있도록 동일한 AWS 인프라, 서비스, API 및 도구를 제공하는 서버 랙(server racks)이다.

즉, 사내 온프레미스 인프라 내에 있는 서버에 Outposts 랙을 설치하여 관리하는 것이다. 이 서버에는 AWS 서비스가 미리 로드되어 있고 온프레미스의 장점도 누릴 수 있다.

Outposts 장점

  • 온프레미스 시스템에 접근할 때 지연 시간이 적다
  • 데이터 처리를 로컬에서 하여 데이터는 온프레미스 시스템을 떠나지 않는다. 클라우드로 가지 않고 데이터 센터 내에 머무른다.
  • 완전 관리 서비스로 AWS가 서비스를 관리해 준다.
    • EC2, EBS, S3, EKS, ECS, RDS, EMR 등이 있다.

Outposts 단점

  • 사용자가 물리적 보안을 책임져야 한다

AWS WaveLength

WaveLength 개요

Wavelength는 모바일 엣지 컴퓨팅 애플리케이션에 최적화된 인프라 제품이다. Wavelength를 사용하면 개발자가 모바일 디바이스 및 최종 사용자 측에서 발생하는 지연 시간이 매우 짧은 애플리케이션을 제작할 수 있다.

Wavelength 영역은 AWS 컴퓨팅 및 스토리지 서비스를 통신 서비스 공급자(CSP)의 5G 네트워크에 포함하여 5G 디바이스에서의 애플리케이션 트래픽이 통신 네트워크 내의 Wavelength 영역에서 실행되는 애플리케이션 서버로 전송될 수 있는 AWS 인프라 배포 환경이다. 이를 통해 지연 시간이 100밀리초를 초과하게 만들어 고객이 5G의 향상된 대역폭 및 지연 시간을 완전히 활용하지 못하게 할 수 있는 인터넷에 대한 추가적인 네트워크 홉(라우터나 게이트웨이 등 중간 노드)이 줄어들게 된다.

AWS 개발자는 이동 통신 사업자 데이터 센터 내의 5G 네트워크 엣지에 AWS 컴퓨팅 및 스토리지 서비스를 포함하는 AWS 인프라 배포 환경인 Wavelength 영역에 애플리케이션을 배포하고 해당 리전의 다양한 AWS 서비스에 원활하게 액세스할 수 있다.


AWS 로컬 영역

로컬 영역이라는 개념은 컴퓨팅 스토리지 데이터베이스 및 데이터베이스가 선택한 다른 서비스를 최종 사용자와 가깝게 배치하여 지연 시간에 민감한 애플리케이션을 실행할 수 있게 한다.

EC2, RDS, ECS, EBS, ElastiCache, Direct Connect 등과 호환된다.

예를 들어, 한 리전이 있고 3개의 가용 영역이 있을 때, 이 가용 영역을 더 많은 로컬 영역에 확장할 수 있다. 임의의 구역에 로컬 영역을 정의하고 VPC를 가용 영역과 로컬 영역으로 확장하면 EC2 인스턴스를 로컬 영역에서 실행할 수 있다.

즉, 주요 리전이 없는 위치에 소규모 데이터 센터를 구축하여 범위를 확장하는 것이다.


글로벌 애플리케이션 아키텍처

단일 리전, 단일 가용 영역

  • 가용성이 낮다
  • 글로벌 지연 시간이 높다
  • 설정하는데 어려움이 거의 없다

단일 리전, 다중 가용 영역

  • 고가용성을 가진다
  • 글로벌 지연 시간은 개선되지 않는다
  • 설정 난이도가 이전에 비해 살짝 오르지만 그렇게 어렵진 않다.

다중 리전, 액티브-패시브

  • 2개의 리전이 있다
  • 각 리전에는 하나 이상의 가용 영역이 있다
  • 하나의 리전에는 EC2 인스턴스가 액티브되거나 애플리케이션이 액티브될 것이다.
    • 사용자가 어디에 있든지 액티브된 리전의 EC2 인스턴스에 읽고 쓸 수 있다는 뜻
  • 다른 EC2는 패시브로써 액티브 리전과 패시브 리전 간 데이터 복제가 일어나 사용자는 패시브 리전에서 데이터를 읽을 순 있으나 쓸 순 없다.
  • 전 세계에 많은 리전이 있고, 패시브일 경우 읽기 지연 시간을 개선한다
  • 하지만 쓰기의 경우 중앙 리전으로 가야하기 때문에 글로벌 수준에서의 쓰기 지연 시간이 여전히 높다
  • 여러 리전으로 인해 난이도가 높다

다중 리전, 액티브-액티브

  • 각 EC2 인스턴스가 읽고 쓸 수 있다
  • 2개의 인스턴스에서 복제가 일어난다
  • 읽기 지연 시간과 글로벌 수준의 쓰기 지연 시간도 개선한다
  • 난이도가 더 올라간다
    • 애플리케이션이 한 리전에서 많은 것을 하므로 설정하기 더 어려움

References

0개의 댓글