AWS 비하인드 스토리 – Amazon DynamoDB UpdateTable 속도 향상
우리는 종종 AWS의 혁신 속도에 대해 이야기하고 그 결과를 이 블로그, AWS의 새로운 소식 페이지 및 주간 AWS on Air 방송에서 공유합니다. 오늘은 약간 다른 유형의, 무대 뒤에서 일어나는 혁신에 대해 말씀드리고자 합니다.
AWS 고객은 각자가 다른 조합의 서비스를 고유한 방식으로 사용하고 있습니다. 모든 서비스는 계측 및 모니터링되고 서비스의 설계, 구축, 운영, 확장 및 발전을 담당하는 팀은 모든 결과 지표에 지속적으로 주의를 기울입니다. 지표는 서비스가 어떻게 사용되고 부하 상태에서 어떻게 작동하는지에 대한 인사이트를 제공하며, 주로 가용성 및 성능 향상과 비용 절감을 추구하기 위한 최적화 영역을 부각시켜 줍니다.
개선이 필요한 부분이 파악되면 팀이 계획을 수립하고 사전 프로덕션 환경에서 변경 사항을 적용 및 테스트한 다음 여러 AWS 리전에 배포합니다. 이러한 작업은 지금까지 일상적으로, 외부로 드러내는 일 없이 진행되어 왔습니다. AWS의 모든 측면은 고객이 아무런 행동을 취하지 않아도 점점 더 개선되어 가고 있습니다.
DynamoDB UpdateTable
이 게시물에는 새 클래스를 사용하기 위해 테이블을 수정하는 방법도 설명되어 있습니다. 수정 작업은 UpdateTable
함수를 호출하며, 이 함수가 바로 이번 게시물의 주제입니다.
AWS 기능 및 서비스를 출시할 때마다 거의 그랬던 것처럼, 고객은 즉시 새로운 테이블 클래스를 활용하기 시작했습니다. 새 테이블을 생성하고 기존 테이블을 수정하여 수정이 완료되면 곧바로 가격 인하의 혜택을 누릴 수 있었습니다.
DynamoDB는 고도로 분산된 스토리지 아키텍처를 사용합니다. 각각의 테이블은 여러 파티션으로 분할되며, 스토리지 클래스 변경과 같은 작업은 파티션 전체에 걸쳐 병렬로 수행됩니다. DynamoDB 팀은 수많은 지표를 검토한 결과, 병렬 처리를 개선하고 병렬 작업을 관리하는 데 소요되는 시간을 단축할 수 있는 방법을 찾았습니다.
이 변화는 크기가 500GB가 넘는 Amazon DynamoDB 테이블에 극적인 효과를 가져왔으며, 테이블 클래스를 업데이트하는 데 걸리던 시간이 최대 97%까지 단축되었습니다.
우리는 이처럼 개선 사항을 적용할 때마다 “이전”과 “이후”의 지표를 수집하고 결과를 내부적으로 공유하여 다른 팀이 유사한 개선 작업을 진행할 때 앞선 경험을 통해 배울 수 있도록 합니다. 그뿐만 아니라, 우리가 구현하는 변화는 다른 변화에 대한 계기를 열어 특정 서비스 또는 기능을 사용하는 모든 사람에게 다시 한번 도움을 주는 긍정적인 피드백의 순환고리를 만들어 냅니다.
모든 DynamoDB 사용자는 버전 업그레이드 또는 유지 관리를 위해 가동을 중단할 필요 없이 즉시 이렇게 향상된 성능을 활용할 수 있습니다(DynamoDB에는 유지 관리 기간도 없음).
이와 같은 점진적인 성능 향상 및 운영 개선은 외부에 특별히 알려지는 일이 없이 일상적으로 진행됩니다. 그러나 자체적인 측정 결과를 통해 AWS의 일부가 더 좋아지거나 더 빨라졌다는 고객의 피드백을 듣는 일은 항상 우리를 기쁘게 합니다.
리더십 원칙
이 게시물을 작성할 준비를 하면서, AWS에서 내부적으로 진행되는 이러한 변화에 대해 생각하고 있을 때 몇 가지 Amazon 리더십 원칙이 떠올랐습니다. DynamoDB 팀은 크기가 500GB를 초과하는 테이블을 사용하는 모든 DynamoDB 사용자에게 혜택을 줄 수 있는 변경을 구현하여 ‘고객에 대한 집착'(Customer Obsession)의 정신을 보여주었습니다. 개발팀은 UpdateTable
함수를 구현하는 더 나은 방법을 고안하고 단순화해야 했습니다.
AWS 고객은 별도의 조치 없이 혜택을 받을 수 있습니다. 그러나 AWS에서 특정 사용 사례에 특별한 주의를 기울이기로 결정할 때까지 고객이 마냥 기다려야 하는 것은 아닙니다. AWS 서비스 및 기능의 어느 부분에서든지 한계를 느끼고 있거나 바라는 점이 있다면 담당 서비스 팀에 문의하여 문제에 대해 알릴 수 있습니다. 할당량 또는 기타 한도에 도달하고 있거나 대역폭, 메모리 또는 기타 리소스가 극도로 제한되는 경험을 하고 계신가요? 문제가 무엇이든 AWS 팀에 주저하지 말고 연락해 주시기 바랍니다.
향후 업데이트
아직 알려드리지 않은 다른 내부 개선 사항도 많이 있으며, 팀과 협력하여 올해 더 많은 개선 사항을 소개해 드리도록 하겠습니다.
— Jeff;