AWS의 러스트 투자 이유 '성능보다 이것'

에너지 효율성에서 파이썬, 자바 압도

컴퓨팅입력 :2022/02/22 14:38

아마존웹서비스(AWS)의 소프트웨어 엔지니어가 러스트 언어를 자바나 파이썬보다 훨씬 더 환경 친화적 언어라며, 아마존의 친환경 데이터센터 전략을 뒷받침하는 방안이라고 밝혔다.

21일(현지시간) 미국 지디넷에 따르면, AWS의 셰인 밀러 소프트웨어 엔지니어와 칼 레르체 수석 엔지니어는 러스트 언어의 친환경적 강점에 대해 설명하는 블로그를 게재했다.

두 저자는 러스트의 메모리 안정성과 보안 취약점 제거란 장점과 더불어 자바와 파이썬보다 훨씬 더 친환경적이란 점을 강조했다.

러스트

러스트는 2006년 그레이든 하오레 개인 프로젝트로 시작된 개발 언어로 2010년부터 모질라에서 연구 프로젝트로 진행했다. 2015년 러스트 1.0 버전이 공개됐으며 2020년 모질라에서 러스트재단으로 지원조직이 바뀌었다.

러스트는 C, C++ 등의 기계어를 대체하는 언어로 주목받고 있다. C 언어에서 발생하는 보안 결함을 없애고, 메모리 안정성을 높였다. 러스트는 C 수준의 성능과 자원효율성을 가지면서, 자바처럼 메모리 안정성을 높인 언어로 묘사된다.

정식버전 출현 후 7년밖에 되지 않은 신생언어지만 배후 세력은 만만치 않다. AWS를 비롯해, 구글, 마이크로소프트, 모질라 등이 러스트를 적극적으로 활용하며 개선에 참여하고 있고, 리눅스 커널, 윈도, 크롬, 안드로이드 등이 러스트로 교체되고 있다. 러스트재단의 회원사는 출범당시 5개에서 27곳으로 늘었다.

프로그래밍 언어의 '에너지, 시간, 메모리' 사용 측정 벤치마크 점수(출처: 프로그래밍 언어의 에너지 효율성 연구)

셰인 밀러와 칼 레르체는 "AWS는 러스트의 지속가능성에 투자하고 있고, 지속가능하고 안전한 솔루션을 구축하는데 사용해야 한다고 믿는다"고 밝혔다.

또 "몇년 전 27개 프로그래밍 언어에 대한 10가지 벤치마크 문제를 구현하고 실행 시간, 에너지 소비, 최대 메모리 사용을 측정한 연구가 있었다"며 "C와 러스트가 에너지 효율성 면에서 다른 언어를 훨씬 능가했으며, 실제로 자바보다 약 50%, 파이썬보다 98% 더 효율적이었다"고 적었다.

이어 "C와 러스트를 광범위하게 채택하면 컴퓨팅 에너지 소비를 보수적으로 추정해도 50%까지 줄일 수 있다"고 밝혔다.

AWS는 서버리스 제품군을 지원하는 오픈소스 가상화 기술인 파이어크래커를 첫번째 러스트 구현 제품으로 2018년 공개했다. 아마존 S3, 아마존 EC2, 아마존 클라우드프론트 등이 러스트를 사용하며, 컨테이너용 운영체제(OS)로 나온 AWS 자체 리눅스 '보틀로켓'과 AWS 니트로의 시스템 구성요소도 러스트를 사용했다.

데이터센터는 전세계 에너지 소비의 1%를 차지한다. 하루당 200테라와트시 수준이다. 사용된 프로그래밍 언어는 에너지 소비에 영향을 준다.

셰인 밀러는 C 언어, 구글의 고, 파이썬, 루비, 포트란 등의 에너지 효율성을 보여주는 연구를 언급했다. 그는 "러스트는 정의되지 않은 동작의 위험 없이 C의 에너지 효율성을 제공한다"며 "메모리 안전의 이점을 잃지 않고 에너지 사용을 절반으로 줄일 수 있다"고 밝혔다.

그는 원래 자바스크립트로 작성됐지만 러스트로 재구축된 보안회사 테너블의 앱 성능을 지적했다. 러스트 앱은 CPU 성능에서 자바스크립트를 능가하며 대기 시간을 절반으로 줄이고, CPU 사용량을 75%, 메모리 사용량을 95% 줄인다.

메시징 앱인 디스코드의 경우 처음에 파이썬과 구글의 고, 엘릭서 등을 기반으로 구축됐지만, 러스트로 이전했다. 밀러는 "고는 가비지 수집(GC) 언어기 때문에 객체 생성과 릴리스 때마다 가비지 수집기가 프로그램 실횅을 중지하고 가비지 수집 단계를 실행해야 한다"고 설명했다.

러스트로 디스코드 앱을 다시 작성하면 서비스는 10배 빨라지고, 대기시간은 훨씬 줄어들어 더 적은 수의 서버만 필요로 한다. 결과적으로 에너지 소비를 줄일 수 있다.

밀러는 "러스트는 최초의 효율적인 언어가 아니다"라며 "C가 오랫동안 사용됐지만, 러스트는 안전을 희생하지 않으면서 효율적인 최초의 주류 프로그래밍 언어"라고 강조했다.

그는 "C와 C++로 작성된 모든 심각한 보안취약점의 70%는 메모리가 불안정하며, 러스트를 사용하면 불장난을 하는 듯한 느낌 없이 효율성을 얻을 수 있다"고 덧붙였다.

평생 C언어를 다뤄온 리누스 토발즈는 작년 오픈소스서밋 기조연설에서 "C로 코드를 구현하는 것은 전기톱을 저글링하는 것과 같다"며 "C의 미묘한 유형 상호 작용이 항상 논리적이지는 않으며, 거의 모든 사람에게 함정이 된다"고 말했었다.

관련기사

러스트도 단점을 갖고 있다. 가장 큰 단점은 배우기 어렵다는 점이다. 숙련된 엔지니어가 러스트를 사용해 생산성을 보이려면 해당 분야 전문가의 지원을 받아 3~6개월의 연구를 수행해야 한다. 밀러와 레르체는 "일부 엔지니어는 러스트를 배우는 것을 야채 먹는 법을 배우는 것에 비유했고, 많은 사람이 일단 생산적이면 그것을 좋아하지만 많은 엔지니어는 생산적이 되기 전 배우거나 노력하는 것을 포기한다"고 지적했다.

그들은 "지속가능성과 보안에 대한 러스트의 잠재적 영향은 브로콜리를 브라우니로 바꾸는 경우에만 실현될 것"이라고 덧붙였다.