여튼 이런저런 졀차로 여린백셩을 홀뺴히여겨
평소처럼 ElasticCache를 사용하려 했따.
매우 비싸지만 괜찮다. (진짜 짱비쌈)
적당히 활용하면, RDS 1개 추가하는 것보단 나은 효율을 보이니,
속도와 비용 모두 적절히 잡을 수 있기 때문이시다.
EC2에 왜 redis를 안까냐면..
둘다 해보았지만..
한달에 2~5만원 더 내는 것이,
1. 인건비 리소스도 아끼고(비용),
(** 항상 본인의 인건비도 리소스로 생각하는 훌륭한 개발자 될지어다 **)
2. 작업 리소스도(시간) 아끼고,
3. 확장성 있게 가고,
4. 여러 관리가 용이하다.
이런 이유로 유용하기 떄문일지어다.
Nestjs 공식문서에도 뭐 많을텐데
만약 당신이
이 글을 보고 있다면 이걸 봤겠지
"message": "Type 'typeof import(\"cache-test/node_modules/cache-manager-redis-store/dist/index\")' is not assignable to type '(string | CacheStoreFactory | CacheStore) & typeof import(\"/Users/kk/dev/nodejs/cache-test/node_modules/cache-manager-redis-store/dist/index\")'.\n ...
하하 알고 있어 ㅋ
왜 이런 일이 생겼냐면
nest/core의 버전이 맞지 않아서 생기는 문제다.
(nest 이슈에 가보면 꽤 빈번하게 일어나고 있다^^...)
하지만 nest/core를 낮추거나 올리면, 다른 라이브러리에서 충돌이 생겼겠지.
그래서 하나하나 다 바꿔주다보면 갑자기 또 메소드 바뀌고,... 타입 바뀌고 난리가 되면서
주먹에 힘이 들어가고 막 그렇겠지? (내 이야기)
하하하하하하하하
본론
아마 공식문서를 봤다면
redis-store를 cache-manager에서 import했을 텐데
import * as redisStore from 'cache-manager-ioredis';
이렇게 바꿔주어라, 그럼 만사가 형통할 것이다.
모듈타고 뜯어보면 타입이 문제없는건 알게 될 지어다. (예전에도 ioredis로 직접 연결해서, 캐시클라를 사용했는데, 아주 좋구나)
사용하는 모듈에 임포트하여라
CacheModule.registerAsync({
useFactory: async () => ({
store: redisStore,
clusterConfig: cacheCustomOption.clusterConfig,
ttl: cacheCustomOption.ttl['900'],
}),
}),
속성 예시는 이렇다
컨피그에 있는 노드들은 들었다놨다 들었다놨다 들었다놨따~~할려면 나중에 모듈로 관리하면 될지어다.
const clusterConfig = {
nodes: [
{
host: 'ㅁache.amazonaws.com',
port: 63232379,
},
{
host: 'roasd.o8eq1w.0001.apn2.cache.amazonaws.com',
port: 632379,
},
{
host: 'roasdasdpn2.cache.amazonaws.com',
port: 631279,
},
{
host: 'rasdasd2.cache.amazonaws.com',
port: 623379,
},
],
};
const ttl = {
900: 900,
};
잘된다.
좋아써어
'Back > Node.js' 카테고리의 다른 글
[Monorepo, React, Next, Nest] 모노레포 앱구조 (0) | 2023.05.29 |
---|---|
[Monorepo, Yarn Berry, Github Private Package] can't be resolved to a satisfying (0) | 2023.05.17 |
[SQS, MSA, Nodejs] MSA & Message Queue (0) | 2023.04.08 |
[GPT, Node.js, React] 실시간으로 ChatGPT 연동하기 (0) | 2023.04.08 |
[NodeJs, Notion] Nodejs + Notion database 연동하기 및 만들기 (0) | 2022.09.09 |