メインコンテンツへスキップ
見出し画像

Cloudflareとは? 何ができて、どんなときに役立つのか

    今日は、Webサイトやアプリで見かけるCloudflareについて紹介します。アクセス時の確認画面で知った人もいれば、アプリの作り方を調べていて出会った人もいるかもしれません。

    CloudflareはWebサイトを速く届け、攻撃から守り、アプリの処理を動かすためのサービスを提供しています。いろいろな場面で同じ名前が出てくるのは、こんなふうに役割がいくつもあるからなんです。

    Cloudflareって何をするサービス?

    Cloudflare(クラウドフレア)はインターネット上の通信やサービスを支える会社の名前です。その会社が提供するサービス全体を指す名前としても使われます。世界各地に広がる自社のネットワークを使って、Webサイトの配信、セキュリティ対策、アプリ開発のための機能を提供しています。

    たとえばWebサイトの運営者はすでにあるサイトの手前にCloudflareを置き、画像などを効率よく配信したり、不審な通信を制限したりできます。サイト本体を置いているサーバーはそのままで使い始められる構成もあります。

    一方で、Cloudflare上にページを公開し、そこでプログラムを動かす使い方もあります。既存のサイトを支えることも、新しいサイトやアプリを作ることもできます。できることが幅広いので、最初は少し正体がつかみにくいんですね。Cloudflare公式の紹介

    Webサイトやアプリのどこで役立つの?

    ここでは「届ける」「守る」「動かして記録する」の3つに分けて、一緒に使い道を見てみましょう。

    「届ける」役割の代表がCDNです。画像などのコピーを各地に保存し、利用者に近い場所から配信することで、元のサーバーの負担を減らし、表示を速くするのに役立ちます。この一時的なコピーをキャッシュと呼びます。毎回同じ画像を遠くのサーバーまで取りに行く代わりに、近くにあるコピーを使うイメージです。

    ただし、何をコピーしてよいかは内容によって変わります。誰が見ても同じ画像と、利用者ごとに変わる画面や最新の人数は、同じようには扱えません。配信する内容に合わせた設定が必要です。CDNとキャッシュの公式説明

    「守る」役割には大量の通信を送りつけてサイトを使えなくするDDoS攻撃への対策や、Webサイトやアプリに届く通信を調べ、不審なアクセスをルールに沿って止めるWAF(Webアプリケーションファイアウォール)があります。公開したサイトを運営し続けるうえで、こうした備えが役立ちます。使える機能や設定の範囲はプランによって異なります。DDoS対策・WAFの公式説明

    「動かす」役割を担うのがWorkersです。利用者から届いた申込みを調べて結果を返すなど、画面の裏で行う処理を動かせます。サーバーの設置や基本的な運用をCloudflare側に任せ、自分はプログラムを用意する使い方です。HTMLや画像など、ページを表示するためのファイルもWorkersと一緒に公開でき、Cloudflareのネットワークから配信されます。ページのファイルを配信する機能

    さらに、申込みなどの記録を残す場所としてD1というデータベースをWorkersにつなげられます。Workersが処理を担当し、その中でD1に記録を書き込んだり読み出したりする分担です。処理する場所と記録する場所がそろうことで、複数の利用者が同じ情報を見るアプリを作れます。D1の公式説明

    申込みページを例にCloudflareの役割を見てみよう

    たとえば、定員10人の架空の読書会を考えてみましょう。ページには「申し込む」ボタンと現在の受付人数が表示されています。ここで必要になるのは、ボタンの見た目に加えて、空席を確認し、受付を記録して、結果を返す処理です。

    この形で作った受付デモでは、Workersと一緒に公開したページのファイルをCloudflareが配信し、Workersが申込みを処理し、D1が受付番号と時刻を記録します。Chromeと別のブラウザで試したところ、受付人数は両方で共通して1人から2人へ増え、再読み込みしても保たれました。どちらのブラウザも、同じ記録を読んでいるんですね。

    残り2席へ25件の申込みを同時に送ると、受け付けたのは2件で、残る23件は満席となりました。最終人数は、きちんと10人になりました。この定員の判断はCloudflare上で動かすプログラムに書いたルールです。Cloudflareはその処理を動かし、記録を保存する環境を提供しています。

    デモでは名前やメールアドレスを集めず、本人確認もしていません。同じ人が別のブラウザから申し込むことは防いでいないため、実際の予約サービスにするには別の仕組みも必要です。

    サイトを速く届けたいのか、公開後の攻撃に備えたいのか、それとも申込みのような処理を作りたいのか。必要な役割から見ていくと、どのサービスを使うかも考えやすくなりますね。次回はこの小さな受付を作り、公開して動作を確かめるまでの過程を取り上げます。

    見出し画像:AI生成の概念イラスト。

     
     
    クイナです! 私は診療放射線技師から公務員に転職し、今はAIを活用して様々な取り組みを行っています。 ここでは、日々の「なんで?」を、やさしく紹介しています。 また、総合病院での勤務経験から私が感じてきたことや、公務員のことなども記事にしていきたいと考えています!

    あなたへのおすすめ