Computer >> 컴퓨터 >  >> 프로그래밍 >> Redis

Azure Cache for Redis로 Azure SQL 성능 최적화하기

Azure SQL 성능 저하의 숨은 주범, 반복적인 데이터 호출

Azure SQL Database의 리소스 소비에 가장 큰 영향을 미치는 요인 중 하나는 애플리케이션 계층에서 발생하는 반복적인 데이터 조회입니다. 쿼리 자체가 아무리 빠르게 실행되더라도, 동일한 프로시저나 SQL 문을 하루에 수백, 수천, 심지어 수백만 번 호출하면 데이터베이스 성능에 심각한 부담을 줄 수 있습니다. 흔히 말하는 '천 번의 작은 베기(death by a thousand cuts)'처럼, 사소해 보이는 호출들이 쌓여 결국 시스템 전체를 마비시키는 것이죠.

문제는 DBA가 이를 실시간으로 추적하기가 쉽지 않다는 점입니다. 문장 실행이 워낙 빠르다 보니 sp_whoisactive 같은 도구에서조차 잡히지 않는 경우가 많습니다. Query Performance Insights나 Query Store를 깊이 들여다봐야 비로소 진짜 원인이 드러납니다.

Azure Portal에서 확인하기

Azure Cache for Redis로 Azure SQL 성능 최적화하기

Azure Cache for Redis로 Azure SQL 성능 최적화하기

SSMS Query Store — 실행 횟수 기준 상위 소비 쿼리

Azure Cache for Redis로 Azure SQL 성능 최적화하기

Azure Cache for Redis로 Azure SQL 성능 최적화하기

해결책: Azure Cache for Redis

그렇다면 이 문제를 어떻게 해결할 수 있을까요? 코드는 이미 최적화되어 있고, 문제는 오직 애플리케이션의 호출량뿐입니다. 이럴 때 강력한 해답이 되는 것이 바로 Azure Cache for Redis입니다.

Azure Cache for Redis란 무엇인가?

간단히 말해, Azure Cache for Redis는 오픈소스 Redis를 기반으로 하는 전용 인메모리 캐시 데이터 저장소로, Azure 내부 또는 외부의 애플리케이션이 자유롭게 접근할 수 있습니다. 데이터를 인메모리 저장소에 로드하고 직접 읽어옴으로써 데이터베이스로 향하는 호출 횟수를 획기적으로 줄일 수 있습니다.

데이터를 캐시 계층에 배치하면 애플리케이션이 동일한 데이터를 반복적으로 요청할 필요가 없어집니다. 성능 부하가 데이터베이스 계층에서 캐시 계층으로 전환되면서, 데이터베이스 성능이 눈에 띄게 향상되고 지연 시간(latency)도 감소하며, 다른 데이터 요청에 쓸 수 있는 리소스까지 확보됩니다. 물론 애플리케이션 코드 수정이 필요하지만, 그만한 가치가 충분한 선택입니다. Microsoft Docs에는 비교적 복잡한 형태의 앱 예제도 소개되어 있으니 참고해 보세요.

주목할 점은 이것이 성능 개선뿐 아니라 비용 절감 효과까지 가져온다는 사실입니다. 리소스 소비가 줄어들면 Azure SQL Database를 더 낮은 계층으로 축소(scale down)할 수 있기 때문입니다.

시작하기: 캐시 리소스 생성

1. 리소스 만들기

Azure Portal에서 '리소스 만들기(Create a Resource)'를 클릭하고, Databases(데이터베이스) 카테고리에서 Azure Cache for Redis를 선택합니다.

Azure Cache for Redis로 Azure SQL 성능 최적화하기

2. 캐시 유형 및 가격 책정 계층 선택

캐시 유형 옵션을 신중하게 살펴보세요. 가격 책정 계층(pricing tiers) 링크를 반드시 클릭해 환경에 맞는 계층을 고르는 것이 중요합니다. 여기서는 가장 저렴한 Basic C0를 선택했습니다. 250MB 캐시만 제공되지만 월 약 $16 수준으로 예상되며, 더 큰 용량은 비용이 상당히 올라갈 수 있습니다.

Azure Cache for Redis로 Azure SQL 성능 최적화하기

3. 네트워킹 구성

네트워킹(Networking) 단계에서는 공용(Public) 또는 프라이빗 엔드포인트(Private Endpoint) 중 하나를 선택한 후 '다음'을 클릭합니다. 내부 시스템과의 통신 보안이 중요하다면 프라이빗 엔드포인트를 고려하는 것이 좋습니다.

Azure Cache for Redis로 Azure SQL 성능 최적화하기

4. Redis 버전 선택 후 리소스 생성

사용할 Redis 버전을 선택합니다. 참고로 버전 6은 미리 보기(Preview) 상태로 제공되고 있습니다. 다음으로 태그(Tag) 설정 화면으로 이동하는데, 필수 항목이 아니므로 건너뛰어도 무방합니다. 마지막으로 검토(Review) 후 리소스를 생성하면 완료됩니다.

Redis 캐시 리소스가 생성되었다면 끝난 것이 아닙니다. 실제 운영에 활용하려면 데이터 저장 방식 설계, 애플리케이션 연결, 보안 설정 등 추가 구성 단계가 필요합니다. 이 글에서는 포털에서 해당 서비스를 찾고 생성하는 과정만 다루었으니, 나머지 단계는 공식 문서를 참고해 진행하시기 바랍니다.

마치며

매시간 수천 번씩 반복되는 데이터 호출이 발생하는 환경에서 일하고 있다면, Azure Cache for Redis는 검토할 가치가 충분한 솔루션입니다. 성능 튜닝 도구 키트에 Azure Cache for Redis를 꼭 추가해 보시길 권합니다. 구현 과정에 필요한 정보는 물론, 반드시 숙지해야 할 보안 고려 사항까지 Microsoft Docs에 잘 정리되어 있으니 적극적으로 활용해 보세요.