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

AppSignal로 Rails Solid Cache 성능 모니터링하는 방법

AppSignal이 이제 Solid Cache를 지원합니다. 다른 Rails 캐시 스토어에서 얻을 수 있는 것과 동일한 수준의 심층적인 캐시 성능 인사이트를 확인할 수 있습니다.

이 글에서는 Solid Cache가 무엇인지 간단히 살펴본 뒤, AppSignal로 애플리케이션의 캐시를 모니터링하면 어떤 이점이 있는지 소개합니다.

Solid Cache란 무엇인가?

Solid Cache는 플러그 앤 플레이 방식의 데이터베이스 독립형 원격 디스크 저장소 캐시입니다. Redis나 Memcached처럼 메모리에 데이터를 저장하는 대신, Active Record를 통해 SQL 데이터베이스를 활용해 캐시를 디스크에 보관한다는 점이 가장 큰 특징입니다.

Hey(37signals의 이메일 서비스)처럼 비교적 안정적인 과거 데이터를 대량으로 다루는 애플리케이션을 운영한다면 Solid Cache가 좋은 선택이 될 수 있습니다. 새 메일을 제외한 기존 이메일은 갑자기 변경될 일이 없기 때문입니다.

AppSignal로 Solid Cache 모니터링하기

AppSignal은 풍차, 운하, 스트룹와플, 그리고 무엇보다도 비로 유명한 네덜란드에서 탄생했습니다. 자전거가 주요 교통수단이라면 언제 비가 올지 아는 것이 매우 중요하죠. 그래서 우리는 SkySignal이라는 Rails 앱을 만들었습니다.

SkySignal은 API에 연결해 네덜란드 전역의 날씨 데이터를 받아오고, 사용자가 사는 지역에 비가 올지 알려줍니다. 개발자들이 DRY 원칙을 지키면서도 몸은 건조하게 유지할 수 있도록 도와주는 셈이죠 🥁.

Hey와 마찬가지로, 저희 역시 캐싱을 활용해 날씨 예보를 사용자에게 빠르게 제공함으로써 애플리케이션의 응답 시간을 최적화하고자 했습니다. 이번 예제에서는 Solid Cache를 사용해 과거 날씨 데이터를 캐싱합니다.

Solid Cache를 선택한 이유는 Hey와 같습니다. Redis 같은 다른 캐시 솔루션에 비해 훨씬 적은 비용으로 대량의 데이터를 캐싱할 수 있기 때문입니다.

Solid Cache 설치하기

Solid Cache 설치는 어렵지 않습니다. 공식 Readme에 나온 절차를 그대로 따라 하면 됩니다.

  1. 먼저 원하는 환경 설정 파일에서 Solid Cache를 캐시 스토어로 설정합니다.
  2. 다음으로 Gemfile에 solid_cache 젬을 추가합니다.
  3. 마지막으로 Solid Cache 마이그레이션을 생성하고 실행하여 데이터베이스 캐시를 만듭니다.

이번 예제에서는 캐시를 기본(primary) 데이터베이스에 저장하지만, 원한다면 Solid Cache가 캐시를 여러 데이터 스토어에 샤딩(sharding)하도록 설정할 수도 있습니다. 샤딩은 캐시를 더 작은 단위로 나누어 여러 데이터베이스(샤드)에 분산 저장하는 방식입니다.

다음으로 애플리케이션을 모니터링하기 위해 AppSignal을 설치하겠습니다.

AppSignal 설치하기

AppSignal 설치는 매우 간단합니다. 바로 모니터링을 시작할 수 있도록 설치 마법사를 준비해 두었습니다.

마법사를 시작하려면 AppSignal 애플리케이션 개요 페이지에서 "Add app" 버튼을 클릭하거나, 로그인 상태라면 제공된 링크를 통해 마법사를 실행할 수 있습니다.

마법사는 AppSignal이 성공적으로 설치되면 알려주며, 드물게 문제가 발생하는 경우에는 개발자 대 개발자(dev-to-dev) 지원을 받을 수 있도록 저희 지원팀으로 연결해 줍니다.

AppSignal로 Rails Solid Cache 성능 모니터링하는 방법

수동으로 AppSignal을 설치하고 싶다면 공식 설치 문서를 참고하세요.

이제 AppSignal 설치가 완료되었으니 SkySignal 앱의 성능 모니터링을 시작할 수 있습니다.

Solid Cache 모니터링

AppSignal은 애플리케이션의 성능 지표를 수집하여 실행 가능한 인사이트로 변환해 줍니다. 개발자 친화적인 모니터링 도구가 다양하게 마련되어 있지만, 이 글에서는 다음 두 가지에 집중해 보겠습니다.

  • 메트릭 대시보드: 에러율, 전체 응답 시간 등 앱의 성능 데이터를 시각적으로 추적합니다. SkySignal의 경우 캐시 크기와 성능 시간을 살펴봅니다.
  • 이상 감지(Anomaly Detection): 특정 지표가 임계값을 초과할 때 알림을 보내는 트리거를 생성할 수 있습니다. 예를 들어 짧은 시간 안에 캐시 크기가 크게 증가하는 경우가 이에 해당합니다.

Solid Cache를 사용하지 않더라도 걱정하지 마세요. 어떤 Rails 캐시 스토어를 사용하든 AppSignal에서 동일한 훌륭한 메트릭을 확인할 수 있습니다!

대시보드로 Solid Cache 모니터링하기

AppSignal의 그래프는 애플리케이션 성능을 시각적으로 모니터링하는 훌륭한 도구입니다. 성능 스파이크에 대한 맥락을 공유할 수 있는 마커를 추가할 수 있고, 그래프의 아무 곳이나 클릭하면 해당 순간의 애플리케이션 성능 스냅샷을 확인할 수 있어 디버깅이 한결 수월해집니다.

응답 시간 모니터링

Solid Cache를 설정한 후 앱의 성능이 어떻게 변했는지 살펴보겠습니다.

AppSignal로 Rails Solid Cache 성능 모니터링하는 방법

위 그래프에서 SkySignal이 비교적 빠른 응답 시간을 보이는 것을 확인할 수 있으며, 새로운 날씨 데이터를 배치로 가져올 때 발생하는 응답 시간 스파이크도 함께 볼 수 있습니다.

캐시 크기 모니터링

저희는 대량의 데이터를 원격 디스크 캐시에 저장하여 응답 시간을 안정적으로, 효율적으로 개선하기 위해 캐싱을 도입했습니다.

AppSignal로 Rails Solid Cache 성능 모니터링하는 방법

캐시가 최적 상태로 유지되도록 캐시 크기를 추적하고, 급격히 증가하는지 확인한 뒤 이 데이터를 바탕으로 캐시 설정을 세부 조정하여 애플리케이션 요구 사항에 가장 적합하게 만들 수 있습니다.

Solid Cache 테이블 크기를 추적하는 대시보드 설정에 대한 자세한 내용은 관련 블로그 포스트를 참고하세요.

AppSignal로 캐시 이상 감지하기

AppSignal의 대시보드는 애플리케이션 성능을 한눈에 파악할 수 있는 우아하고 직관적인 방법입니다. 하지만 하루 종일 그래프만 바라볼 수는 없는 법이죠. 바로 이럴 때 이상 감지(Anomaly Detection) 기능이 빛을 발합니다.

AppSignal의 이상 감지 기능을 사용하면 특정 메트릭이 임계값에 도달했을 때 알림을 받도록 트리거를 만들 수 있습니다. 예를 들어 에러율이 10%를 초과하거나 캐시 스토리지가 너무 빠르게 소진되는 경우가 있습니다.

AppSignal로 Rails Solid Cache 성능 모니터링하는 방법

이상 감지 덕분에 개발자는 본래의 업무에 집중할 수 있습니다. AppSignal은 이메일은 물론 Slack, Discord 같은 인기 협업 도구를 통해 알림을 보내도록 설정할 수 있으므로, 트리거가 작동하면 즉시 경고를 받을 수 있다는 안심감과 함께 애플리케이션을 능동적으로 모니터링하며 병목 현상이 성능과 확장성에 영향을 미치기 전에 미리 예방할 수 있습니다.

앱 캐시 모니터링을 시작할 준비되셨나요?

AppSignal은 하는 모든 일에서 최고의 결과를 내기 위해 노력합니다. 그래서 최신 Rails 기능과 기능성을 항상 완벽하게 지원하기 위해 힘쓰고 있습니다.

고객들이 AppSignal이 왜 훌륭한지 물었을 때 가장 많이 꼽는 이유는 다음과 같습니다.

  • 직관적이고 탐색하기 쉬운 인터페이스
  • 단순하고 예측 가능한 가격 정책
  • 개발자 대 개발자 지원

아직 AppSignal 고객이 아니라면 지금 바로 클릭하여 무료 체험 계정을 만들어 보세요. 새로 체험 계정을 만든 사용자라면 모니터링 데이터를 보내기 시작한 후 저희에게 연락해 주세요. 스트룹와플 패키지를 선물로 보내드립니다 🍪!

Solid Cache에 대해 더 알고 싶으신가요? Donal McBreen의 Rails World 발표 영상을 YouTube에서 시청해 보시길 추천합니다.

AppSignal로 Rails Solid Cache 성능 모니터링하는 방법

Connor James

AppSignal의 개발자 마케팅 매니저입니다. 팟캐스트 애호가이며, 카놀리(cannoli)를 너무 사랑해서 이름을 'Connoli'로 바꿀까 진지하게 고민 중입니다. 'color'에는 'u'가 들어가야 한다고 믿는 인물이기도 합니다. 마이크를 잡거나, 무대에 서거나, 쉬는 날에는 소파에 누워 있는 모습을 발견할 수 있습니다.

Connor James의 모든 글 보기