##やりたいこと
独自でAPIを提供したいと考えています。
提供内容は非常にシンプルで、ドル円の価格のようなものとなります。
また、このAPIの要件として以下となります。
- 1ユーザーからは3秒に一度呼ばれる(28,800回/日)
- ユーザーの想定は1000人以下(10人、100人、1000人のパターンで実現方法が異なるのであればそれも含めて知りたいです)
- APIで取得出来る値は自分のローカルPCから更新を行う。平均で10分に一回の頻度。
##困っている事
上記の要件を満たすAPIを提供するにはどのように実現すればよいのでしょうか。
##考えた事
できるだけ費用を抑えて実現できた方が嬉しいです。
案①
GASがAPI化可能なので
グーグルスプレッドシートに対して自分のローカルマシンからセルを更新させ、
GASによるスプレッドシートへのAPIアクセスをまず考えました。
これであれば以前実装したことがあったので実装自体はできるのですが、
URL Fetch コール数の上限が 2万回/日 とのことなので3秒に1度呼び出すのでは全く満たせません。
仮にAPIの呼び出し頻度を下げるにしても5秒に1回までが限度と考えており、それでも使用可能なのは1人だけです。
案②
websocketでデータを提供する。
これだけの頻度であれば恐らく、websocketでデータを提供してもよいと考えました。
しかし、websocketからデータを受け取るのが非常にレガシーなシステムなのでwebsocketにデータが受信したらそのコールバックを受けるという仕組みが作れないようです。
なので、
①レガシーシステムから一度だけwebsocketのコネクションを起動させに行く
②websocketのコネクションを確立させ、(awaitさせずに)非同期でデータを受信させる
③データを受信したら特定パスにCSVなどに書き出す。(レガシーシステムからはコールバックが受け取れないので。)
④レガシーシステムから3秒に1回、特定パスのCSVを読み込みに行く
のようにすれば実現可能かと考えました。
ただこれを実現するにはどこで構築した方がよいかなどの知見が全くなく質問させて頂いた次第です。
よりよい方法、一般的な方法などがあれば是非教えて頂きたいです。
あなたの回答
tips
プレビュー