무료로 사용할 수 있는 데이터베이스 Upstash를 아십니까!?

Intro


최근 어떤 데이터베이스에 관한 기사를 읽었는데 업스테이쉬에 대해서는 아무도 언급하지 않아 엉망인 것 같아 소개했다.
참고로 저도 오늘 처음으로 계좌를 등록했으니 안심하세요.
황금 주간은 각양각색의 시작이 있을 것이다.
https://upstash.com/
Upstash는 서버 데이터베이스가 없는 서비스를 제공합니다.
주로 리디스를 운영하지만, 카프카도 이용할 수 있다.
상세히 조사한 느낌이라면 또 하나 쓸 수 있는 데이터베이스가 늘어날 것 같아서 상황을 봤죠
3월 중순에 약 2억3천만엔의 자금 조달이 이뤄지고 기존 서비스 강화가 일시적으로 이뤄지기 때문에 일단 사용해 보자.
!
이번에는 리디스를 소개하겠습니다.

Upstash


https://docs.upstash.com/redis/features/durability
다양한 특징이 있지만 특히 AOF 모드에서는 영구성이 항상 유효합니다.
레디스에서 흔히 볼 수 있는 캐시와 실행 프로그램뿐 아니라 SQLite와 몽고DB 등 데이터를 저장하는 데이터베이스로도 활용할 수 있다는 것이다.
https://docs.upstash.com/redis/overall/pricing
심지어 일반적인 무료 제한 계획과 계량 요금제 계획도 있다.
홈페이지에는 무료(신용카드 필요 없음)라고 쓰여 있으며 하루 지령 제한은 10000회다.
이 10000회는 고정 구역을 선택할 때의 제한이고 전 세계를 선택할 때는 2000회이다.
도쿄 지역이 있어서 국내에서만 돌면 싱글 구역이 좋잖아요.
그 외에도 여러 영역을 선택할 수 없고 한 영역의 데이터베이스에 최대 256Mb의 제한이 있다.
특히 계량요금 계획에는 하루 지령이 무제한으로 적혀 있지만 매달 가격에 제한이 있어 청천화판에 도달할 수 없다는 특징도 있다.
AWS에서 풍물시의 암호와 방문키가 밖으로 흘러나가면서 지령을 무제한 두드려 수백만엔의 요청을 받지 못해 안심하고 사용할 수 있었다.
오프닝이 길어졌으니 바로 계좌를 등록해서 사용해 보세요.

Start


upstash
Start free in 30 seconds 버튼을 누릅니다.
자, 시작합니다.
signup
Amazon, GiitHub, Google 계정 SSO 가능한 로그인 페이지
Sign Up 태그를 선택하고 서명합니다.
console
갑자기 눈보라가 흩날리며 놀란 후의 화면입니다.
"Create database"단추를 누릅니다.
create
데이터베이스 이름을 입력하고 Regional 상태에서 AP-NORTH-EAST-1(Japan)을 선택합니다.
TLS/SSL이 있으면 안심하고 사용할 수 있습니다.
이번에는 강한 일관성 패턴이 필요 없기 때문에 이렇다.
마지막으로 "Create"단추를 누르고 몇 초를 기다립니다.
redis
데이터베이스가 완성되었습니다.
약간의 변형이 있었기 때문에 기록은 35초였다.

Redis


모든 수단이 연결될 수 있다는 걸 보여주니까 연결해.
이번에는 노드다.js와 npm를 시작하는 것은 번거롭기 때문에 Deno를 사용합니다.
import { Redis } from "https://deno.land/x/upstash_redis/mod.ts";

const redis = new Redis({
  url: "", // UPSTASH_REDIS_REST_URL
  token: "", // UPSTASH_REDIS_REST_TOKEN
});

const data = await redis.incr("count");
console.log(data);
나는 카운트가 점차 늘어나는 것을 썼다.
$ deno run --allow-net index.ts
...
1

$ deno run --allow-net index.ts
2

$ deno run --allow-net index.ts
3
발견이 증가했다.
간단하네.
사실 Upstash에서는 Redis에 쉽게 액세스할 수 있습니다.
REST API입니다.
$ curl -H "Authorization: Bearer <UPSTASH_REDIS_REST_TOKEN>" <UPSTASH_REDIS_REST_URL>/incr/count
이번에는curl,wget,axios,fetch를 모두 사용할 수 있습니다.
$ curl -H "Authorization: Bearer <UPSTASH_REDIS_REST_TOKEN>" <UPSTASH_REDIS_REST_URL>/incr/count
{"result":4}
$ curl -H "Authorization: Bearer <UPSTASH_REDIS_REST_TOKEN>" <UPSTASH_REDIS_REST_URL>/incr/count
{"result":5}
$ curl -H "Authorization: Bearer <UPSTASH_REDIS_REST_TOKEN>" <UPSTASH_REDIS_REST_URL>/incr/count
{"result":6}
발견이 증가했다.
좀 더 간단해.
https://docs.upstash.com/redis/overall/rediscompatibility
https://docs.upstash.com/redis/features/restapi
또한 Redis-Coli를 사용하거나 Redis-py 등 Redis 클라이언트를 사용하여 액세스할 수 있습니다.
그러나 REST API는 서버에서 실행 중인 Redis가 없기 때문에 일부 명령을 사용할 수 없습니다.
자세한 내용은 문서에 쓰여 있습니다.
https://docs.upstash.com/redis/features/javascriptsdk
또한 TCP 접속이 허용되지 않는 환경에서는 Redis 클라이언트를 사용해도 접속할 수 없는 경우가 있습니다.
이 경우 Deno도 가져온 공식 SDK를 사용해야 합니다.
그렇다면 이처럼 새로운 데이터베이스는 도대체 어떤 장점이 있을까?
그냥 무료인가요?

Edge


https://upstash.com/cloudflareworkers
https://docs.upstash.com/redis/howto/connectwithupstashredis
우선 가장 매력적인 것은 REST API를 사용할 수 있다는 점입니다.
정식 Cloudflare Workers에서도 사용할 수 있으며 Edge로서 사용할 수 있는 데이터베이스는 매우 강한 기능을 가지고 있다.
Cloudflare Workers 외에도 공식적으로는 다음과 같은 서비스를 이용할 수 있다고 소개했다.
  • Serverless functions (AWS Lambda ...)
  • Fastly Compute@Edge
  • Next.js, Jamstack ...
  • Client side web/mobile applications
  • WebAssembly
  • and other environments where HTTP is preferred over TCP.
  • 그나저나 저는 Vercel에서 알고 있습니다.Upstash는 Vercel의 CEO인 Guillermo Rauch가 투자하고 있으며, Vercel의 Integrations에서도 사용할 수 있다.
    한편 이번에 소개된 공식 SDK는 노드다.js뿐만 아니라 Deno도 지원하며 Deno Deploy와 Netlify Edge Function에서도 이동할 수 있습니다.
    그런데 생각해보면 이런 서비스의 데이터베이스가 아직 많은데 Upstash를 우선적으로 사용할 필요가 없나요?
    한순간에 그렇게 생각할지도 모른다는 점에 대한 공식적인 언급도 있었다.
    https://docs.upstash.com/redis/overall/compare
    업스테이시는 리디스랩스 등에 비해 서버 없는 가격, REST API, 접근, 내구성 면에서 우수했고, AWS 다이나모DB 등에 비해 지연성, 복잡한 가격 설정, 휴대성, 테스트 용이성 모두 우수했다.
    앞서 소개한 내용을 보니 확실히 이해가 간다.
    장점 대부분은 리디스의 장점을 한층 더 높여 단점을 장점으로 만들어 실현하는 것이다.
    가볍고 빠른 Redis는 NosQL이 독특한 지령을 기억해야 하기 때문에 즐겨 사용하는 사람은 적을 것이다. 그러나 데이터베이스가 자주 대기하는 것이 아니라 지령을 두드릴 때마다 비용이 발생하기 때문에 매우 저렴한 서비스를 제공할 수 있다.
    명령을 REST API로 변환하여 데이터베이스에 포함할 수 없는 모든 서비스에 데이터베이스를 포함할 수 있습니다.
    또한 Redis의 데이터 지속성은 RDB 모드와 AOF 모드를 사용하여 Upstash 기능에 국한되지 않고 SQLite에 있습니다.db 파일.sql 파일처럼
    Redis에서 왔습니다.파일과 파일.af 파일을 출력합니다. 백업할 수 있습니다.
    리디스는 다양한 OS로 쉽게 구축할 수 있고, 도커 이미지를 공식으로 제공할 수 있으며, 업스테이시와 비슷한 서비스를 제공하는 리디스랩스도 공식으로 제공할 수 있어 휴대성 성능이 우수하다.
    https://zenn.dev/tkithrta/articles/fb2b182dd88d91
    이전에 오프라인 랩버리 피 제로에서 리디스를 구축한 적이 있다.

    Outro


    어때요?
    또 다른 소개하고 싶은 내용이 많지만 제가 처음 사용하기 시작했기 때문에 업스테이시를 함께 사용하는 장점과 리디스 데이터의 지속성에 대한 해설을 꼭 공유해 주세요.

    좋은 웹페이지 즐겨찾기