GAE/Node에서 Memcached를 사용하려고하면 bitnami를 만나고 감동하는 이야기

경위



GAE 애플리케이션에서 Memcache를 사용하고 싶었습니다.



「확실히 내포 서비스같은 느낌으로 GAE 메뉴에 있었구나」라고 생각해, 조속히 문서

The Memcache service is currently not available for the App Engine flexible environment. An alpha version of the memcache service will be available shortly. If you would like to be notified when the service is available, fill out this early access form.

분명히 2018/03/01 현재 GAE flexible 환경에서 사용할 수없는 것 같습니다.
(Node를 사용할 때는 자동으로 flexible 환경이 된다.

곧 사용할 수 있게 되는 것입니다만, 언제가 될지 모르기 때문에 정식으로 구현될 때까지는 자전의 Memcache 사바를 세우기로 했습니다

그런데 어떻게 세울 수 있을까...

다양한 사례를 조사하는 중, 한 커뮤니티에서 응답자가 추천하고 있던 것이 bitnami라는 서비스였습니다.

bitnami 란 무엇입니까?



bitnami 은 다양한 어플리케이션의 이미지집 + 각종 클라우드 서비스에의 구축을 어시스트 해 주는 서비스입니다

본래라면, 스스로 사용하고 싶은 서비스의 컨테이너화나 스케일링, 네트워크 설정등을 실시하는 곳입니다만, 이것들을 버튼 1 개로 대행해 줍니다

패키지 중에는 이번에 사용하는 Memcache를 비롯하여 wiki, Word Press 등 수많은 솔루션이 준비되어 있습니다.



bitnami 사용법



정말 쉬웠어요

사용하려는 서비스 페이지 로 이동하여 LAUNCH IN THE CLOUD 를 누릅니다.

그리고 이 간결하고 알기 쉬운 설정 항목을 선택하고 CREATE !



GCP로 돌아가면 ...



제대로 되어 있다! 대단해!
정중하게 각종 태그 첨부나 커스텀 메타데이터도 설정되어 있어, 나중에 재검토했을 때에 그 인스턴스가 어떠한 상태인지 한눈에 알게 되어 있었습니다

클러스터 버전을 설정하려면 여기

사용해보기



memcached-cli에서



우선 응용 프로그램이 아닌 memcached-cli
memcached-cli userName:pass@host:port

**.***.***.***:*****>set test hoge
MemJS SET: using deprecated call - arguments have changed
true
**.***.***.***:*****>get test
hoge

할 수있어.

Node에서



bitnami : memcache 이미지의 설정적으로 SASL 인증을 지원하는 클라이언트가 아니라면 작동하지 않는 것 같습니다.

조사한 만큼은 memcached-cli 에도 사용되고 있다 MemJS 라고 하는 모듈이 대응하고 있었습니다

set-cache
memcached-cli userName:pass@host:port

**.***.***.***:*****>set test huga
MemJS SET: using deprecated call - arguments have changed
true
**.***.***.***:*****>get test
huga

server.ts
import * as Memjs from 'memjs';

// memcache 部分抜粋
const client = Memjs.Client.create();
client.get('test', (err: any, val: Buffer) => {
    console.log(err, val.toString());
});

server-log
null 'huga'

무사 CLI로 설정한 값을 어플리케이션측으로부터 취득할 수 있었습니다!



bitnami...

좋은 웹페이지 즐겨찾기