DevOps & SRE/AWS & Cloud

[클라우드 인프라와 API의 구조] 11. 멀티 클라우드

반응형

그림으로 배우는 클라우드 인프라와 API의 구조

A. 멀티클라우드 개념

멀티 클라우드란?

  • 여러 개의 클라우드를 조합해서 사용하는 방식

멀티 클라우드를 도입하는 이유?

  • 특정 클라우드에 종속되지 않도록 여러 클라우드 시스템을 상호 운영하기 위해
  • 단일 클라우드의 취약점 보안
    • ex) 2018년에 발생한 AWS 서울 리전 장애는 단일 클라우드에만 의존하는 것이 위험하다는 인식을 확산시키고 멀티 클라우드에 힘을 실어준 대표적인 사건.
  • 여러 클라우드 중 우수한 컴포넌트들을 조합해서 최적의 클라우드 환경을 만들기 위해
  • ex) 어떤 클라우드는 DB가 우수하고 어떤 클라우드는 챗봇에 강하다는 등.

 


B. 멀티 클라우드를 구성하기 위해 고려해야할 사항들

  1. 클라우드 간의 네트워크 접속 방식
    • 각 클라우드 환경이 서로 다른 데이터 센터에 위치하기 때문에 둘 사이에 네트워크가 연결되지 않으면 통신 자체가 불가능하기 때문.
  2. API의 호환성
    • 각 클라우드마다 API가 조금씩 차이가 있기 때문에 완전한 호환성을 가지기 힘듬.

 

B-1. 클라우드 간의 네트워크 접속 방식

서로 다른 데이터 센터의 두 지점을 네트워크로 연결하기 위한 방법

  1. 전용 네트워크 사용 (ISP or 클라우드 벤더가 제공하는)
  2. 공개된 인터넷을 활용

 

1. 전용 네트워크

1-1. 전용 회선 방식에 필요한 작업

클라우드를 전용 회선으로 연결하려면 두 가지 작업이 필요합니다.

  • 물리적 결선 (기존의 회선이 없는 경우)
  • 논리적 결선: 네트워크 API를 사용함.

 

1-1-1. 물리적 결선

전용회선의 종류는

  • 거점 간 전용회선
    • 연결할 두 거점만 피어링 하고 싶을때 사용
    • 단 향후 접속할 거점이 많아지면 매번 회선을 부설할 비용도 증가.
  • 광역 이더넷
    • 기존 광역 이더넷망을 사용하는 형태
    • AS들로 분할되고 BGP를 사용해서 라우팅 됨.

 

라우팅 프로토콜

  • IGP (Intenal Gateway Protocol)
    • AS 내에서의 라우팅을 담당하는 라우팅 프로토콜 (네트워크 내부 경로 설정)
    • Distance Vector(RIP), Link-State Vector(OSPF) 등
  • EGP (Exterior Gateway Protocol)
    • 서로 다른 AS사이에서 사용되는 라우팅 프로토콜 (네트워크 외부 경로 설정)
    • AS끼리 연결하는 것을 Peering 이라고 함.
    • BGP

 

1-1-2. 논리적 결선

클라우드 환경에서는 논리적 결선을 API로 처리할 수 있는 컴포넌트가 제공됨. (AWS의 경우 Direct Connect 서비스)

 

주의할 점은 이런 피어링 이후, 라우팅 설정을 해야 한다. (각 클라우드 환경의 가상 라우터에 CIDR 정보와 관련된 라우팅 설정을 한 후에야 거점 간의 경로가 만들어짐.)

 

1-2. 인터클라우드

"네트워크의 네트워크"가 인터넷인 것처럼 "클라우드의 클라우드"는 인터 클라우드라고 불린다.

대규모의 공용 클라우드 벤더를 이용하는 경우, 데이터 센터와 데이터 센터 간의 통신은 같은 경로를 공유하며, 이미 기존에 설치된 회선이 있기 때문에 이 회선을 활용하는 것이 효율적일수도 있음.

⇒ 특별히 네트워크를 의식하지 않아도 클라우드 환경을 원활하게 사용할 수 있음.


2. 인터넷 VPN

전용회선과 다르게 인터넷 회선을 활용하는 방법

  • 성능은 다소 떨어지더라도 통신 비용을 절감할 수 있음.

 

2-1. VPN 이란?

Virtual Private Network로, A와 B가 통신을 한다고 가정하면, 보안을 위해 A, B 사이에 물리적인 전용선을 구축하면 비용이 많이 들기 때문에, 기존의 공용 네트워크 선을 사용하되 암호화를 통해 A,B 외에는 관여할 수 없게 전용선 효과를 내는 것.

 

VPN의 종류

1) IPSec

  • IPSec은 3계층 네트워크 계층에서 안전하게 정보를 보내는 방법으로, VPN 장비가 각각 하나씩 필요.
  • VPN 장비를 이용해서 암호화 통신을 하는 방법.

2) sslVPN

  • ssl-VPN은 7계층 애플리케이션 계층에서 안전하게 정보를 전달하는 방법으로 SSL VPN 장비를 하나 두어, 사용자 인증이 성공하면 VPN을 사용할 수 있는 가상 IP가 할당되기 때문에, 장소나 단말의 종류와 관계없이 내부 네트워크와 접속할 수 있음.

 

2-2. 클라우드에서의 VPN

  • 인터넷 VPN을 사용하려면 VPN 라우터가 필요함.
  • 소프트웨어 VPN을 서버상에 구성하는 방식을 사용. (클라우드에서는 사용자가 보유한 물리적인 장비를 설치할 수 없으므로)
  • AWS의 경우 VGW가 IPSec 통신을 지원하기 때문에 VGW를 VPN 라우터로 활용하는 방법도 존재.

CDN

멀티 클라우드의 네트워크가 리전과 가깝고 폐쇄된 망이 아닌, 여러 개의 리전에 흩어진 여러 개의 클라우드를 연결해야 할 때 CDN을 활용할 수 있음.

 

3-1. CDN이란?

  • 리소스를 적재적소에 분배하고 가까운 분배지로 통신 경로를 연결하는 방법으로 최적화
  • ⇒ 많은 Edge 캐시 서버 중, 사용자와 가장 가까운 라우터에 연결된 서버.
  • 대용량의 모바일 게임 다운로드, VOD 영상 재생, Live 시청 등 다양한 콘텐츠를 사용자에게 원활하게 전달하기 위해서 CDN을 사용.
  • 대표적으로 AWS CloudFront이 있음.

 

3-2. CDN의 구성 요소

Edge (엣지 로케이션)

  • 캐시 서버가 존재하는 데이터 센터
  • 전 세계 각지에 수 많은 엣지가 분포되어 있는데 요청이 들어오는 곳에 가장 가까운 엣지로 라우팅 하도록 만들어 HTTP 응답 속도를 향상 시킴.

 

Origin

  • 실제 콘텐츠를 보관하는 서버.

 

Distribution

  • CDN은 Origin과 DNS 사이에 위치하고 있어 URL을 통해 서비스를 이용하는 사용자는 CDN의 존재를 의식하지 못함.
  • CDN에는 최적의 엣지를 구성할 수 있도록 각종 규칙을 정의하는 논리적인 단위가 존재 ⇒ Distrubution (AWS CloudFront)

 

Behavior

  • Distribution에서 정의하는 내용으로 사용자 요청을 Origin과 연결하고 Origin의 응답을 사용자에게 연결해주는 기능.

 

 

OAI

  • Origin 서버에 직접적인 접근이 불가능하고, 반드시 CDN을 통해서만 접근할 수 있게 하는 방식
  • 이러한 기능을 Aws CloudFront에서는 OAI (Origin Access Identify)라고 부름.

 

CDN의 캐시 제어 방식

CDN의 핵심 기능인 캐시 기능은 HTTP 요청 헤더에 설정된 캐시 설정과 CDN 디스트리뷰션에 설정된 TTL 값을 참고하여 엣지의 캐시 기간을 결정한다.

HTTP Header

  • Cache-Control: 캐시가 유요한 기간(sec) (Expires 보다 우선순위가 높음)
  • Expires: 캐시가 무효화 되는 시점

 

Distribution

  • TTL: CDN의 Distribution 설정에서 캐시의 수명을 제어.

 

( Distribution → Cache-Control → Expires 순으로 우선순위를 갖는다.)

 

CDN의 라우팅

대부분의 트래픽 = 대용량 파일을 참조할 때 발생 ⇒ 캐시를 활용하는 방법이 효과적

단, 데이터가 변경되면 큰 효과를 보기 어려움 (Cache miss)

 

멀티 클라우드에서의 CDN의 역할

CDN은 원래 동영상과 같은 대용량 컨텐츠를 제공할 때, 캐시를 통해 전송 속도를 빠르게 하고 전송 효율을 높이기 위한 목적.

AWS S3에 대용량 파일을 저장하고, 그 앞에 AWS CloudFront를 두는 것이 일반적인 시스템 구성 형태.

반응형