はじめに
本記事では、Upstashが提供する主なサービス(Redis、Vector、QStash)について、各サービスの概要と使用例をまとめています。
サーバーレス環境との相性が良く、導入が容易な点が魅力です。ぜひ参考にしてみてください。
Upstashとは?
Upstashはサーバーレスに特化したデータプラットフォームです。
データベースやメッセージング、スケジューリングなどをクラウド環境で手軽に利用できるように設計されており、インフラ管理の負担を大幅に軽減しつつ、拡張性の高いアプリケーション開発をサポートします。
Upstash Redis
特徴
- REST APIでアクセス可能
- 8つ以上のリージョンでグローバルレプリケーション
- サーバーレス環境に最適化された設計
- 従量課金制で使用量に応じた料金体系
使用例
-
セッション管理
- REST APIを使い、サーバーレス環境でユーザーログイン情報をキャッシュ
- 一時的なデータを高速に読み書きできる
-
レート制限
- リクエスト数のカウント用データをRedisに保存
- 簡単なRedisコマンドで瞬時にカウント更新・チェックが可能
-
LLMアプリケーション連携
- 高速なデータ処理とセッション管理
- リアルタイムレスポンスの実現
# 例:REST APIを用いた簡単な書き込み例(cURLを利用)
curl -X POST https://<UPSTASH_REDIS_URL> \
-H "Authorization: Bearer <YOUR_TOKEN>" \
-H "Content-Type: application/json" \
-d '{
"command": "SET",
"args": ["greeting", "Hello Upstash!"]
}'
Upstash Vector
特徴
- AIやLLM向けに最適化されたベクターデータベース
- DiskANNとFreshDiskANNアルゴリズムを採用
- コサイン類似度、ユークリッド距離、内積などの類似度関数をサポート
- JSONメタデータの保存機能
使用例
-
類似画像検索
- 画像特徴量をベクトル化して保存
- 類似する画像を高速に検索し、ECサイトやSNSでのレコメンドに活用
-
テキスト埋め込み検索
- 文書を埋め込みベクトル化して保存
- FAQ検索やドキュメント検索で高い検索精度を実現
# 例:ベクトル登録の疑似コード例 (Python)
from upstash_vector import Index
index = Index(url="your-url", token="your-token")
index.upsert(
vectors=[{
"id": "doc123",
"embedding": [0.12, 0.98, 0.35],
"metadata": {
"title": "Upstash Vector Example"
}
}]
)
Upstash QStash
特徴
- HTTPベースのメッセージングとCRONスケジューリング機能
- デッドレターキュー(DLQ)による失敗処理
- メッセージの重複排除機能
- LLM APIのネイティブサポート
- 最大2時間の実行時間制限
使用例
-
定期実行タスク
- CRONスケジューリング機能を使い、バッチ処理やレポート生成などを自動化
- REST APIを呼び出すだけで定期実行をセットできる
-
サーバーレス間メッセージ連携
- LambdaやCloud Functionsなど複数のサーバーレス環境へHTTPで通知
- 新規リソース作成や更新があった場合に即座に関連処理を実行
-
LLM処理の非同期実行
- タイムアウト制限を回避
- 自動リトライによる安定性向上
# 例:定期実行設定の簡単な作成例(cURLを利用)
curl -X POST https://qstash.upstash.io/v2/publish/<YOUR_ENDPOINT> \
-H "Authorization: Bearer <YOUR_TOKEN>" \
-H "Upstash-Cron: 0 * * * *" \
-d '{"task": "executeBatchJob"}'
まとめ
Upstashは、サーバーレスアーキテクチャに最適化されたデータプラットフォームとして、Redis・Vector・QStashなど多様なサービスを提供しています。
小規模のPoCから本番運用まで、インフラ管理の手間を抑えて高い拡張性が得られるのが魅力です。
従量課金制の料金体系により、使用量に応じた柔軟な運用が可能です。
参考
- [1] Upstash: Serverless Data Platform https://upstash.com
- [2] Get Started - Upstash Documentation https://upstash.com/docs/introduction