...
AWS 글로벌 인프라 구성
AWS 글로벌 인프라는 리전(Region), 가용영역(AZ, Availability Zones), 엣지 로케이션(Edge Location), 리전 엣지 캐시(Regional Edge Cache) 네가지 요소로 구성 되어 있다.
AWS를 입문하는데 가장 기초적인 내용이며, 가장 핵심적인 구조 이다.
각 용어에 대해 완벽히 숙지를 해야, 이 다음에 이어질 VPC구성이나 이외의 클라우드 구축을 하는데 이해를 하고 수월하게 할 수 있다.
리전 (Region)
리전은 AWS의 서비스들이 제공되는 서버의 물리적인 국가/도시 단위의 위치을 의미한다.
위의 세계지도를 보면 AWS의 리전 분포를 알 수 있는데, 이렇게 여러개의 리전을 각 지역마다 두는 이유는 네트워크 속도가 가장 큰 이유이다.
예를들어, 우리나라 서버에 있는 서비스를 미국에서 접속하면 아무래도 속도가 느려질 수 밖에 없는데 미국쪽 리전에 서버를 생성하여 서비스하면 이 문제를 해결 할 수 있다.
두번째 이유로는 각종 재해에 대비하기 위함이다.
미국 본사에 재해가 발생해 문제가 생겨도 각 세계에 뿌린 리전이 대신 서비스를 유지해줄 수 있다.
세번째는 데이터 지역성 보장과 같은 법률 규제를 준수하기 위해서다.
애플리케이션에서 카드 거래 내역 등의 데이터를 국외에 있는 서버로 반출하지 못하는 법률이 존재하는 경우, 국내 리전(서울 Region)의 클라우드 서비스를 이용하도록 해 규제를 준수하도록 하기 위함이다.
리전을 선택할때 고려할 점
- 지연속도
- 법률 (데이터, 서비스 제공 관련) : 우리나라에서 서비스하는 데이터는 우리나라 서버에서만 저장해야 한다는 법률 등
- 사용 가능한 aws 서비스 : 어떤 리전에서는 사용할 수 있고, 다른 리전에서는 사용할 수 없는 서비스들이 있음
위 사진을 보면 한국을 기준으로 Asia Pacific (Seoul)이 역시 가장 빠르고, Asia Pacific (Tokyo)도 꽤 괜찮은 편으로 속도가 측정된다. 따라서 리전을 선택할때 가장 우선적으로 레이턴시(지연속도)가 작은 곳을 우선적으로 고른다.
다만, 같은 AWS 서비스를 이용하더라도, 리전마다 가격이 다를 수 있는 점은 유의해야 한다.
예를들어 각 국가의 경제적 특징으로 이해해 보면 된다.
쌍파울로 → 제일 비쌈
- 브라질의 도시로서, 브라질은 개발 도상국이다.
- 전력 수급사정이 좋지 않음
버지니아 → 제일 쌈
- 제일 많이 사용하고 수익이 나기 때문에 가격이 저렴한 편
- 일단 전반적으로 미국지역이 싼 편이다.
그리고 리전마다 사용 가능한 서비스가 제한 될 수 있으니 3가지를 모두 고려하여 리전을 설정해야 한다.
가용영역 (Availability Zone - AZ)
리전이 국가/도시 단위의 지리적 위치라면, 가용영역(AZ)는 각 리전(국가/도시) 안의 데이터센터 이다. aws 서버 컴퓨터들이 모여있는 건물이라고 이해하면 된다.
기본적으로 AWS의 각 리전 안에는 2개 이상의 가용영역을 가지고 있다.
위 사진에서 볼수 있듯이 서울은 2개의 가용영역(AZ)이 있고 도쿄는 4개 런던은 3개가 있는 것을 알 수 있다.
또한 각 리전의 AZ 건물들은 위 사진처럼 물리적으로 일정 거리 (몇 KM 이상) 떨어져 있다.
앞서 설명한 리전과 마찬가지 이유로, 하나의 가용 영역이 각종 재해, 정전, 화재 등 다양한 이유로 작동불능이 되더라도 다른 가용 영역에서 서비스를 재개하여 유지할 수 있기 때문이다.
다만 모든 AZ는 서로 100km 이내의 거리에 위치해 있어야 한다.
각 데이터 센터는 광통신 전용망(고속 프라이빗 네트워크)로 연결 되어있는데 서로간 너무 멀리 떨어져 있느면 속도면에서 감점이 될 수 있기 때문이다.
또 이렇게 데이터센터를 여러개로 나누면 보안적인 측면에서도 이점으로 작용하는 특징도 있다.
AZ의 특징 중 하나가 각 계정 별로 부여된 AZ의 코드와 실제 위치가 다르다는 점인데, 예를들면 서울 리전에 강남 AZ, 용산 AZ, 송파 AZ 가 있다고 가정하자.
각기 다른 user A와 user B 두 사용자가 서울 리전에 서비스를 구축하였다.
그러면 aws에서 각 계정들에게 가용영역(AZ)를 첫번째는 강남, 두번재는 용산, 세번째는 송파 이렇게 바로 고정적으로 배치해 주는것이 아닌,
AZ-A, AZ-B, AZ-C 이런식으로 가용영역을 매핑하여 중간단계 같이 배치해주는데, 이는 보안이나 한 AZ로 트래픽 몰림을 방지하기 위함이다.
사진에서 보면 user A의 AZ-A는 Data Center 2에 연결되어 있고 user B의 AZ-A는 Data Center 1에 연결되어 있다.
이렇게 각 계정마다 가용영역을 랜덤으로 매핑함으로서 user A와 user B간의 저장소를 랜덤으로 배치하게 하여, user A가 민감한 데이터를 저장해도 어디 데이터 센터에 저장되는지 추측할수 없게 되어 보안적인 효과를 얻을 수 있다.
즉, 나의 계정의 가용영역 A는 다른 계정의 가용영역 A와 데이터센터 저장 위치가 다르다고 이해하면 된다.
또한 각 계정의 유저들이 데이터를 저장할때, 하나의 데이터 센터에만 저장을 하지 않게 하고, 각 센터에 이리저리 분산함으로서 트래픽 몰림을 방지할수 있다. (사진 처럼 각 계정마다 데이터센터 연결선이 다르니까)
따라서 여러개의 가용영역에 서버를 올려 사용하여 로드밸런싱을 통하여 트래픽을 분산시켜 한쪽 가용영역이 작동을 안하더라도 무중단 서비스를 제공할 수 있는 것이다.
정리하자면, 각 계정의 개인적인 데이터를 보호할 수 있는 보안 효과를 얻을 수 있고, 트래픽을 분산하는 일석이조의 효과가 있는 셈이다.
엣지 로케이션 (Edge Location)
엣지 로케이션은 aws의 cdn들의 여러 서비스들을 가장 빠른 속도로 제공(캐싱) 하기 위한 거점이다. 전 세계에 여러 장소에 흩어져 있다.
보다 정확히 말하자면 리전과 가용영역과 별게로 AWS의 CDN 서비스인 CloudFront과 AWS의 DNS 서비스인 Route53의 캐시 서버를 의미한다.
CloudFront란 AWS에서 제공하는 CDN 서비스를 의미한다.
CDN(Contents Delivery Network) 서비스는 콘텐츠를 보다 빠르게 전송하는 기술로, 속도 개선과 회선 비용 절감에 용이하다.
최초 요청 시에는 서버로부터 콘텐츠를 가져와 고객에게 전송하며, 동시에 CDN 캐싱장비에 저장한다.
이후에는 CDN 캐싱 장비에 저장된 콘텐츠를 바로 전송하는 방식이다.
CDN 업체에서 지정하는 컨텐츠 만료 지점까지 호출이 없으면 주기적으로 삭제한다.
Cloud Front는 EC2나 S3 같은 서비스에서 사용할 경우, 가장 가까운 엣지로 라우팅되어 콘텐츠 전송 속도를 향상할 수 있다.
이를 통해 데이터, 동영상, 애플리케이션 및 API까지 전송 가능하다.
- Static 캐싱 = 운영자가 콘텐츠를 미리 캐시 서버에 복사해서 요청 시 무조건 캐시 서버를 이용 가능
- Dynamic 캐싱 = 운영자가 미리 복사하지 않아 콘텐츠가 없을 때 Origin 서버로부터 다운받아 전달하는 방식
한번쯤은 제이쿼리 같은 라이브러리를 사용하기위해 cdn 링크를 html에 삽입해본 경험이 있을 것이다.
당연히 소스를 빠르게 다운받아 이용하기위해 속도가 중요하다는 것 쯤은 알고 있을 것이다.
즉, 이와 같이 CDN과 DNS같은 서비스들의 서버들은 리전과 별게로 여러개의 엣지 로케이션에 적용되어 서비스되고 있어 우리는 저멀리 미국 영화나 드라마를 지연 없이 바로바로 다운받아 볼수 있는 것이다.
보다 접근하기 쉬운 예시로 설명해 보겠다.
우리나라의 대표적인 스트리밍 서비스는 아프리카 TV가 있다.
만일 미국과 남아프리카, 호주에서 우리나라 서비스 아프리카TV의 방송이나 영상을 보고 싶다면, 당연히 아프리카TV 본사가 위치하고 있는 한반도 리전에 접속해서 다운로드 해야 한다.
사진에서 볼수 있듯이 길게 설명안해도 속도가 엄청나게 느릴것 같아 보인다.
거기다 오늘 보고 끄고, 내일 또 방송을 보고싶을때 그 멀리까지 다시 연결해 다운받아야 할 것이다.
이러한 단점을 극복하기위해 엣지 로케이션 이라는 개념과 시설을 사용 하는 것이다.
각 거점마다 가깝고 적당한 곳에 엣지 로케이션(임시 데이터 저장소 센터)을 배치한다. 하늘색 바둑알이 엣지 로케이션이다.
그러면 각 대륙의 사람들(검은색 바둑알)은 가까이 위치한 지역내의 엣지 로케이션에 접속해 스트리밍 서비스를 이용할 수 있게 된다.
당연히 훨씬 속도 면에서 유리하고, 또한 일정기간동안 요청한 데이터를 저장하는 기능(캐시, 콘텐츠 복사)도 갖춰 있어서 오늘 보고 내일 또 보고싶을때 저 멀리 까지 재연결 하는 일 없이 바로바로 볼 수 있는 장점도 있다.
즉, 엣지 로케이션이라함은 CDN 서비스와 사용자가 만나는 곳을 Edge라고 하며, 그 Edge가 어느 지역에 위치한 시설을 일컫는다.
리전 엣지 캐시 (Regional Edge Cache)
CloudFront의 오리진 서버(CDN)와 에지 로케이션 사이에 위치해 있다고 보면 된다.
만일 서비스를 이용하려고 할때, 엣지 로케이션에 컨텐츠가 없는 경우 리전별 엣지 캐시에서 검색 시도한다.
결국 CDN 서비스의 엣지 로케이션이랑 비슷한 개념이라 적당히 이해하고 넘어가면 된다.
# 참고자료
https://youtu.be/tvwDDM-Y-qE
https://aws.amazon.com/ko/about-aws/global-infrastructure/regions_az/
https://goddaehee.tistory.com/178
https://pyrasis.com/book/TheArtOfAmazonWebServices/Chapter02/02
https://crossjin.tistory.com/entry/AWS-%EB%A6%AC%EC%A0%84Region-%EA%B3%BC-%EA%B0%80%EC%9A%A9-%EC%98%81%EC%97%ADAvailability-Zone-AZ-%EA%B7%B8%EB%A6%AC%EA%B3%A0-%EC%97%90%EC%A7%80-%EB%A1%9C%EC%BC%80%EC%9D%B4%EC%85%98Edge-Location
이 글이 좋으셨다면 구독 & 좋아요
여러분의 구독과 좋아요는
저자에게 큰 힘이 됩니다.