패스틀리(Fastly), Compute@Edge를 사용해 보자
이번 포스팅에서는 패스틀리의 Compute@Edge에 대해서 알아 보도록 하겠습니다. 일반적인 CDN이라 함은, 여러분도 아시다시피 클라이언트와 오리진 사이에 CDN의 Cache서버가 들어가서 Proxy의 역할을 해 주는 것이 가장 큰 역할입니다. CDN벤더에 따라서 약간의 기능의 차이는 있을 수도 있지만 기본적인 역할에 대해서는 큰 차이가 없을 것입니다.
패스틀리에서는 엣지 컴퓨팅 서비스인 Compute@Edge라는 서비스를 시작하여 제공하고 있습니다. 패스틀리에서는 해당 서비스의 정의를 아래와 같이 안내하고 있습니다.
- Compute@Edge는 자체 시스템에서 컴파일하고 Fastly에 업로드하는 사용자 지정 바이너리를 실행할 수 있는 계산 플랫폼입니다. 보안 및 이식성은 코드를 WebAssembly에 컴파일하여 제공됩니다.
- WebAssembly(약칭 Wasm)는 스택 기반 가상 머신에 대한 이진 명령 형식입니다. Wasm은 프로그래밍 언어를 위한 휴대용 컴파일 대상으로 설계되어 클라이언트 및 서버 애플리케이션을 웹에 배포할 수 있습니다.
간단하게 요약을하면 지정된 언어로 컴파일된 바이너리를 Fastly Edge에 업로드해서 해당 바이너리를 웹브라우져상에서 실행할 수 있게 해주는 서비스 정도로 정의 할 수 있을 것 같습니다.
이 Compute@Edge로 무엇을 할 수 있을지에 대한 Demo가 아래 사이트에 있습니다만, 예를들면 게임도 컴파일해서 올리면 해당 게임을 브라우져에서 즐길 수 있습니다. 여유있으신 분들은 아래 사이트에 들어가서 잠깐 Doom게임을 즐겨 보시길 바랍니다. 옛 생각나서 재미 있네요.
DOOM | Fastly Developer Hub
A port of the original DOOM to Compute@Edge. This demo was created to push the boundaries of the platform and inspire new ideas!
developer.fastly.com
위에 예시를 들어드린 게임처럼 오리진을 거치지 않고도 실행할 수 있는 게임이나 APP이나 혹은 오리진에서 실행되어야 하는 부분을 따로 분리해서 Compute@Edge에서 실행시켜서 오리진의 부하를 줄이는 등의 활용 방법은 무궁무진 하다고 생각합니다.
현재 Compute@Edge에서 정식으로 지원되는 언어는 Rust, Javascript, Golang, AssemblyScript 4가지가 있으며, 아직 언어에 따라서 지원되는 기능에는 약간의 차이가 있는 것으로 보입니다. 아래 패스틀리의 공식 홈페이지쪽도 관심 있는 분들은 참고 부탁드립니다.
Compute@Edge services | Fastly Developer Hub
Compute@Edge services | Fastly Developer Hub
Everything you need to build on Fastly
developer.fastly.com
다음 포스팅에서는 직접 서비스를 만들어 보고 웹페이지를 띄워보는 것 까지 진행해 보도록 하겠습니다. 끝까지 읽어 주셔서 감사합니다.