Amazon EC2 스팟 인스턴스를 통해 시뮬레이션 용량은 늘리고 비용은 낮춘 Lyft

2020년

미국 및 캐나다의 최대 운송 네트워크 중 하나인 Lyft는 세계 최고의 운송 서비스로 사람들의 삶을 개선한다는 사명을 가지고 있습니다. 승차 공유, 자전거 공유 시스템, 전기 스쿠터 및 대중교통 파트너십과 함께 Lyft는 2017년 이러한 사명을 달성하기 위한 노력의 일환으로 자체 Level 5 자율 주행 차량(AV) 부서를 출범했습니다. Lyft의 엔지니어는 AV 플릿에서 수집하는 페타바이트 분량의 데이터를 사용하여 매년 수백 만개의 시뮬레이션을 실행해 자율 주행 시스템의 성능과 안전성을 개선합니다.

하지만 이러한 시뮬레이션은 컴퓨팅 집약적이기 때문에 Lyft는 합리적인 가격으로 확장 및 축소할 수 있는 대규모 컴퓨팅 능력이 필요하다는 점을 깨닫게 되었습니다. 2012년 출시 이후 승차 공유 플랫폼에 Amazon Web Services(AWS)를 사용하고 있는 Lyft는 컴퓨팅 용량을 증가시키고, 비용을 낮추기 위해 다시 AWS로 눈을 돌렸고 결국 AV 시뮬레이션 워크로드를 해결하기 위해 Amazon Elastic Compute Cloud(Amazon EC2) 스팟 인스턴스Amazon Elastic Kubernetes Service(Amazon EKS)의 조합을 선택했습니다.

kr_quotemark

우리 회사의 컴퓨팅 플릿 중 약 77%가 이제 Amazon EC2 스팟 인스턴스에서 실행됩니다. 덕분에 전체 운영 비용을 줄이면서 컴퓨팅 용량을 크게 늘릴 수 있었습니다."

Timothy Perrett
Lyft Level 5 선임 스태프 엔지니어

Amazon EC2 스팟 인스턴스에서 시뮬레이션 실행

수천 개의 그래픽 처리 장치(GPU)에서 병렬로 시뮬레이션을 실행하는 것은 AV가 다양한 주행 상황에 대응하는 방식을 테스트 및 개선하기 위한 Level 5의 성공에 중요한 부분입니다. Lyft Level 5의 선임 스태프 엔지니어인 Timothy Perrett은 "시뮬레이션은 테스트 트랙이든 어디든, 차량이 어딘가로 가기 전에 소프트웨어의 안전성을 개선하는 핵심 방법 중 하나입니다."라고 말합니다. 시뮬레이션 공간을 탐색하려면(예: 속도, 위치 또는 차량 역학의 변화) 반복 테스트가 필요하기 때문에 많은 컴퓨팅 유연성이 필요합니다.

확실한 점은, 초기의 Level 5의 컴퓨팅 필요가 Lyft의 승차 공유 비즈니스와 크게 달랐다는 점입니다. Perrett은 "Level 5의 필요와 제약은 달랐습니다."라며 당시를 말합니다. "대부분의 컴퓨팅 필요는 급증하는 구간이 있는 대규모 일괄 워크로드를 처리하는 데 있습니다. 따라서 최대 부하까지 폭발적으로 처리한 다음 사용하지 않을 때는 빠르게 줄이는 능력이 필요했죠."라고 말합니다.

Lyft는 온프레미스 중앙 처리 장치 및 GPU에 투자할 수 있었지만 Lyft 팀에서 AWS를 사용해 본 경험으로 AWS 클라우드를 우선 선정했습니다. 그리고 테스트가 시작되었습니다. Level 5 엔지니어는 AWS에서 제공하는 완전관리형 Kubernetes 서비스인 Amazon EKS와 함께 Amazon EC2 온디맨드 인스턴스의 용량을 활용하여 시작했습니다.

온디맨드 인스턴스를 사용하여 시뮬레이션 실행을 실험한 후, Lyft의 Level 5 팀은 Amazon EC2 스팟 인스턴스로 전환하면 효율성을 개선하고 비용을 절감할 수 있을 것임을 빠르게 인식했습니다. 지금은 NVIDIA V100 Tensor Core GPU가 지원하는 Amazon EC2 P3 인스턴스를 비롯해 Amazon EC2 스팟 인스턴스에서 실행되는 시뮬레이션이 90%가 넘었습니다. 이 덕분에 Lyft는 AWS 클라우드에서 사용되지 않는 Amazon EC2 용량을 활용할 수 있어 온디맨드 도입 시 필요한 비용에 비해 최대 70% 비용을 절감할 수 있습니다. "Amazon EC2 스팟 인스턴스에서 실행을 실험할 때 우리는 프로그램이 빠르게 성장하면 운영 비용을 크게 줄일 기회가 있다는 걸 인식했습니다." Perrett의 말입니다.

효율적인 시뮬레이션 실행 지원

Level 5 팀은 높은 수요 때문에 Amazon EC2 스팟 인스턴스를 사용할 수 없는 경우에도 시뮬레이션이 계속 실행되는지 확인하기 위해 시뮬레이션 워크로드를 배포했습니다. Perrett은 이러한 배포를 'clever dance'라고 부릅니다. 엔지니어링 담당자는 어떤 클러스터(및 해당 클러스터 내 풀)가 효율적으로 운영되는지 관찰하여 리전별 영역 사용을 고려했습니다. Perrett은 "우리는 특정한 날에 주어진 리소스 풀 내에서 작업을 할당하고 작업을 재배치하는 방법을 점점 지능적으로 활용할 수 있게 되었습니다."라고 언급합니다. 팀에서는 Amazon EKS를 사용하여 리소스 풀의 우선순위를 정하고 확장해 작업이 인스턴스를 효율적으로 사용할 수 있었습니다.

또한 엔지니어링 팀은 사용 가능한 기기에 따라 다양한 하드웨어에서 시뮬레이션이 작동할 수 있도록 신중하게 시스템을 설계했습니다. Lyft에서는 이를 플릿 다양성이라고 부릅니다. Perrett은 "우리는 사용 가능한 인스턴스라면 어떤 유형에서든 스택이 잘 작동하도록 만드는 데 엄청난 노력을 기울였습니다. 예를 들면 Amazon EC2 P3 인스턴스와 Amazon EC2 P2 인스턴스가 있습니다."라고 설명합니다. 이러한 유연성 덕분에 Level 5 엔지니어는 수요가 많을 때에도 시뮬레이션을 예약하기 위해 기다릴 필요가 없습니다.

또한 Lyft는 시뮬레이션 및 AV 플릿에서 수집한 엄청난 양의 데이터를 관리해야 하기 때문에 테스트 차량에 장착하는 센서 수가 늘어남에 따라, 계속해서 확장되는 데이터 세트를 저장하고 데이터 세트에 액세스하는 데 Amazon Simple Storage Service(Amazon S3)를 활용합니다. 초기에 Level 5 팀이 했던 것처럼 AV 및 시뮬레이션에서 페타바이트 수준의 데이터를 수집 및 저장하고 해당 데이터를 클라우드로 직접 전송하려면 비용이 많이 듭니다. Lyft는 이 비용을 줄이기 위해 Level 5 엔지니어링 센터와 클라우드 시스템 간 전용 네트워크 연결인 AWS Direct Connect를 사용합니다. Perrett은 "우리는 AV 플릿을 운행하는 장소에 연결하는 고용량 네트워크를 갖게 되었습니다."라며 "이제는 페타바이트당 훨씬 저렴한 비용으로 데이터를 업로드하고 있습니다."라고 언급합니다.

Amazon EC2 스팟 인스턴스에서 시뮬레이션 트래픽을 조심스럽게 분할한 뒤 보냄으로써, Lyft의 Level 5 엔지니어링 팀은 실행 시의 시뮬레이션 비용을 크게 줄였습니다. Perrett은 이를 이렇게 설명합니다. "전체 Level 5 워크로드의 컴퓨팅 플릿 중 약 77%와 AV 시뮬레이션 워크로드의 90% 이상이 이제 Amazon EC2 스팟 인스턴스에서 처리되어 전반적으로 약 3분의 2의 비용 절감 효과가 있었습니다." 또한 "전체 운영 비용을 줄이면서 컴퓨팅 용량을 크게 확장할 수 있었죠."라고 덧붙였습니다.

미래를 위한 운송

AWS로 비용을 크게 절감하면서 수백만 개의 시뮬레이션을 실행할 수 있게 된 Lyft의 엔지니어링 팀은 사무실 내에서 테스트를 실행할 수 있게 되어 실제 차량을 현실 세계로 내보내기 전에 소프트웨어 변경에 대한 확신을 가질 수 있습니다. "시뮬레이션은 차량을 테스트 트랙으로 끌고 나가는 것보다 훨씬 비용 효율적인 소프트웨어 변경 검증 수단입니다." Perrett의 말입니다. "이로 인해 엔지니어링 담당자의 반복 작업 시간이 줄고 단기간 내에 안전성 및 소프트웨어 품질을 개선할 수 있습니다."

수백만 개의 시뮬레이션을 실행할 수 있는 Level 5의 역량은 앞으로 흥미로운 개발이 이어질 것임을 암시합니다. 다른 AWS 서비스에 더해 Amazon EC2 스팟 인스턴스와 Amazon EKS를 함께 사용한 Lyft는 자율 주행 차량이 안전하고 신뢰할 수 있는 운송에 대한 접근성을 개선하는 수준으로 전 세계 사람들을 더 가까이 안내하고 있습니다.


Lyft 소개

미국 및 캐나다의 최대 운송 네트워크 중 하나인 Lyft는 세계 최고의 운송 서비스로 사람들의 삶을 개선한다는 사명을 가지고 있습니다. 이 회사는 승차 공유, 전기 스쿠터, 자전거 공유 시스템, 대중교통 파트너십을 제공합니다.

AWS의 이점

● 컴퓨팅 비용을 3분의 2까지 절감
● 컴퓨팅 용량을 크게 확장
● 자율 주행 차량(AV) 개발 속도 개선
 


사용된 AWS 서비스

Amazon EC2

Amazon Elastic Compute Cloud(Amazon EC2)는 안전하고 크기 조정이 가능한 컴퓨팅 파워를 클라우드에서 제공하는 웹 서비스입니다. 개발자가 더 쉽게 웹 규모의 클라우드 컴퓨팅 작업을 할 수 있도록 설계되었습니다.

자세히 알아보기 »

Amazon EC2 스팟 인스턴스

Amazon EC2 스팟 인스턴스를 사용하면 AWS 클라우드에서 미사용 EC2 용량을 활용할 수 있습니다. 스팟 인스턴스는 온디맨드 요금과 비교하여 최대 90% 할인된 금액으로 제공됩니다. 다양한 비저장, 내결함성 또는 유연한 애플리케이션에 스팟 인스턴스를 사용할 수 있습니다.

자세히 알아보기 »

Amazon EKS

Amazon EKS는 완전관리형 Kubernetes 서비스입니다. EKS는 업스트림 Kubernetes를 실행하고 Kubernetes와의 호환을 인증 받았기 때문에 커뮤니티에서 제공하는 오픈 소스 도구의 모든 혜택을 활용할 수 있습니다.

자세히 알아보기 »


시작하기

산업 분야를 불문하고 다양한 규모의 기업들이 AWS를 통해 매일 비즈니스를 혁신하고 있습니다. 지금 전문가와 상담하고 AWS 클라우드로의 여정을 시작하세요.