Cloud Modernization 05

Local Zones와 엣지 로케이션: 지연 시간의 진짜 차이

둘 다 사용자 가까이에 있는 AWS 지점처럼 보여서 언제 Local Zone이고 언제 Edge Location인지 구분이 흐릿하다.

근거 · 교안 p17-p21

Local Zones와 엣지 로케이션을 지연 시간 관점으로 구분하기 ?? ???

1장: 지연 시간, 모두 같지 않다

솔라는 노트북 화면에 떠 있는 두 개의 창을 번갈아 보며 미간을 찌푸렸다. 왼쪽 창에서는 친구와의 영상 통화 화면이 간헐적으로 멈추며 목소리가 뚝뚝 끊겼다. 오른쪽 창에서는 해외 사이트에서 대용량 그래픽 파일을 내려받는 중인데, 파란색 진행 막대는 좀처럼 앞으로 나아갈 기미를 보이지 않았다.

“아, 정말… 이것도 느리고 저것도 느리고.”

솔라는 답답한 마음에 중얼거렸다. 어제 정리해 둔 메모가 떠올랐다. ‘AWS Local Zones와 엣지 로케이션’. 분명 두 서비스 모두 ‘지연 시간 감소’를 위한 것이라고 적혀 있었다. Local Zones는 ‘짧은 지연 시간’, 엣지 로케이션은 ‘빠른 콘텐츠 전송’이라는 문구가 나란히 붙어있었다.

솔라의 눈에는 지금 겪고 있는 두 가지 상황 모두 그저 ‘느린’ 경험일 뿐이었다. 영상 통화가 버벅이는 것도 지연이고, 파일 다운로드가 오래 걸리는 것도 지연이다. ‘사용자 가까이’에 인프라를 둔다는 공통점까지 있는데, 왜 굳이 ‘짧은 지연 시간’과 ‘빠른 콘텐츠 전송’이라는 다른 표현을 쓰는 걸까. 단어만 다른 같은 뜻 아닐까?

그때, 소파에서 조용히 책을 읽던 언니 루나가 솔라 쪽을 돌아보았다.

“둘 다 느린 건 맞는데, 답답함의 종류가 좀 다르지 않아?”

루나는 노트북 화면을 가리켰다. 솔라는 잠시 생각에 잠겼다. 듣고 보니 그랬다. 영상 통화가 끊길 때는 말이 씹히고 상대방의 표정을 놓치는, 즉각적인 상호작용이 깨지는 데서 오는 답답함이었다. 반면 파일 다운로드는 처음부터 어느 정도 시간이 걸릴 것을 예상했고, 단지 그 시간이 생각보다 더 길어지는 것에 대한 지루함이었다.

“음… 그러네. 영상 통화는 뭔가 탁구 치는데 공이 자꾸 늦게 오는 느낌이고, 파일 다운로드는 그냥 배송이 늦는 느낌?”

“좋은 비유네.”

루나가 무릎 위에 놓아두었던 작은 수첩과 펜을 집어 테이블 위로 가져왔다. 그리고는 간단한 그림 두 개를 그리기 시작했다. 하나는 양쪽에 사람을 그리고 بينهم 화살표가 오가는 그림이었고, 다른 하나는 한쪽에서 다른 쪽으로 굵은 화살표가 향하는 그림이었다.

“솔라 네가 말한 탁구가 왼쪽 그림 같아. 내 공이 상대편에 도착해서(요청), 상대가 그걸 받아쳐야(처리) 다시 내게 공이 돌아오지(응답). 여기서 지연은 공이 오가는 시간 자체보다도, 상대가 내 공에 얼마나 빨리 반응해서 되받아치느냐에 더 크게 좌우돼. 공 하나하나가 중요하고, 그 사이의 간격이 경기의 흐름을 결정하지.”

솔라는 영상 통화 화면을 보았다. 내가 말을 하면 내 목소리 데이터가 친구에게 전송되고, 친구의 컴퓨터가 그 데이터를 처리해서 스피커로 내보낸다. 동시에 친구의 목소리도 같은 과정을 거쳐 내게 온다. 실시간 대화라는 경기를 이어가려면, 이 ‘처리 후 응답’ 과정이 아주 빨라야 했다.

“그럼 파일 다운로드는 오른쪽 그림이구나. 저쪽 창고에서 이쪽 우리 집으로 커다란 상자를 그냥 한 번에 보내는 거.”

“맞아. 상자를 보내달라고 요청하면, 저쪽에서는 그냥 상자를 트럭에 실어서 보내기만 하면 돼. 중간에 내가 뭔가 말을 걸거나 상호작용할 필요가 없지. 여기서 중요한 건 상자를 얼마나 빨리 ‘처리’해서 트럭에 싣느냐가 아니라, 트럭 자체가 얼마나 빨리 우리 집까지의 거리를 주파하느냐, 즉 ‘전송’이 얼마나 빠르냐의 문제야.”

솔라는 무릎을 탁 쳤다.

“아! 알겠다. 그럼 영상 통화에서 느끼는 지연은 ‘처리’와 ‘응답’에 걸리는 시간, 즉 ‘연산 지연’에 가깝고, 파일 다운로드의 지연은 순수하게 데이터가 이동하는 데 걸리는 ‘전송 지연’이 핵심이구나!”

솔라는 방금 전까지 똑같이 보이던 ‘지연’이라는 단어를 머릿속에서 둘로 나누었다. 하나는 실시간 상호작용의 반응 속도를 결정하는 연산 지연, 다른 하나는 대용량 콘텐츠를 전달하는 속도를 의미하는 전송 지연.

다시 어제의 메모를 바라보자, 흐릿했던 문장들의 초점이 선명해졌다.

  • AWS Local Zones: 짧은 지연 시간, 로컬 데이터 처리…
  • 엣지 로케이션: 데이터 캐싱, 빠른 콘텐츠 전송…

“‘짧은 지연 시간’이라는 말이 바로 ‘연산 지연’을 줄여준다는 뜻이었구나. 그래서 ‘로컬 데이터 처리’라는 말이 붙어있는 거였어. 그리고 ‘빠른 콘텐츠 전송’은 말 그대로 ‘전송 지연’을 줄여준다는 의미였고.”

마치 뿌연 안개가 걷히는 기분이었다. 둘 다 ‘사용자 가까이’에 있지만, 그 목적이 전혀 달랐던 것이다.

하지만 새로운 궁금증이 고개를 들었다. 이제 두 지연 시간의 종류는 알겠다. 그렇다면 Local Zones와 엣지 로케이션은 구체적으로 어떤 방식으로 이 서로 다른 종류의 지연을 줄여주는 걸까? 둘 다 ‘가까이’ 있다는 사실만으로는 여전히 모든 게 설명되지 않았다.

2장: Local Zones: 리전의 확장

솔라는 자신의 데스크톱 컴퓨터 본체를 물끄러미 바라보고 있었다. 최근 출시된 고사양 게임을 돌리기엔 그래픽 카드가 아쉬웠다. ‘그래픽 카드를 최신 모델로 바꿀까, 아니면 그냥 속 편하게 클라우드 게이밍 서비스를 이용할까.’ 고민은 어제 나눈 대화의 끝자락에 가 닿았다.

‘연산 지연’을 줄이는 것. 지금 솔라가 게임에서 원하는 것도 바로 그것이었다. 화면을 더 빨리 그려내고, 입력에 즉각적으로 반응하는 것. 어제의 메모는 Local Zones가 바로 이 ‘연산 지연’을 해결한다고 했다. 하지만 여전히 무언가 명확하게 잡히지 않았다.

‘사용자 가까운 위치로 리전을 확장(배치)한다.’

솔라는 이 문장을 곱씹었다. ‘확장’이라는 말 때문에, 그냥 서울에 있는 거대한 AWS 리전(Region)의 일부를 떼어다 부산에 놓는 것처럼 느껴졌다. 하지만 그게 전부라면, 단순히 물리적인 거리가 가까워진다는 것 외에 무엇이 다를까? 연산 지연을 줄이는 특별한 방법이 있을까? 솔라는 생각의 매듭을 풀지 못한 채 루나에게 물었다.

“언니, Local Zone이 연산 지연을 줄여준다는 건 알겠어. 그런데 ‘리전을 확장’한다는 게 무슨 뜻인지 모르겠네. 그냥 리전의 축소판을 가까이 두는 거면… 그게 어떻게 연산 지연을 줄이는 핵심이 되는 거야?”

루나는 솔라의 책상 앞으로 다가와 컴퓨터 본체를 톡톡 두드렸다.

“마침 좋은 예시가 있네. 솔라 네가 지금 하는 고민이랑 똑같아. 이 컴퓨터로 고사양 게임을 더 쾌적하게 돌리고 싶다고 해보자. 방법은 두 가지가 있어.”

루나는 손가락 하나를 펴 보였다.

“첫 번째 방법. 이 컴퓨터 케이스를 열고, 안에 있는 그래픽 카드를 빼서 훨씬 더 강력한 최신형으로 교체하는 거야. 컴퓨터의 핵심 ‘연산 능력’ 자체가 강해지겠지. 이건 서울에 있는 AWS 리전의 성능을 계속해서 업그레이드하는 것과 비슷해.”

“응, 그건 알지. 가장 확실한 방법이잖아.”

“두 번째 방법.”

루나는 솔라의 컴퓨터 옆 빈 공간을 가리켰다.

“이 컴퓨터는 그대로 두고, 아주 강력한 게임 전용 컴퓨터를 한 대 더 사서 바로 옆에 두는 거야. 그리고 평소 작업은 원래 컴퓨터로 하다가, 게임을 할 때만 옆에 있는 새 컴퓨터를 쓰는 거지. 게임에 필요한 모든 연산은 바로 옆에 있는 그 컴퓨터가 전담하는 거야.”

솔라는 잠시 눈을 깜빡였다. 처음에는 그게 무슨 차이인가 싶었다. 하지만 곧 비유의 핵심을 깨달았다.

“아! 알겠다. 첫 번째 방법은 본체를 강화하는 거고, 두 번째 방법은 본체는 그대로 두고 가장 중요한 기능(게임)을 수행할 분점을 바로 옆에 두는 거구나.”

“바로 그거야. AWS 리전은 전 세계 몇몇 거점 도시에 있는 거대한 데이터센터 덩어리야. 한국에서는 서울에 있지. 부산에 사는 사용자가 서울 리전을 사용하면, 아무리 빨라도 물리적인 거리 때문에 ‘연산 지연’이 발생해. 탁구공이 서울과 부산을 오가는 시간이지.”

루나의 설명에 솔라의 머릿속 그림이 구체화되기 시작했다.

“그런데 AWS가 부산에 Local Zone을 만들었다고 생각해봐. 그건 서울 리전의 모든 서비스를 다 가져온 게 아니야. 마치 솔라 네가 게임을 위해 옆에 새 컴퓨터를 두는 것처럼, EC2(컴퓨팅)나 EBS(스토리지)처럼 ‘연산 지연’에 가장 민감한 핵심 서비스들만 떼어다 놓은 작은 분점인 거지.”

솔라는 무릎을 탁 쳤다. 이제야 ‘리전의 확장’이라는 말의 진짜 의미가 와닿았다. 단순히 리전을 축소 복사한 게 아니라, 리전의 핵심 기능, 즉 ‘연산 능력’을 사용자 가까이로 파견 보낸 것이었다.

“그럼 Local Zone은 서울 리전의 완전한 자식 같은 거네. 서울 리전의 통제를 받으면서, 그 리전의 컴퓨팅 파워를 부산에서도 똑같이 쓸 수 있게 해주는 것! 그래서 ‘짧은 지연 시간’으로 ‘로컬 데이터 처리’가 가능하다고 한 거구나. 데이터가 굳이 서울까지 갈 필요 없이 부산에서 바로 처리되니까.”

Local Zones는 단순히 지리적으로 가까운 별개의 데이터센터가 아니었다. 거대한 부모 리전과 고속 전용 네트워크로 연결되어, 리전의 컴퓨팅 능력을 그대로 확장해주는 ‘전초기지’였다. 연산이 필요한 요청이 발생했을 때, 멀리 서울까지 가지 않고 바로 코앞의 부산 전초기지에서 처리해주니 ‘연산 지연’이 극적으로 줄어드는 원리였다.

솔라는 자신의 메모에 적힌 ‘Local Zones: 짧은 지연 시간, 로컬 데이터 처리’ 문구 옆에 ‘리전의 연산 능력 확장’이라고 크게 적었다.

“좋아, Local Zone이 어떻게 연산 지연을 잡는지 완벽히 이해했어. 탁구대가 바로 내 앞에 놓인 거나 마찬가지네.”

안개가 걷히자 새로운 지평선이 보였다. 솔라는 다시 고개를 갸웃거렸다.

“그런데 언니, 엣지 로케이션도 사용자 가까이에 있는 거점이라며. 여기는 연산이 아니라 ‘전송 지연’을 줄인다고 했잖아. Local Zone이 이런 방식이라면, 엣지 로케이션은 대체 어떤 방식으로 일하는 거지? 거기는 컴퓨팅 분점이 아니라는 뜻이잖아.”

3장: 엣지 로케이션: 전송의 최적화

주말 오후, 솔라는 소파에 편하게 기댄 채 스마트폰으로 며칠 전부터 정주행하던 드라마의 마지막 화를 보고 있었다. 감동적인 결말에 푹 빠져있다가, 문득 이상한 점을 깨달았다. 와이파이가 아니라 셀룰러 데이터로 보고 있었는데도, 조금의 버퍼링도 없이 영상이 매끄럽게 재생되었다. 심지어 가장 인상 깊었던 장면을 다시 보기 위해 10초 뒤로, 1분 뒤로 여러 번 탐색 바를 옮겨도 영상은 즉시 로드되었다.

솔라는 잠시 영상을 멈췄다. ‘빠르다.’ 하지만 이 ‘빠름’은 어제 언니와 이야기했던 ‘연산 지연’의 빠름과는 결이 달랐다. 클라우드 게임의 즉각적인 반응 속도와는 다른 종류의 쾌적함. 이것은 마치… 이미 내 손안에 있는 파일을 여는 것 같은 느낌이었다.

솔라는 고개를 들어 거실 반대편에서 커피를 내리고 있는 루나를 불렀다.

“언니, Local Zone은 부산에 차려진 서울 리전의 컴퓨팅 분점 같은 거라고 했잖아. 연산이 필요한 작업을 바로 앞에서 처리해주는.”

“응, 그랬지.” 루나가 커피 향이 나는 머그잔을 들고 솔라 옆에 앉았다.

“그런데 엣지 로케이션은 좀 이상해. 여기도 사용자 가까이에 있는 거라고 했고, ‘전송 지연’을 줄여준다고 했잖아. 그런데 Local Zone이 그런 식으로 컴퓨팅 능력을 빌려주는 거라면… 엣지 로케이션은 뭘 빌려주는 거지? 여기는 컴퓨팅 분점이 아니라는 뜻이잖아.”

솔라는 자신의 스마트폰 화면을 보여주며 말했다.

“이 드라마 다시 볼 때, 아무 데나 찍어도 바로바로 뜨는 거. 이건 연산이 빠른 거랑은 다르잖아. 이미 와 있는 데이터를 빨리 보여주는 느낌인데. 혹시 이게 엣지 로케이션이랑 관련 있어?”

루나는 솔라의 스마트폰 화면 속 드라마 포스터를 보더니 빙그레 웃었다.

“정확히 봤네. 마침 좋은 예시가 바로 네 손에 있어. 솔라 네가 그 드라마를 처음 1화부터 볼 때를 생각해봐.”

“음… 당연히 스트리밍 서비스 회사 서버에서부터 내 폰까지 영상 데이터가 날아왔겠지?”

“맞아. 그 서버가 서울에 있는 AWS 리전에 있다고 해보자. 솔라 네가 처음 그 드라마를 ‘틀어줘’ 하고 요청하면, 서울에서부터 부산에 있는 네 스마트폰까지 영상 데이터가 긴 여행을 시작해. 이게 ‘원본’을 가져오는 과정이야.”

루나는 테이블 위에 놓인 냅킨에 그림을 그리기 시작했다. 한쪽 끝에 ‘서울 리전(원본 창고)’이라고 쓰고, 다른 쪽 끝에 ‘솔라 폰’이라고 썼다. 둘 사이를 긴 화살표로 연결했다.

“그런데 부산에 사는 다른 사람들도 너처럼 그 드라마를 엄청나게 많이 보는 거야. 그럼 AWS는 생각하겠지. ‘어차피 부산 사람들이 계속 찾는 똑같은 영상인데, 이걸 매번 서울에서부터 배송해주는 건 비효율적이네?’ 그래서 부산 시내 어딘가에 작은 ‘보관소’를 하나 만드는 거야.”

루나는 ‘서울 리전’과 ‘솔라 폰’ 사이에 ‘부산 보관소(엣지 로케이션)’라는 작은 네모를 그리고, 서울 리전에서 부산 보관소로 굵은 화살표를, 부산 보관소에서 솔라 폰으로 짧은 화살표를 그렸다.

“그리고는 사람들이 가장 많이 찾는 그 드라마 영상 파일을 미리 서울 창고에서 가져와 이 부산 보관소에 복사해 두는 거지. 이걸 ‘캐싱(Caching)’이라고 불러. 이제 솔라 네가 드라마를 틀면, 굳이 멀리 서울까지 갈 필요 없이 바로 이 부산 보관소에서 데이터를 가져오게 돼.”

솔라의 눈이 동그래졌다.

“아! 그럼 엣지 로케이션은 연산을 하는 곳이 아니라, 그냥 콘텐츠를 임시로 저장해두는 똑똑한 중간 창고였구나! Local Zone이 핵심 기술을 가진 ‘컴퓨팅 분점’이라면, 엣지 로케이션은 인기 상품을 미리 갖다 놓는 ‘편의점’ 같은 거네!”

“비유가 딱 맞네. 편의점은 직접 물건을 만들진 않지. 본사 공장에서 만든 물건 중에 사람들이 자주 찾는 것들만 가져다 놓고 빨리 팔잖아. 엣지 로케이션도 마찬가지야. EC2 같은 컴퓨팅 자원을 제공하는 게 아니라, CloudFront 같은 서비스를 통해 원본 서버의 콘텐츠를 복제해서 사용자에게 빠르게 ‘전송’하는 역할에 집중하는 거지.”

이해의 조각들이 제자리를 찾아 맞춰지는 기분이었다. ‘전송 지연’을 줄인다는 말의 의미가 선명해졌다. 물리적인 거리를 줄여 데이터가 이동하는 시간을 단축시키는 것. 그것이 엣지 로케이션의 핵심이었다.

솔라는 다시 자신의 메모장을 들여다봤다.

  • 엣지 로케이션: 데이터 캐싱, 빠른 콘텐츠 전송…

이제 ‘데이터 캐싱’이 ‘빠른 콘텐츠 전송’을 위한 핵심 방법이라는 것이 명확하게 보였다. Local Zone의 ‘로컬 데이터 처리’와는 목적도, 방식도 전혀 달랐다. 하나는 연산을 위한 전초기지, 다른 하나는 전송을 위한 물류 거점.

“알겠다. 이제 확실히 알겠어. Local Zone은 ‘연산 지연’을 줄이는 외과의사 같고, 엣지 로케이션은 ‘전송 지연’을 줄이는 물류 전문가 같아.”

솔라는 만족스러운 듯 고개를 끄덕였다. 하지만 곧 새로운 의문이 떠올랐다. 두 서비스의 역할이 명확히 구분되자, 오히려 더 근본적인 질문이 생겨났다.

“그럼 언니, 내 서비스가 지연 시간에 민감하다면… 언제 외과의사가 필요하고, 언제 물류 전문가가 필요한 거야? 둘 다 ‘빠르다’는 건 똑같은데, 그 목적이 다르니까 선택하기가 더 어려워졌어.”

4장: 목적이 다른 ‘가까움’

솔라는 거실 테이블에 앉아 하얀 스케치북 페이지를 가로지르는 하나의 선을 노려보고 있었다. 페이지 상단에는 ‘내 서비스가 느릴 때?’라고 적혀 있었다. 그 아래로 선이 두 갈래로 나뉘어 각각 ‘Local Zone’과 ‘엣지 로케이션’이라는 상자로 이어졌다. 문제는 두 갈래 길을 나누는 기준이 되는 질문, 그 갈림길에 서 있어야 할 이정표가 텅 비어 있다는 점이었다.

외과의사와 물류 전문가. 분명 어젯밤에는 명쾌하게 구분했다고 생각했다. Local Zone은 연산을 위한 전초기지, 엣지 로케이션은 전송을 위한 물류 거점. 하지만 막상 내 서비스에 문제가 생겼을 때 둘 중 누구를 찾아가야 할지 결정하려니 다시 눈앞이 흐릿해졌다. ‘짧은 지연 시간’과 ‘빠른 콘텐츠 전송’이라는 말은 결국 둘 다 ‘빠르다’는 뜻이 아닌가? 사용자에게 가까이 있다는 공통점 때문에, 그 목적의 차이가 희미하게 번져 버렸다.

“하아… 모르겠다.”

솔라는 결국 펜을 내려놓았다. 둘 다 ‘사용자 가까이’에서 ‘지연 시간’을 줄여준다는 사실이 오히려 선택을 더 어렵게 만들고 있었다. 마치 같은 약인데 포장만 다른 것 같은 기분이었다.

그때, 맞은편에서 조용히 자신의 태블릿을 보던 루나가 고개를 들었다. 솔라의 텅 빈 다이어그램을 잠시 들여다보더니, 복잡한 표정을 짓는 솔라에게 말했다.

“클라우드 게임을 하다가 화면이 뚝 끊겼을 때랑, 어제 대용량 파일을 받다가 진행 막대가 멈췄을 때. 둘 다 화가 났겠지만, 네가 원했던 ‘해결책’은 달랐을 거야.”

“해결책?”

솔라는 미간을 좁혔다. 그냥 둘 다 빨라지면 되는 것 아니었나?

“클라우드 게임을 할 때를 떠올려봐. 네가 조작 버튼을 누르는 순간, 그 입력 신호가 서버로 가서, 서버가 다음 화면을 계산해서 너에게 다시 보내줘야 해. 그 과정 전체가 매끄러워야 하지. 거기서 끊김이 발생했다는 건, 그 왕복 대화가 어딘가에서 막혔다는 뜻이야. 그때 네가 원한 건 ‘더 똑똑한 대화 상대’ 아니었어? 내 말을 즉시 알아듣고 반응하는 상대.”

“더 똑똑한 대화 상대… 아.”

솔라는 클라우드 게임의 끊김을 다시 떠올렸다. 답답함의 핵심은 캐릭터가 내 조작에 한 박자 늦게 반응하는 데 있었다. 내가 보낸 공을 서버가 재빨리 받아치지 못하는 느낌. 솔라가 원했던 건 거대한 데이터를 빨리 받는 게 아니었다. 오직, 나의 작은 요구에 대한 서버의 즉각적인 ‘반응’이었다.

“그럼 파일 다운로드는?” 루나가 말을 이었다. “거기선 서버랑 대화할 일이 없었지. 그냥 ‘이 파일 주세요’ 하고 요청한 뒤에, 파일 덩어리가 통째로 우리 집까지 배달되기만 기다렸잖아. 그때의 답답함은 서버가 얼마나 똑똑한지가 아니라, 순전히 배송 트럭이 느려서 생긴 거였고. 그때 네가 원했던 건 ‘더 빠른 배송 트럭’이었을 거야.”

순간, 솔라의 머릿속을 가리던 안개가 걷혔다.

“알겠다! 같은 ‘빠름’이 아니었어! 클라우드 게임에서 필요했던 건 ‘빠른 반응’이고, 파일 다운로드에서 필요했던 건 ‘빠른 배송’이었던 거야!”

솔라는 방금 내려놓았던 펜을 다시 집어 들었다. 그리고는 망설임 없이 비어 있던 갈림길의 질문을 채워 넣었다.

내 서비스는 '빠른 반응'이 중요한가, '빠른 배송'이 중요한가?

질문이 제자리를 찾자, 모든 것이 명확해졌다. Local Zone과 엣지 로케이션은 단순히 지리적으로 ‘가까운’ 서비스가 아니었다. 무엇을 위해 가까워야 하는지, 그 목적이 전혀 다른 ‘가까움’이었다.

솔라는 이정표 아래 두 갈래 길에 설명을 덧붙였다.

  • 빠른 반응이 중요하다면? → Local Zone
    • (이유: 내 요청을 즉시 ‘연산’하고 응답해 줄 똑똑한 대화 상대가 필요하니까. 이건 외과의사의 영역.)
  • 빠른 배송이 중요하다면? → 엣지 로케이션
    • (이유: 콘텐츠를 내 앞까지 신속하게 ‘전송’해 줄 물류 전문가가 필요하니까. 이건 배송 기사의 영역.)

다이어그램을 완성한 솔라는 뿌듯한 표정으로 스케치북을 들어 보였다. 처음 시작할 때의 막막함은 사라지고 명확한 기준이 눈앞에 있었다. ‘짧은 지연 시간’이라는 말이 이제는 ‘짧은 반응 시간’으로, ‘빠른 콘텐츠 전송’은 ‘빠른 배송 속도’로 구체적인 의미를 갖게 되었다.

“이제야 알겠다. Local Zone은 ‘연산 지연’을 줄여서 반응을 빠르게, 엣지 로케이션은 ‘전송 지연’을 줄여서 배송을 빠르게. 둘 다 사용자 가까이에 있지만, 목적이 완전히 달랐던 거구나.”

솔라는 만족스럽게 고개를 끄덕였다. 혼란의 근원이던 ‘가까움’이라는 단어가 이제는 명확한 선택의 기준이 되었다.

하지만 완성된 다이어그램을 보고 있자니 새로운 질문이 떠올랐다. 기준은 세웠지만, 실제 세상의 서비스들은 이처럼 간단하게 나뉠까?

“언니, 그럼… 내가 만들 서비스가 실시간 번역 챗봇이라면 어떡하지? 사용자의 말을 빨리 알아듣고 ‘연산’해서 번역해야 하니까 ‘빠른 반응’이 중요할 거고… 그럼 Local Zone을 써야 하나?”

솔라는 스스로 질문하고 답하며 고개를 갸웃거렸다.

“그런데, 만약 전 세계 사용자가 보는 라이브 스포츠 중계라면? 이건 그냥 영상을 계속 ‘배송’해주는 거니까 엣지 로케이션이 맞을까? 아니, 잠깐. 이것도 실시간으로 진행되니까 반응이 중요한가?… 갑자기 또 헷갈리기 시작했어.”

5장: 내 애플리케이션을 위한 선택

솔라의 스케치북은 더 이상 깔끔하지 않았다. 어제 완성했던 명쾌한 다이어그램, ‘빠른 반응’과 ‘빠른 배송’으로 나뉘던 갈림길 옆은 이제 어지러운 낙서와 물음표로 가득했다. ‘실시간 번역 챗봇?’이라는 글자 아래에는 Local Zone 쪽으로 화살표가 그려지다 말고 멈춰 있었고, ‘라이브 스포츠 중계?’라는 단어는 Local Zone과 엣지 로케이션 양쪽에 걸쳐 위태롭게 적혀 있었다.

분명 기준을 세웠다고 생각했는데, 막상 현실의 애플리케이션을 가져오니 경계가 다시 흐릿해졌다. 실시간 챗봇은 사용자와 끊임없이 대화하니 ‘빠른 반응’이 중요해 보였다. 그럼 Local Zone이 맞을 것이다. 하지만 라이브 스포츠 중계는 어떨까. 수많은 사람에게 똑같은 영상을 ‘배송’하는 것이니 엣지 로케이션의 역할 같기도 하고, 경기가 실시간으로 벌어지는 상황을 지체 없이 전달해야 하니 ‘빠른 반응’이 중요한 것 같기도 했다. 결국 모든 서비스는 ‘빠른 반응’과 ‘빠른 배송’을 둘 다 원하는 게 아닐까? 외과의사와 물류 전문가가 동시에 필요한 상황이라면, 대체 누구를 먼저 불러야 할까?

그때, 솔라의 고민이 담긴 스케치북을 들여다보던 루나가 조용히 입을 열었다.

“그 두 가지 복잡한 서비스는 잠시 옆에 치워두자. 대신 아주 간단한 두 가지를 비교해 보는 거야. 네가 만들 서비스가 딱 두 종류라고 상상해봐. 하나는 내가 말을 걸면 ‘야옹’ 하고 대답해주는 아주 단순한 고양이 챗봇. 다른 하나는 네가 예전에 찍었던 여행 사진 몇 장만 올려둔, 아무 기능도 없는 개인 블로그.”

루나는 테이블 위에 냅킨 두 장을 나란히 놓았다. 마치 두 개의 새로운 도화지 같았다.

“자, 이제 네가 직접 진단해보는 거야. 고양이 챗봇은 외과의사가 필요할까, 물류 전문가가 필요할까? 개인 블로그는?”

솔라는 잠시 생각에 잠겼다. 복잡한 예시에서 벗어나 극단적으로 단순한 두 가지를 마주하니, 오히려 문제의 핵심이 선명하게 보였다.

“고양이 챗봇부터… 내가 ‘안녕?’ 하고 말을 걸면, 챗봇 서버는 그 말을 알아듣고, ‘야옹’이라고 대답할지를 ‘판단’해야 하네. 비록 간단하지만 이건 명백한 ‘연산’이야. 내가 말을 걸 때마다 서버는 반응해야 해. 이건 ‘빠른 반응’이 핵심이구나. 외과의사, 즉 Local Zone이 필요하겠어.”

솔라는 왼쪽 냅킨에 ‘고양이 챗봇 → 빠른 반응 (연산) → Local Zone’이라고 적었다.

“그럼 개인 블로그는… 사용자가 사이트에 접속하면, 서버는 그냥 이미 만들어져 있는 사진이랑 글을 ‘보내주기만’ 하면 돼. 누가 접속하든 똑같은 내용을 보여주니까, 그때그때 뭔가를 계산할 필요가 없어. 이건 그냥 ‘빠른 배송’의 문제네. 물류 전문가, 즉 엣지 로케이션이 딱이겠다.”

오른쪽 냅킨에는 ‘개인 블로그 → 빠른 배송 (전송) → 엣지 로케이션’이라고 적었다. 두 냅킨을 나란히 놓고 보니, 흐릿했던 기준선이 다시 쨍하게 보였다. 솔라가 무릎을 탁 쳤다.

“알겠다! 핵심은 ‘사용자의 요청마다 새로운 연산이 필요한가?’ 이 질문이었어!”

이전까지는 막연히 ‘반응’과 ‘배송’으로만 나누려 했지만, 이제 ‘실시간 연산의 유무’라는 더 날카로운 칼날이 손에 잡힌 기분이었다. 이 새로운 기준으로 아까의 혼란을 다시 마주했다.

“실시간 번역 챗봇은 당연히 연산이 필요하고… 라이브 스포츠 중계는… 아!”

솔라는 깨달음을 얻은 표정으로 루나를 바라봤다.

“라이브 중계는 그냥 영상을 배송하는 게 아니었어! 경기장에서 벌어지는 상황을 실시간으로 영상 데이터로 ‘변환(인코딩)’하고, 그걸 사용자에게 보낼 수 있는 형태로 계속 ‘가공’해야 하잖아. 이것도 엄청난 연산이구나! VOD처럼 이미 만들어진 파일을 보내는 거랑은 차원이 다른 문제였어.”

그래서 공식 문서의 Local Zone 활용 사례에 ‘실시간 게임’, ‘미디어 콘텐츠 생성’, ‘기계 학습 추론’ 같은 것들이 있었던 것이다. 모두 사용자의 행동이나 외부 데이터에 즉각적으로 반응하여 무언가를 ‘계산’하고 ‘만들어내야’ 하는 작업들이었다. ‘전송’은 그 다음 문제였다.

솔라는 어지러웠던 스케치북 페이지를 과감하게 넘겼다. 그리고 새 페이지 맨 위에 ‘내 애플리케이션을 위한 지연 시간 서비스 선택 가이드’라고 제목을 썼다. 더 이상 혼란은 없었다. 그녀는 간결하게 두 개의 핵심 질문을 적어 내려갔다.

1. 내 서비스는 사용자의 요청에 대응하여 실시간으로 무언가를 '연산'해야 하는가? (예: 실시간 렌더링, 게임 로직 처리, AI 추론, 데이터 분석) → 그렇다면, '연산 지연'을 줄이는 Local Zone을 우선 고려한다.

2. 내 서비스는 이미 완성된 콘텐츠를 여러 사용자에게 반복적으로 '전송'하는가? (예: VOD 스트리밍, 이미지, 웹사이트 파일, 소프트웨어 다운로드) → 그렇다면, '전송 지연'을 줄이는 엣지 로케이션(CloudFront)을 우선 고려한다.

스스로 만든 명확한 가이드를 보며 솔라는 만족스러운 미소를 지었다. 이제 Local Zone과 엣지 로케이션은 혼란스러운 쌍둥이가 아니었다. 각자의 전문 분야가 뚜렷한, 믿음직한 전문가 콤비로 보였다.

“이제 어떤 서비스든 길을 잃지 않겠네.”

솔라의 스케치북을 들여다보던 루나가 조용히 말했다. 솔라는 고개를 끄덕였다. 이제 솔라의 손에는 ‘가까움’의 진짜 의미를 꿰뚫어 볼 수 있는, 자신만의 기준이 단단히 들려 있었다.