[reinvent 2024] 새로운 차원으로 확장: Amazon EKS로 마이그레이션 하며 10배로 확장하는 Coinbase
Summary
이 세션에서는 코인베이스가 AWS 프로페셔널 서비스를 사용하여 여러 전략적 이니셔티브를 성공적으로 확장한 방법을 소개합니다. 코인베이스는 예측하기 힘든 시장 상황에 맞춰 급변하는 트래픽을 처리할 수 있는 높은 확장성을 가진 인프라를 필요로 했습니다. 코인베이스에서 Graviton과 EKS를 사용하여 비용 효율적이면서 확장성이 높은 인프라를 구축한 방법에 대해 설명합니다.
리인벤트 2024 테크 블로그의 더 많은 글이 보고 싶다면?
Overview
들어가며
코인베이스의 10배 확장 프로그램
코인베이스는 암호화폐 거래소입니다. 암호화폐 거래소는 비즈니스 특성상 예측하기 힘든 트래픽 패턴을 가집니다. 암호화폐의 가치가 오를 때, 급증하는 트래픽에 잘 대응하는 것이 플랫폼의 신뢰도를 높이기 때문에 비용이 많이 들더라도 인프라를 오버프로비저닝하여 운영하고 있었지만 암호화폐가 약세화되며 비용 효율성을 높여야 했다고 합니다.
코인베이스는 10배 확장 프로그램을 세 가지 스텝으로 나누어 진행했습니다.
첫 번째는 기존 x86 인스턴스에서 Graviton 인스턴스로 변경하는 것입니다.
두 번째는 EC2에서 동작하던 어플리케이션을 x86 아키텍처 워커 노드를 사용하는 EKS로 옮겨가는 것입니다.
마지막으로는 EKS의 워커 노드 또한 Graviton 인스턴스로 변경하는 것입니다.
이어서 각 단계에 대해서 설명하겠습니다.
EC2 x86 to EC2 Graviton
Graviton은 x86 인스턴스에 비해 20% 저렴하면서도 더 나은 성능을 보여주기 때문에 코인베이스는 x86 아키텍처에서 graviton으로 마이그레이션 했습니다. 마이그레이션 과정에서 발생한 문제 중 하나는 빌드 시간에 대한 부분이였는데, x86 인스턴스에서 에뮬레이션을 이용하여 graviton 빌드를 수행했을 때, 2배가 넘는 시간이 소요되었습니다. 이를 해결하기 위해 빌드 파이프라인을 개선하여 x86 인스턴스와 graviton 인스턴스에서 동시에 빌드를 하도록 구성하였습니다.
Graviton으로 마이그레이션 하게 되면서 자원 사용량 감소이 감소되게 되었고, 이로 인해 20%의 비용 감소 효과가 있었습니다. 또한 인스턴스 종류를 다변화 할 수 있었고, 레이턴시가 줄어들었습니다.
EC2 to EKS(x86)
코인베이스는 EKS 마이그레이션을 위해 주간 체크 프로그램, 적절한 팀 구성, 자동화 도구 사용 등의 다양한 방법을 적용했습니다. 우선순위가 높은 서비스부터 마이그레이션을 수행하며 높은 ROI를 증명할 수 있었습니다. 이를 통해 12 개월 동안 3500개의 서비스를 마이그레이션 할 수 있었다고 합니다.
코인베이스는 주기적으로 부하 테스트를 실행하여 10배가 많은 트래픽이 갑자기 들어올 때 서비스가 문제없이 지속되는지 테스트한다고 합니다. 실제로 이를 진행하면서, IP가 고갈 이슈 발생을 미리 파악하고 해결할 수 있었다고 합니다.
코인베이스는 EKS 마이그레이션을 수행하고 자원 사용량을 68%까지 줄일 수 있었다고 합니다. 서비스 확장을 위한 버퍼를 각각의 인스턴스나 오토스케일링 그룹이 아닌, 전체로 중앙화하여 관리할 수 있었습니다. 이를 통해 서비스 스케일 업 속도가 50% 상승하였고, 변동성이 큰 시장에서 이는 중요한 요소라고 합니다. 마지막으로 EKS를 이용하며 인프라 관리를 중앙집중화 할 수 있어 운영 부담도 크게 덜었다고 합니다.
EKS instances to Graviton
EKS의 노드를 Graviton 인스턴스로 변경함으로써 10%의 컴퓨팅 비용을 절감할 수 있었고, 더 낮은 레이턴시와 높은 가용률을 가질 수 있었다고 합니다.