upstash Redisを個人ブログに取り入れて爆速風にしてみた
🧑🏻‍💻

upstash Redisを個人ブログに取り入れて爆速風にしてみた

Category
Author
Description
このブログ(Nextjs)はビルド時に画像を毎回notionから取得していたのですが、その画像をRedisサーバに置いて爆速になるようにしています。(正確にはLQIPをしてるので早く見えるようになっています。)
Published
September 21, 2022
Last Updated
Last Updated September 24, 2022
Writings
この記事は約3分で読めます

やったこと

このブログ(Nextjs)はビルド時に画像を毎回notionから取得していたのですが、その画像をRedisサーバに置いて爆速になるようにしています。(正確にはLQIPをしてるので早く見えるようになっています。)
upstash-redis
upstashUpdated Aug 30, 2023

upstashは何が良いのか

まず個人開発者にとっては無料で使えるところです。
10,000コマンドまで無料でそれ以上は有料の線引みたいです。
notion image
もちろん render.com でも良いのですが、VercelのIntegrationに出てきたので今回使ってみました。

AWS ElasticCacheと比較する

  • サーバレスの価格モデルはなく、インスタンス料金を支払わなければいけない
  • REST APIがない。upstashではREST APIが組み込まれている
  • ElasticCacheはVPC内からアクセスされるように設計されている。upstashならどこからでもアクセス可能

Redis labと比較する

  • サーバレスの価格モデルはなく、インスタンス料金を支払わなければいけない
  • REST APIがない。upstashではREST APIが組み込まれている

DynamoDBと比較する

  • DynamoDB はディスクベースのデータストレージです。書き込みと読み取りの両方のレイテンシーは、Redis よりもはるかに高くなります。
notion image
 
  • DynamoDBは価格設定が複雑すぎる&グローバルテーブルなど複雑になりがち
  • DynamoDBはAWSでしか使えない。ベンダーロックインしてしまう。
  • RedisはOSS製品であるため気軽にローカルで実行できる

upstash/redisの使い方

普通のRedisとそこまで変わりません。VercelであればGUI上で進めていくと自動的に入ります。
notion image
 
node.jsの場合は @keyvhq/redisで初期化するだけOKです。
const keyvRedis = new KeyvRedis(process.env.REDIS_URL) const redis = new Keyv({ store: keyvRedis, namespace: 'NAMESPACE' }) redis.set('key', 'value') redis.get('key') // value
以前はAWS ElasticCacheを使っていたけれど乗り換えたいという場合でも移行コストはそれほど高くなさそうで良いですね。

終わりに

正直最初はrenderを使用するか考えていましたが、VercelでついでにIntegrationしてポチポチしたら使えてしまうので非常に便利ですね。業務上で使えそうであれば使ってみます。(多分個人開発がほとんどだけど)
 

追記 2022/09/24

このNextjsブログを1日中ビルドしてるとさすがに夜には限界が来ました。
1人の使用量でこれなのでチーム開発には有料で開発したほうが良さそうです。
notion image
 

参考サイト