[reinvent 2024] Redshift로 Seamless 데이터 공유
Summary
데이터 복사는 시간이 많이 걸리고 오류와 일관성 문제를 초래할 수 있습니다. 조직들은 계정, AWS 리전, 파트너, 공급업체 간에 데이터를 잘 관리된 방식으로 쉽게 공유할 수 있는 방법을 찾고 있습니다. 이번 실습 세션에서 Amazon Redshift 클러스터 간에 실시간 데이터를 손쉽고 안전하게 공유하는 방법을 배울 수 있습니다.
리인벤트 2024 테크 블로그의 더 많은 글이 보고 싶다면?
Overview
들어가며
이번 칼럼에서 다룰 세션은 Redshift를 활용한 데이터 공유 세션인데요.
데이터 공유는 말 그대로 데이터를 복사하는 게 아닌 공유를 통해 다른 워크로드나 다른 사용자 그룹에서 해당 데이터를 사용할 수 있게 하는 걸 말합니다. 이번 세션은 workshop 세션으로 Redshift 클러스터에서 Redshift 서버리스 노드로 손쉽게 데이터를 공유하는 과정을 담았는데요. 해당 세션을 통해 Redshift가 지원하는 데이터 공유의 편리함과 이점을 공유드리겠습니다.
Use case
Workshop을 진행하기 전에 Redshift 데이터 공유가 어떤 사용 사례에서 특히 유용하게 활용될 수 있는지 먼저 설명드리겠습니다.
첫 번째는 워크로드 격리 사례입니다.
다양한 워크로드를 한 곳에서 처리하다보면 각기 다른 워크로드 유형으로 인해 시스템에 부하가 걸릴 수도 있고, 또 특정 워크로드에 맞게 설계했는데 추가된 워크로드가 생겨서 해당 워크로드에는 적합하지 않은 시스템이 될 수도 있습니다.
이러한 사례들을 해결하기 위해 데이터 공유를 통해 워크로드를 격리해서 데이터를 중복 없이 분리된 환경에서 처리할 수 있습니다. 데이터는 여전히 한 곳에서 중앙 관리되지만, 데이터 공유를 통해 각 워크로드가 독립적으로 작동되어서 독립된 컴퓨팅 리소스를 활용할 수 있습니다.
다음으로 그룹간 협업 사례입니다.
데이터 웨어하우스를 한 곳에서 중앙화해서 관리하는 게 아니라 각 비지니스 조직이 독립적으로 데이터를 관리하는 사례인데 타 조직으로 데이터 공유를 하고 싶을 때 손쉽게 Redshift 데이터 공유를 통해 유의미한 정보를 얻을 수도 있고 솔루션을 만들 수도 있습니다.
Workshop overview
아래는 워크샵 내용이 어떻게 구성되었는지에 대한 슬라이드 입니다.
프로비저닝된 노드에서 서버리스 노드로 데이터를 공유할건데 여기서 할 주요한 작업은 데이터 공유 설정, 권한 설정, 데이터 쿼리 작업입니다.
Workshop
아래부터는 직접 workshop을 진행했던 과정을 담은 스크린샷이며 해당 워크샵에서는 Redshift query editor를 이용해서 workshop을 진행합니다.
먼저 프로비저닝 클러스터 노드에 view와 UDF를 만듭니다.
그런 다음 콘솔로 이동해서 데이터 공유 탭에서 데이터베이스를 연결을 클릭합니다.
데이터베이스 연결 후 데이터 공유를 선택합니다.
데이터 공유 정보내 이름과 데이터베이스를 입력하고 권한 범위를 지정해줍니다.
Data consumer 부분에서 데이터를 공유할 네임스페이스(서버리스 redshift 노드)를 선택합니다.
그런 다음 Redshift 콘솔에서 서버리스 대시보드를 클릭 후 consumer로 설정했던 네임스페이스를 선택합니다.
여기서도 데이터베이스 연결을 해줍니다.
다시 쿼리 에디터로 돌아가서 프로비저닝 노드에서 네임스페이스를 출력하는 쿼리를 실행 후 값을 복사합니다.
그런 다음 쿼리 에디터에서 서버리스 노드 세션을 선택 후 공유 데이터 베이스를 생성할 쿼리를 작성합니다. 이때 아까 복사한 프로비저닝 네임스페이스 이름을 붙여넣은 후 쿼리를 실행합니다.
이제 공유 데이터베이스 내 테이블들을 쿼리해보면 공유받은 데이터가 출력되는 걸 볼 수 있습니다.
또한 프로비저닝 노드 데이터베이스에서 만들었던 UDF도 이용가능한 걸 볼 수 있습니다. 프로듀서에서 해당 UDF 로직이 변경된다면 컨슈머에서도 변경된 결과가 반영됩니다.
결론
해당 세션은 Redshift의 데이터 공유 기능에 대해 다루는 세션이었는데요. 데이터 공유를 활용하면 특히 유용할 것 같은 사례들과 어떤 부분에서 이점이 있는지에 대해 설명하고 실제로 데이터 공유 기능을 사용해보는 워크샵이 진행되었습니다.
보시다시피 정말 간단하게 데이터 공유를 할 수 있고 권한 설정 또한 정말 간단한 걸 보실 수 있는데요, 해당 워크샵에서는 다루지 않았지만 세분화된 권한 제어 또한 쿼리를 이용해서 가능합니다.
이번 세션을 통해 Redshift 데이터 공유 기능을 활용하면 다른 워크로드나 비즈니스 조직에서도 데이터를 효과적으로 활용할 수 있어 작업 부하를 분리하고 새로운 워크로드를 빠르게 테스트할 수 있다는 인사이트를 얻을 수 있었습니다.