Coinbase, AWS Step Functions를 사용하여 몇 초 만에 AWS에 안전하게 배포

600x400_Coinbase_Logo resize

암호화 화폐는 자금에 대한 분산 액세스를 제공하며, 자금을 받는 당사자를 제외하고는 누구도 되돌릴 수 없는 현금과 같은 거래를 가능하게 합니다. 이러한 특성은 법을 준수하는 투자자뿐만 아니라 악의적인 행위자(암호화 화폐가 더 널리 사용됨에 따라 암호화 화폐 절도의 동기가 증가하고 절도 기회를 노림) 사이에서도 암호화 화폐의 인기를 높이는 요인이 되고 있습니다. FBI의 IC3(Internet Crime Complaint Center)에 보고된 암호화 화폐 도난은 2018년에 총 1억 8,200만 달러에 이르며 이 수치는 2017년에 비해 212% 증가했습니다. 이는 사기로 인해 실제로 발생한 전 세계 암호화 화폐 손실의 일부에 불과할 가능성이 높습니다.

"암호화 화폐 거래소 해킹은 세계 최대의 깃발 탈취 게임입니다.” 전 세계에 3천만 명의 고객이 있으며 거래 규모가 총 2,200억 달러에 이르는 디지털 통화 지갑 및 플랫폼인 Coinbase의 수석 인프라 엔지니어, Graham Jenson은 이렇게 말합니다. “가장 큰 거래소 중 하나인 Coinbase는 가장 큰 타겟 중 하나이기도 합니다.”

Coinbase는 암호화 경제의 신뢰할 수 있고 안전하며 합법적인 운영 센터가 되겠다는 목표를 가지고 보안, 규정 준수, 기술, 고객 지원, 디자인 등에서 세계적인 수준을 구현하기 위해 노력하고 있습니다. 이러한 이유로 Coinbase는 2015년부터 Amazon Web Services(AWS)를 기본 인프라 공급자로 사용했으며, 최근에는 소프트웨어 배포 프로세스 개선의 일환으로 AWS 기술을 추가로 통합했습니다.

공격으로부터 고객을 보호하기 위해 Coinbase 엔지니어는 모든 회사 시스템에 대한 업데이트 및 새 기능을 빠르고 안정적이며 안전하게 배포할 수 있어야 합니다. 일부 소프트웨어 배포는 완료하는 데 20시간 이상이 필요합니다. 이러한 프로세스를 간소화하고 강화하기 위해 Coinbase는 AWS Step FunctionsAWS Lambda를 사용하여 재사용 가능한 공통 프레임워크를 빌드했습니다. 이 프레임워크는 이전에는 임시 배포자 포트폴리오를 위한 것이었습니다. (AWS Lambda는 이벤트에 대한 응답으로 코드를 실행하는 서버리스 플랫폼이며, AWS Step Functions는 여러 AWS 서비스를 서버리스 워크플로로 조정합니다.)

"AWS Step Functions와 AWS Lambda를 사용하여 우리의 성공적인 미션 크리티컬 배포 비율이 90%에서 97%로 증가했습니다."라고 Jenson은 말합니다.

“문제 티켓이 크게 감소했습니다. 이는 AWS Step Functions가 엔지니어에게 제공하는 가시성 이점 때문입니다.”

Graham Jenson, Coinbase 수석 인프라 엔지니어

  • Coinbase 소개
  • 이점
  • 사용된 AWS 서비스
  • Coinbase 소개
  • Coinbase는 샌프란시스코에 본사를 둔 디지털 통화 지갑 및 플랫폼입니다. 이 회사는 3천만 명의 고객을 보유하고 있으며 2,200억 달러가 넘는 디지털 통화(예: 비트코인, 이더리움 및 라이트코인) 거래를 지원했습니다.

  • 이점
    • 성공적인 배포 비율이 90%에서 97%로 증가
    • 새 AWS 계정을 추가하는 데 필요한 시간을 며칠에서 몇 초로 단축
    • 해결된 티켓 수 대폭 증가
  • 사용된 AWS 서비스

AWS Step Functions: “정확히 필요한 바로 그것”

Jenson은 Coinbase의 보안을 더욱 강화할 방법을 모색하면서 회사의 자동화된 배포 파이프라인을 향상할 기회를 확인했습니다. "우리에게는 각각 다른 인터페이스와 복잡성을 가진 여러 배포자가 있었습니다."라고 Jenson은 말합니다. "저는 사용자 입력을 검증하고 AWS에 코드를 안전하게 릴리스하며 엔지니어에게 방해가 되지 않는 배포자를 신속하게 빌드할 수 있도록 지원하는 공통 프레임워크를 원했습니다."

솔루션을 연구하는 과정에서 Jenson은 AWS Step Functions에 관해 알게 되었습니다. "문서를 검토하자마자 Step Functions가 우리에게 정확히 필요한 바로 그것임을 깨달았습니다."라고 Jenson은 말합니다. "Step Functions는 최대 1년 동안 상태를 유지할 수 있고 확장성이 뛰어나며 특정 오류가 발생한 후 자동으로 처리하고 재시도하는 방법을 쉽게 기술할 수 있습니다."

AWS Lambda 및 AWS Step Functions 기반 프레임워크를 사용하여 그리고 AWS Identity and Access Management(AWS IAM) 및 Amazon Simple Storage Service(Amazon S3)를 사용하여 새로운 배포자 클래스를 빌드하기로 선택함으로써 Coinbase는 구현 시간을 단축할 수 있었으며 초기에 짧은 교육 기간만 필요했습니다. Jenson 팀이 빌드한 첫 번째 배포자 즉, 오픈 소스 AWS 배포자인 Odin은 프로젝트 릴리스의 설명을 가져오고 Amazon Elastic Compute Cloud(Amazon EC2) Auto Scaling 그룹을 사용하여 AWS로 안전하게 시작합니다.

"아이디어에서 구현 작업과 Odin을 솔루션으로 마이그레이션하는 작업에 이르기까지, 개념 정립에서 프로덕션 적용까지 통틀어 6개월이 걸렸습니다."라고 Jenson은 말합니다. "하지만 Odin 빌드에 사용된 프레임워크 및 코드를 재사용할 수 있기 때문에 다음 두 배포자를 프로덕션에 배치하는 데는 단 몇 주만 걸렸습니다. 그리고 이제부터는 더 빨라질 뿐입니다."

Step Functions로 간소화된 아키텍처

새로운 접근 방식은 Coinbase 아키텍처의 복잡성을 크게 줄였으며 이에 따라 Jenson 팀의 가시성이 향상되었습니다.

"우리의 이전 배포자는 웹 후크, 콜백, Amazon S3 레이아웃, 버킷 및 AWS IAM 역할이 모두 서로 달랐으며 다양한 통신 및 폴링 수단을 사용했습니다. 그래서 우리가 필요한 가시성을 확보하기가 정말 어려웠습니다."라고 Jenson은 말합니다. "이제 모두 동일한 AWS Lambda 및 AWS Step Functions 기반 배포자를 사용하여 모두 동일한 방식으로 배포자를 운영하고 상호 작용합니다. 우리는 실제로 Step Function을 통해 데이터 플로우를 관찰하고, 특정 경로를 따라 장애를 식별하며, 이를 해결하기 위한 조치를 취할 수 있습니다."

이러한 간편성으로 인해 AWS 계정 추가 프로세스의 속도가 빨라지고 보안이 향상됩니다. "AWS IAM 수임 역할로 AWS Lambda를 사용하면 고유한 개별 구성이 있는 서비스 전체가 아니라 단일 AWS IAM 역할로 AWS 계정을 온보딩할 수 있습니다."라고 Jenson은 말합니다. "AWS Lambda 및 AWS IAM을 사용하여 새 AWS 계정을 추가하는 데 필요한 시간을 며칠에서 몇 초로 단축했습니다."

또한 새로운 솔루션은 감사 기능도 간소화합니다. "우리는 모든 배포에 대해 단일 감사 추적을 제공하는 단일 Step Function을 통해 여러 계정을 활성화할 수 있습니다."라고 Jenson은 말합니다. "그러면 모든 계정에서 발생한 일을 쉽게 이해할 수 있으며 감사 추적을 다시 구현할 필요 없이 높은 수준의 보안으로 새 계정을 활성화할 수 있습니다."

엔지니어가 독립적으로 장애를 극복할 수 있도록 권한을 부여함으로써 솔루션은 인프라 팀의 부담도 줄여줍니다. "실패한 배포와 관련된 문제 티켓이 크게 감소했습니다."라고 Jenson은 말합니다. "이는 AWS Step Functions가 엔지니어에게 제공하는 가시성 때문인데, 이러한 가시성을 통해 엔지니어는 고유한 문제를 진단하고 해결할 수 있습니다."

이러한 내부적, 기술적 이점이 모두 더해지면 보안이 강화되며 고객 요청에 더 빠르게 응답할 수 있습니다. "AWS Step Functions 및 AWS Lambda를 기반으로 빌드된 배포자를 통해 엔지니어는 코드를 프로덕션으로 안전하게 이동할 수 있습니다."라고 Jenson은 말합니다. "결과적으로 새로운 기능을 더 자주 릴리스하고, 보안 위협에 더 빠르게 대응하며, SLA를 더 쉽게 달성할 수 있게 되었습니다. 이를 통해 훨씬 더 효율적이고 안전한 고객 환경을 구현할 수 있습니다."


자세히 알아보기

AWS Step Functions에 대해 자세히 알아보기