Events/AWS re:Invent 2021

AWS re:Invent 2021 in Las Vegas 참관기 by Eiley

Tech HR 2022. 1. 3. 15:54

 

안녕하세요, 데이터플랫폼개발팀 아일리입니다.

이번에 좋은 기회로 2021.11.29(금) - 2021.12.03(금) 약 5일간 진행된 AWS re:invent 행사에 참석하게 되었습니다.

 

이 행사는 Amazon Web Services에서 매년 진행하는 행사로

올해에는 미국 Nevada주의 Las Vegas에서 총 세 개의 호텔을 빌려 진행되었습니다.

 

아쉽게도 코로나 때문에 올해에는 평소보다 훨씬 간소화된 규모로 진행되었다고 합니다. 기존에 데이터플랫폼개발팀에서도 카카오웹툰 서비스의 DB를 실시간 수집을 하기 위해 AWS의 EKS, MSK, S3와 같은 서비스를 사용하고 있기에 관심을 가지고 참석하였습니다.

 

출국 준비와 한국 출국 과정

세션 등록

AWS re:invent의 입장권을 등록하고 나면 등록 페이지에서 듣고싶은 세션을 선착순으로 신청해야 합니다. 오랜만에(?) 대학교 수강신청을 하는 기분으로 신나는 마음을 진정시키며 세션을 골라보았습니다. 개인적으로 EKS, S3에 관한 좋은 세션을 많이 등록하고 싶었는데.. 순식간에 정원이 차버려서 Wait list에 올라가거나 아니면 그마저도 차버리는 안타까운 현상이 있었습니다. 느낌상 좋아보이고 유익해보이는 세션일 수록 더 빨리 차버리는 것 같았습니다. Hands-on 실습이나 워크샵 세션들, EKS같이 인기 많은 서비스를 다루는 세션들이 특히 인기가 많았습니다. 그리고 남는 것은 특정 회사에서 Sponsor하여는 홍보 느낌이 많이 나는 세션들은 끝까지 자리가 남아있었습니다. 나중에 알았지만 인기가 많은 세션들은 현장에 가서 대기하면 No show인원만큼 들여보내주기는 하더군요.. 저는 원하는 모든 세션에 등록을 성공하지는 못했지만 나쁘지 않은 조합으로 신청했었고 Sponsor가 있는 세션을 듣기보다는 차라리 기다려서 듣고싶은 세션을 들을 수 있었습니다.

 

출국 준비

오미크론 변이가 막 나타난 시점에 출국을 하게 되었는데 준비과정은 간단하지는 않았습니다. 비행기를 타기 위해서 작성 및 제출해야 하는 서류들이 많았고 영문으로 결과가 나오는 PCR 테스트를 받아야 했습니다. 영문 결과지를 제공해주는 곳이 별로 없어서 직접 인천공항의 검사소에 가서 받고 왔습니다. 업무 하면서 서류, 검사 준비를 하느라 출국 전에 매우 정신이 없었던 것으로 기억합니다. 라스베이거스까지 직항이 없어서 LA에서 경유를 했습니다.

LA 가는 중 태평양 위에서
네모 반듯한 LA의 전경

 

Las Vegas 도착 및 re:invent Pass 수령

의외로 그다지 까다롭지 않았던 입국 심사를 마치고 Las Vegas에 도착하여 짐을 풀고 re:Invent 행사장에 가서 Pass를 수령하였습니다. 묵고있던 호텔에서 패스 수령하는 호텔인 Venetian까지는 걸어서 15분정도 걸렸는데 5분마다 셔틀이 수시로 운행을 해서 아주 편하게 이동할 수가 있었습니다. Venitian에 도착해서는 밑에 사진에서처럼 Pass를 받기 위한 줄이 매우 길었는데 발급을 도와주는 스태프 인원이 많아서 생각보다 줄이 금방 줄어들었습니다. 행사장 내에는 DJ가 있어서 직접 디제잉을 하고 조명도 화려해서 딱딱하기보다는 캐쥬얼하고 신나는 분위기였습니다. 그리고 일하는 스태프들도 굉장히 친절하고 신나게 일하는 분위기여서 시차와 긴 여정에 지쳤지만 덩달아 기분이 좋아졌던 것 같습니다.

 

Las Vegas와 re:Invent 행사의 전반적인 분위기

행사 전반적으로 정말 매끄러워서 역시 AWS가 한 두번 진행해본 것 같지 않고 노련하다는 느낌이 들었습니다. 행사 참여자들이 많이 묵는 호텔들과 라스베이거스 길 곳곳에 파랑색 날개를 단 길 도우미들이 셔틀 타는 곳과 행사장 위치를 알려주어서 길을 잃지 않을 수 있었고 세션 중간에 휴식을 취할 곳 마련이 잘 되어있었습니다. 그리고 배고프지 않도록 부페 형식으로 아침 점심을 제공하였고 행사장 곳곳에 과일, 치즈 커피와 같은 간식거리가 마련되어 있었습니다.

 

Las Vegas는 LA에서 비행기로 40분정도 되는 곳에 위치한 곳인데 사막이 대부분을 차지하는 Nevada주에 있습니다. 사막 한 가운데에 도시가 형성되어 있는데 “Las Vegas Strip” 이라는 큰 길을 중심으로 고층의 호텔과 카지노가 밀집해있습니다. 고든 램지 레스토랑등 각종 레스토랑, 쇼와 클럽이 발달하여 낮보다는 밤에 더 화려한 곳입니다. 실제로 유동인구가 낮보다는 밤에 더 많다는 느낌이 들었습니다. 밤에 벨라지오 호텔의 분수 공연과 불 쇼가 있고 건물들의 조명도 화려해서 도시 미관 자체도 낮보다는 밤에 더 빛을 발하는 곳입니다. 큰 규모의 호텔과 회의실이 많고 비교적 숙박료가 저렴하기에 AWS re:Invent와 같은 큰 행사를 열기에 최적의 장소라고 생각합니다. 추후에도 아마 Las Vegas에서 계속 행사가 열리지 않을까 싶습니다.

행사장 중 하나인 시져스 포럼에서 휴식 및 케이터링

 

한국과 다르게 따뜻한 날씨에도 미세먼지 없이 맑은 하늘이 인상깊었습니다..ㅠ

 

세션

여러가지 세션을 들었지만 그중에 하나인 How Netflix operates mission-critical data stores on AWS세션에 대해 감상을 적어보고자 합니다.

 

EVCache는 넷플릭스에서 자체 개발한 Memcached 기반의 분산 key-value입니다. Memcached를 저희 팀에서 직접 사용하고 있지는 않지만 넷플릭스에서 큰 트래픽을 대응하는 캐싱 시스템을 어떻게 구성하고 있는지 궁금해서 들어보았습니다.

EVCache는 기본적으로 Memcached를 Netflix의 요구사항에 맞게 가공한 wrapper 프로젝트라고 볼 수 있습니다.

Multi-region에서 서비스되는 Netflix 특성 상 EVCache는 AWS의 multi region에서 Global replication에 특성화 되어있고 Failure가 있을 때 회복력이 강하다는 장점이 있으며 zero-downtime으로 배포가 가능하다고 합니다.

 

EVCache는 AWS의 세개의 리젼에서 사용되고 있으며, 놀랍게도(?) 단 4명의 엔지니어가 투입되어 운영되고 있습니다. 그리고 160개의 클러스터, 18,000개의 서버가 사용되고 있으며 EVCache로 1초에 1500만번의 replication이 일어나고 있다고 합니다. EVCache를 사용하면 이정도 throughput을 코피 한방울 없이(발표자 단어 그대로) 서비스할 수 있다고 합니다.

 

한 개의 리젼에 EVCache 클러스터가 서비스 하는 모습입니다. 각각의 AZ의 EVCache Node가 세개씩 배포되어 있고 각각의 AZ에 full copy of data가 존재한다고 합니다. 세개의 노드가 key space를 균등하게 나누어 담당하고 있고 scale out이 필요한 경우 노드를 추가하여 처리량을 늘릴 수 있습니다. key space를 나누는 과정에서 Consistent Hashing을 사용하여 data sharding을 합니다. Clinet server는 항상 local AZ에 있는 cluster로 요청을 보내며 write이 발생하는 경우 모든 AZ의 모든 replica로 전달이 됩니다.

 

Across Region이 중요한 데이터의 경우 다음과 같이 동작합니다.

Inter Region Replication같은 경우에는 Kafka와 SQS 같은 큐를 이용하여 비동기적으로 진행됩니다.

 

유저가 넷플릭스 Homepage에 접속하면 그 유저의 viewing history와 특성에 맞는 컨텐츠를 렌더링 하기 위해 수많은 Micro Services로 API call을 하게 됩니다. 가장 오른쪽에 API call이 끝나는 지점이 Data Store인데 80%가 EVCache라고 합니다. 이렇게 Netflix는 EVCache에 크게 의존하여 사용하고 있습니다. EVCache의 가장 중요한 use case는 유저의 아주 많은 read request가 Cassandra같은 Persistent Stroage에 큰 영향을 주지 않도록 한다는 점입니다. 그리고 아주 빠르게 유저의 read request를 서빙할 수 있습니다.

 

또한 EVCache는 두가지 타입을 사용하는데 한 개는 데이터와 메타데이터 모두 In-memory에만 저장하는 타입이고 다른 하나는 SSD disk에도 함께 저장하는 타입입니다. 넷플릭스에서 여러 use-cases를 관찰한 결과 payload 사이즈가 비교적 작고 RPS가 높은 경우에는 In-memory only type으로, 반대로 payload size가 크고 RPS가 낮은 경우에는 SSD에도 함께 저장하는 방식이 효율적이라고 합니다.

 

이 외에도 EVCache가 매우 failure resilient한데 Cluster의 한 node에 장애가 발생해서 data가 유실되었을 시 어떻게 EVCache가 스스로 장애 회복을 하는지도 흥미로웠습니다. 이 과정을 “Instance Warming” 이라고 부릅니다.

 

instance 3에 장애가 나서 data가 유실되고 새로운 instance가 뜨게 됩니다. 그러면 health check을 하고 있던 control plane 역할을 하는 Cache warmer controller가 다른 AZ의 건강한 클러스터에게 데이터를 EBS나 S3로 덤핑하라고 명령합니다. 덤핑이 끝나면 Cache Populator가 새로 뜬 instance 3에 덤핑된 Cache를 populate하게 됩니다.

 

이 외에도 크리스마스와 같은 특수 상황에서 갑자기 트래픽이 많아져 Scale out이 필요한 경우에도 어떻게 대응하는지에 대한 설명도 있었습니다.

 

우리와 비슷하게 컨텐츠를 서비스하는 회사인 넷플릭스에서 기존의 memcached를 강화하여 AWS에서 어떻게 서비스하여 사용하고 있는지 엿볼 수 있는 좋은 세션이었습니다. 더 구체적인 내용과 전체 세션은 이곳에서 감상하실 수 있습니다.

 

마치며

AWS re:invent 2021의 모든 세션은 다음 링크에서 발표 자료와 영상을 함께 감상하실 수 있습니다. 현재는 On-demand 웹사이트에만 올라와 있는 것 같지만 추후에는 Youtube에서도 발표를 확인할 수 있는 것으로 알고 있습니다.

AWS re:Invent 2021

 

AWS re:Invent 2021

Need to register? Trouble logging in?

virtual.reinvent.awsevents.com

 

 

온라인으로도 모든 세션을 들을 수는 있지만 현장에서 직접 듣는 것은 또 다른 재미가 있었던 것 같습니다. 넷플릭스처럼 전세계인이 사용하고 기술적으로도 훌륭한 회사에서도 AWS를 많이 사용하고 AWS 위에서 더 좋은 아키텍쳐를 위해 고민한 흔적들을 보면서 클라우드를 잘 활용하여 글로벌 서비스를 하는 것이 점점 더 당연한 시대가 된 것 같다는 생각을 했습니다.그리고 AWS가 많은 부분을 편리하게 해주는 만큼 비용도 나가는 것이니 비용 부분을 스마트하게 고려하면서 잘 사용하는 것도 중요하다는 생각도 들었습니다. 기회가 된다면 오프라인으로 re:Invent에 참석하는 것을 추천드립니다. 코로나가 종식되어 더 많은 분들이 걱정 없이 참석할 수 있는 때가 왔으면 좋겠습니다.

 

감사합니다!

 

EVCache 읽을거리

https://mplay-assets.s3.amazonaws.com/sites/awsreinv21/_uploads/assets/srnoceftjjcjtmyj_awsreinv21.pdf

https://netflixtechblog.com/caching-for-a-global-netflix-7bcc457012f1