카우치베이스 카펠라

GCP 클라우드 함수 호출을 더 빠르게 만들기

최근 아내와 저는 제레미 클락슨이 나오는 TV 프로그램(탑기어, 그랜드 투어, 클락슨의 농장)을 재방송으로 시청하고 있습니다. "속도와 힘"이 모든 것의 해답이라고 생각하는 것으로 기억될 것 같지만 그는 꽤 영리한 사람입니다.

Couchbase는 아키텍처를 통해 속도와 파워를 풍부하게 제공합니다. 대부분의 관계형 데이터베이스는 모놀리식 구조로 설계되어 수평 확장이 아닌 수직 확장만 가능합니다. 대부분의 NoSQL 데이터베이스와 달리 Couchbase의 데이터 플랫폼을 구성하는 각 서비스는 서로 다른 노드에 배치할 수 있으므로 각 서비스도 수평 및 수직으로 확장할 수 있습니다. 따라서 필요한 곳에 정확하게 전력을 공급하고 더 빠른 속도를 달성할 수 있습니다.

클락슨의 엔터테인먼트적 가치에도 불구하고 속도와 성능이 항상 정답은 아니며, 특히 문제가 설계 수준에서 발생하는 경우에는 더욱 그렇습니다. 하드웨어를 통한 파워는 문제를 숨기는 데 도움이 될 수 있지만 사라지지 않으며 낭비입니다. 그러나 느림이 '새로운 다운'이라고 불리는 오늘날에는 속도가 필수적인 경우가 많습니다.

최근 저희는 간단한 팁 하나를 사용하여 Google 함수에서 개선할 수 있는 패턴을 사용하는 개발자를 발견했습니다. 이 블로그 게시물에서는 다음과 같이 미세 조정한 방법을 공유합니다. 엔진(기능 코드)을 켜고 마지막 직선 구간에서 라인을 넘어 다음 랩까지 성능을 끌어올렸습니다.

TV 테마를 유지하면서 스트리밍 서비스에서 좋아하는 TV 시리즈를 시청하고 싶다고 가정해 보겠습니다. 이 과정은 다음과 같습니다:

      • TV/장치 켜기
      • 앱 열기
      • 서비스에 로그인
      • 프로그램 선택
      • 프로그램 시청
      • 프로그램 선택
      • 프로그램 시청
      • 기타 등 등

다른 프로그램을 시청하고 싶을 때마다 서비스 제공업체가 로그인을 요구한다면 얼마나 짜증날까요? 아마 다른 서비스로 옮기고 싶을 정도겠죠?!!?



이제 클라우드 함수에서 데이터베이스를 호출한다고 가정해 보겠습니다.

TV를 켜고 앱을 여는 것은 함수를 작성하고 배포하는 것입니다. 이 단계는 한 번만 수행하므로 이 단계는 한쪽에 두고 나머지 목록을 계속 진행하겠습니다.

왼쪽 이미지에서는 로그인이 반복적으로 필요한 것을 볼 수 있으며, 오른쪽 이미지에서는 로그인 프로세스가 한 번만 수행되고 로그인 데이터가 세션 기간 동안 재사용되는 것을 볼 수 있습니다. 로그인 정보가 이미 확인되어 매번 전송할 필요가 없는 경우 정보 요청을 처리하는 데 걸리는 시간이 줄어들 것으로 예상할 수 있습니다.

여기서 대규모 테스트를 하지 않는 것이 정말 문제가 됩니다. 예를 들어 인증에 1ms가 걸렸다고 가정해 보겠습니다(인증 유형, 클라이언트와 데이터베이스 간의 거리, 기타 여러 가지 요인에 따라 달라질 수 있습니다. 1ms는 그리 길지 않은 시간으로 보일 수 있으며, 단 한 번의 실행만 보면 문제가 없다고 말할 수 있습니다. 하지만 이 함수를 사용하는 요청이 단 한 건이 아니라 수천 건이 발생한다면 어떨까요? 갑자기 초당 수천 밀리초가 낭비되고 있을 것입니다. 이러한 함수에 소요되는 시간에 대한 요금이 청구되면 비용이 발생하게 됩니다.

핫 랩 타임을 위한 최고의 팁

Google 클라우드 기능과 카펠라를 연결하여 왕복 시간을 단축하고 맥박을 뛰게 하는 유용한 힌트를 확인하세요:

    1. 글로벌 진출: 클라우드 함수를 설정할 때 전 세계 범위의 데이터베이스 연결을 선택하세요. 이렇게 하면 함수가 그리드 내 어디에서나 Capella 클러스터에 액세스할 수 있습니다.
    2. 구덩이에서 보내는 시간 줄이기: 새로운 카우치베이스를 만들고 싶은 충동을 참으세요. 클러스터 객체를 호출해야 합니다. 이는 마치 한 바퀴를 돌 때마다 피트 스톱을 하는 것과 같으니 조금 과하지 않나요? 대신 클러스터 객체를 한 번 저장한 다음 함수가 재사용할 수 있도록 저장합니다.
    3. 유휴 시간 관리: Set 최대 유휴 시간60000 (초시계를 보는 우리 인간에게는 1분입니다). 이렇게 하면 1분 동안 유휴 상태가 되면 자동으로 연결이 종료되어 시간 초과를 방지하고 서버리스 기능을 안정적으로 유지할 수 있습니다.
    4. 동시성이 핵심: Google 클라우드 함수를 만들 때 
      • 2세대로 업그레이드하세요: 포드 모델 T에서 F1 자동차로 업그레이드하는 것과 같습니다. 여러 개의 동시 요청을 처리하고 기능이 단일 기능을 공유하도록 하여 연결 부하를 줄입니다. 클러스터 객체입니다.
      • 동시 접속자 수를 늘리세요: 동시성 설정을 높이면 끔찍한 콜드 스타트를 최소화하고 지연 시간을 터보 부스트할 수 있습니다. 콜드 스타트는 레이스 참가자가 속도를 내는 롤링 스타트와 비교하여 레이스에서 스탠딩 스타트라고 생각하면 됩니다. 콜드/스탠딩 스타트에서는 참가자가 속도를 올리기 위해 에너지를 소비한 후 활동을 완료해야 합니다.

예제: 카펠라에 연결하는 Python 클라우드 함수

여기까지입니다! 카우치베이스 카펠라로 Google Cloud 함수를 최적화하는 파이썬 맛보기 예제입니다.

한번 해보세요, 얼마나 어렵겠어요?

 

이 문서 공유하기
받은 편지함에서 카우치베이스 블로그 업데이트 받기
이 필드는 필수 입력 사항입니다.

Author

Posted by 리처드 더글러스

댓글 남기기

카우치베이스 카펠라를 시작할 준비가 되셨나요?

구축 시작

개발자 포털에서 NoSQL을 살펴보고, 리소스를 찾아보고, 튜토리얼을 시작하세요.

카펠라 무료 사용

클릭 몇 번으로 Couchbase를 직접 체험해 보세요. Capella DBaaS는 가장 쉽고 빠르게 시작할 수 있는 방법입니다.

연락하기

카우치베이스 제품에 대해 자세히 알고 싶으신가요? 저희가 도와드리겠습니다.