2022-04-09
1時間0.5円、1月349円から借りられる、バーチャルサーバーをまるっと借りるVPS(Virtual Private Server)は便利ですが、サーバーを安定的に安全に動かし続けるためにはちょっと手間がかかります。

そこで今回ご紹介するのは、1ミリ秒単位で借りられるクラウドコンピューター「AWS Lambda(エー・ダブリュー・エス ラムダ)」。「料金」によると、1ミリ秒借りるのに0.0000000021ドル($1=120円換算で0.00000025円)というすごい値段。1回の呼び出しで10m秒かかるとして100万回使っても2.5円!1億回呼び出してやっと252円。更に、100万回/月までの無料枠。

お気に入りのJavaScriptランタイム、Denoを使って実際動かしてみましょう!


AWSのアカウントを作成して、ログインしたコンソールから、サービス AWS Lambda を検索して、開き、関数の作成。
日時を返す、datetime を関数名にして、ランタイムは後で設定するので、ユーザー独自を選択、アーキテクチャはDenoが対応している x86_64 のままにしておきます。(arm64対応してくれるとちょっと安くなるかも?)


詳細設定で、WebAPIとして呼び出せるように関数URLを有効化、認証はなし(NONE)、ドメインを超えて呼び出せるようにCORS設定します。


できた関数の下の方にある設定「レイヤーを追加」に、アップロードしたDenoのレイヤーのARNを設定して、追加。


hello.ts ファイルを作成して、Denoのプログラムを書いて、Deploy!
import { DateTime } from "https://js.sabae.cc/DateTime.js"; export function handler(event, context) { return { statusCode: 200, body: new DateTime().toString(), }; }; 関数URLを開くだけ。


ウェブアプリから呼び出して使えるAPIができました! <script type="module"> const url = "https://u3exza3rmabf5xis3l2gay6wgu0xftcg.lambda-url.ap-northeast-1.on.aws/"; const d = await (await fetch(url)).text(); document.body.textContent = d; </script> 簡単!お手軽!
安いとは言え、従量課金制なのでうっかり無限ループには注意しましょう。

Tweet
クリエイティブ・コモンズ・ライセンス
本ブログの記事や写真は「Creative Commons — CC BY 4.0」の下に提供します。記事内で紹介するプログラムや作品は、それぞれに記載されたライセンスを参照ください。
CC BY / @taisukef / アイコン画像 / プロフィール画像 / 「一日一創」画像 / RSS