Redis
 Computer >> コンピューター >  >> プログラミング >> Redis

サーバーレスRedis(Upstash)でFly.ioアプリをグローバルに実行する方法

Fly.ioは、アプリケーションを世界中に分散配置できる優れたプラットフォームです。アプリケーションがグローバルになれば、それを支えるデータもグローバルであることが求められます。通常のRedisをFly.ioアプリとして実行することも可能ですが、その場合はデータが単一リージョンに配置されてしまうという課題があります。一方、Upstash Redisのグローバルデータベースは世界各地へのレプリケーションに対応しているため、Fly.ioとの相性は抜群です。さらにRESTベースのSDKを採用しているため、ステートレスなランタイム環境でも接続の問題が発生しません。

この記事では、Upstash RedisにアクセスするシンプルなNode.jsアプリケーションを作成し、Fly.ioプラットフォームにデプロイする手順を解説します。

Fly.ioのセットアップ

Upstash Redisのセットアップ

  • Upstashコンソールで無料のグローバルデータベースを作成します。
  • REST_URLとREST_TOKENをコピーしておきます。後ほどコード内で使用します。

アプリケーションコード

  • Hello Worldアプリをクローンします。
    git clone https://github.com/fly-apps/hellonode-builtin
  • 依存パッケージをインストールします。
    npm install express @upstash/redis
  • server.jsを編集し、urltokenの部分をご自身の値に書き換えてください。

server.js

const express = require("express");
const app = express();
const port = process.env.PORT || 3000;
const { Redis } = require("@upstash/redis");

const redis = new Redis({
  url: "REPLACE_HERE",
  token: "REPLACE_HERE",
});

app.get(["/", "/:name"], async (req, res) => {
  let greeting = "<h1>Hello From Node on Fly!</h1>";
  if (req.url !== "/favicon.ico") {
    const data = await redis.incr("count");
    res.send(greeting + "</br> Counter: " + data);
  } else {
    res.send("");
  }
});

app.listen(port, () => console.log(`HelloNode app listening on port ${port}!`));

実行とデプロイ

  • アプリケーションをローカルで実行します。
    node server.js
  • Fly.ioへの初期設定とデプロイを行います。
    flyctl launch
  • 変更後の再デプロイにはflyctl deployを使用します。
  • flyctl statusコマンドでアプリケーションのURLを確認できます。
  • Fly.ioのダッシュボードからもアプリの状態をチェックできます。

サーバーレスRedis(Upstash)でFly.ioアプリをグローバルに実行する方法

まとめ

この記事では、Fly.ioアプリケーションプラットフォーム上でUpstash Redisを活用する方法を紹介しました。

ご質問やフィードバックがあれば、GitHubDiscordTwitterからお気軽にお問い合わせください。

  1. UpstashのPipeline APIでサーバーレスRedisを高速化:複数コマンドを1リクエストで実行

    Upstashは、ネイティブなRedis APIに加えてREST APIもサポートしており、開発者はサーバーレス関数やエッジ関数から接続の問題を気にせずRedisへアクセスできます。しかし、同じ関数内で複数のRedisコマンドを実行する場合、その回数だけデータベースへの呼び出しが発生してしまうという課題がありました。 そこで、コミュニティメンバーの一人である@MasterGates氏が、Discordチャンネルで素晴らしい提案をしてくれました。それが「Pipeline API」です。 Pipeline APIとは Pipeline APIは、RedisのPIPELINEコマンドをREST A

  2. Cloudflare WorkersとRedisで実現するエッジコンピューティング活用術

    エッジコンピューティングは、近年もっとも注目されている技術のひとつです。CDNがファイルをユーザーの近くに配置できるようにしたのと同じように、エッジコンピューティングはアプリケーションそのものをユーザーの近くで実行できるようにします。これにより、開発者はグローバルに分散され、高いパフォーマンスを発揮するアプリケーションを構築できるようになります。 Cloudflare Workersとステートレス性の課題 現在この分野をリードしている製品がCloudflare Workersです。コールドスタートのないサーバーレス実行環境を提供し、Cloudflareのグローバルネットワークを活かすことで、ア