LoginSignup
2
0

今更ながらCloudflare Workersを触ってみる

Last updated at Posted at 2023-11-15

概要

Cloudflareを業務で利用する機会が増えており、何となくで使うのは辞めたいなあ
ということで、今更ながらCloudflare Workersについて一から触って理解を深めたいと思います。

Cloudflare Workersとは

エッジサーバーでJavaScriptを実行できるサーバレスのサービスです。

特徴的な部分として下記が挙げられるかと思います。

  • 0msコールドスタート
    • リクエストを処理できるようになるまでの待ち時間がない
    • どうやって実現しているかはこちらの記事が参考になりました
  • エッジサーバーで展開できる
    • ユーザーの物理距離の近いサーバーから配信されるためレイテンシーが低い
    • オリジンサーバーに到達するまでの間で処理を実行できる
      • ABテストの実現
      • User-Agentに応じたリダイレクトなど

料金

  • 100万リクエストにつき $0.15 (最低 $5~)

かなり安く使えますね!シンプルな料金体系なのもありがたいです。
また、無料プランでも1日10万リクエストまで使えるので、私用で使う分には十分ですね!

cf: lambdaが100万リクエストで $0.6 + GB-秒あたり 0.00005001USDのコンピューティング料金

チュートリアル

Web Consoleで試す場合は、ワーカーの作成を押すだけで、サンプルスクリプトが作られて、デプロイが完了します。

スクリーンショット 2023-11-16 0.54.17.png

あっという間にHello Worldを全世界に向けて発信できます。
これは、かなり楽ですね。衝撃的です。

スクリーンショット 2023-11-16 0.57.17.png

ただ、これだと個人で使う分にはいいですが、複数人で開発しているサービスだと、ちゃんとデプロイの管理やスクリプトをコード管理したいですよね。

そこで出てくるのが、Wranglerです。
Cloudflare Workersのプロジェクトの作成や、ビルド、デプロイを行えるCLIツールです。

今はVersion3となっており、Version4では削除される予定の機能もあるので、使う前に必ず確認してから使いましょう。

Wranglerのセットアップ

まずnpm経由(またはyarn)でwranglerのパッケージをインストールします。

npm create cloudflare@latest

上記コマンドを叩くだけで、あとは質問に対して答えていくだけで、作成されます。

今回はHello World Workerを選択します。

スクリーンショット 2023-11-16 1.18.26.png

途中、ブラウザが開いて権限を渡しても問題ないか聞かれるので、承認すればあとは自動で完成します。
めっちゃ楽ですね。

下記のようなディレクトリ構成でベースが作られているはずです。

- node_modules
    - etc...
- package-lock.json
- package.json
- src
    - index.ts
- tsconfig.json
- wrangler.toml

wrangler.tomlはCloudflare Workersを管理するための設定ファイルです。
いろいろ設定ができるので、こちらのドキュメントを参照すると良いです。

CI/CDで使いたい場合は、APIトークン作成ページからトークンを作成するをクリックし、テンプレートからCloudflare Workersを編集するというのがあるので、それをベースにAPIトークンを作成すればOKです。
スクリーンショット 2023-11-16 1.27.42.png

作成したAPIトークンはCLOUDFLARE_API_TOKENとして環境変数に設定すれば、それだけであとは
npx wrangler deploy --env production でデプロイができます。

こんな楽でいいんだろうか

おわりに

Cloudflare Workers めっちゃ楽ですね。
今まで知らなかったのが勿体無いくらいに。
それでいてパフォーマンスもいいとなるとそりゃ流行るわけだと思いました。
実際にベンチマークしてみたり、まだまだ実験してみようかなと思いました。
最後までご覧いただきありがとうございました!

参考記事

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0