인메모리는 고성능 애플리케이션 운영에 있어 필수입니다. 인메모리 기반 데이터베이스, 캐시 시스템은 초연결 시대 다양한 데이터 소스와 연결된 현대화된 애플리케이션이나 서비스가 최적의 성능을 바탕으로 사용자 경험을 유지하는 핵심 요소입니다.
인메모리의 강력함은 순간 엄청난 트래픽이 몰려오는 대형 전자상거래 사이트의 이벤트, 수천 명의 사용자가 동시 접속해 이용하는 게임 서비스 등에서 충분히 검증되었습니다.
이런 이유로 인메모리 데이터베이스인 Redis와 분산 캐시 시스템인 Memcached는 많은 이들의 사랑을 받고 있습니다. 두 솔루션 모두 데이터베이스의 부하를 줄이는 데 있어 아주 큰 역할을 합니다. 데이터베이스 앞 단에 위치해 읽기 작업의 처리 효율을 높입니다.
Redis와 Memcached는 클라우드에서 쓰기 참 편합니다. 특히 저장소 관리 측면에서 유리한 것이 한둘이 아닙니다. 그 이유는? 구글 클라우드의 Memorystore 같은 Redis와 Memcached를 위한 관리형 저장소 서비스가 있기 때문입니다. 구글은 2018년에 Redis용 Memorystore를 선보였습니다. 그리고 2020년 4월 현재 Memcached용 Memorystore 베타 버전을 공개했습니다.
“Memcached를 위한 Memorystore의 특징”
Memcached의 특징을 한마디로 요약하면 ‘단순하지만 강력하다’라고 표현할 수 있습니다. Memcached는 데이터베이스 앞 단에 위치한 캐시로 널리 쓰입니다. 프런트 엔드 저장소로 Memcached를 이용하면 쿼리 처리 속도가 크게 빨라집니다. 자연히 데이터베이스의 부하가 분산됩니다. Memcached용 Memorystore를 이용하면 개발자와 운영자가 누릴 수 있는 혜택이 꽤 많습니다.
Memcached용 Memorystore는 온프레미스나 다른 클라우드 사업자를 통해 운영하던 애플리케이션을 마이그레이션할 때 코드를 일일이 바꿀 필요가 없습니다. 오픈 소스 Memcached 프로토콜과 완벽히 호환되어 코드 변경 없이 간단히 마이그레이션 할 수 있습니다.
관리도 편합니다. Memcached용 Memorystore는 관리형 서비스입니다. 배포, 확장, 노구 구성, 모니터링, 패치같이 인력과 시간이 필요한 작업을 구글이 합니다. 따라서 사용자는 애플리케이션에 온전히 집중할 수 있습니다.
인스턴스 확장과 축소도 간단합니다. 분산 캐시의 효율성은 캐시 크기를 얼마나 적절하게 조정하느냐에 따라 크게 달라집니다. Memcached용 Memorystore를 이용하면 모니터링을 바탕으로 한 지표를 참조해 인스턴스를 확장하거나 줄일 수 있습니다. 따라서 자원 부족이나 낭비 걱정이 없습니다. 참고로 Memcached용 Memorystore를 이용하면 인스턴스 당 최대 5TB까지 확장할 수 있습니다.
Auto-discovery 프로토콜을 활용하면 확장 중 노드 수 변경도 가능합니다. 따라서 편하 노드를 관리할 수 있습니다. 구글 클라우드 콘솔과 클라우드 모니터링에서 대시 보드 형태로 Memcached용 Memorystore 인스턴스를 모니터링할 수 있는 것도 관리 측면에서 빼놓을 수 없는 편의성입니다.
Memcached용 Memorystore는 미국, 아시아, 유럽 지역을 대상으로 베타가 공개되었고, 곧 전 세계 리전에서 베타를 접할 수 있게 될 예정입니다. Compute Engine, Google Kubernetes Engine (GKE), App Engine Flex, App Engine Standard 및 Cloud Functions를 이용해 실행하는 Memcached용 Memorystore에 접근할 수 있습니다. 베타에 관심이 있다면 관련 안내 문서를 참조 바랍니다.