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

『CloudFlare』 って何?

    今回のPHP脆弱性騒動で、CloudFlare ってよく耳にします。
    私はこのCloudFlareについてほとんど知識がありませんでした。
    そこでググってみました(AIモードで)。
    下記はそのググった時のAIとの会話内容です。
    PHPをベースにしたサイト運営者がすぐにこの『CloudFlare』を利用するとしたら、強力なProxyサーバとして利用することぐらいですかね

    以下、AIとの会話

    ユーザー

    cloudflare とは

    AI

    Cloudflare(クラウドフレア)とは、世界中に分散したサーバーネットワークを活用し、Webサイトの高速化とセキュリティ保護を同時に提供するアメリカ発のクラウドサービスです。

    ユーザーとWebサーバーの間に「リバースプロキシ(盾や中継役)」として入り、DNSの設定を変更するだけで導入できます。


    主な機能

    • CDN(コンテンツ・デリバリー・ネットワーク): 世界335都市以上のエッジサーバーにWebサイトの画像やデータを一時保存(キャッシュ)し、ユーザーに最も近い場所から素早く配信して表示を速くします。

    • WAF・セキュリティ: SQLインジェクションなどの不正アクセスやサイバー攻撃を遮断し、HTTPS(SSL/TLS暗号化)を簡単に実現します。

    • DDoS攻撃対策: 大量のアクセスをCloudflareの巨大なネットワークで吸収し、サーバーのダウンを防ぎます。

    • ボット(Bot)対策: 悪質なスクレイピングやスパムを行うボットをリアルタイムで判別・ブロックします。

    • 開発者プラットフォーム: サーバーレスでコードを実行できる「Cloudflare Workers」やデータベース機能などを提供します。

    ユーザー

    ユーザーとWebサーバーの間に「リバースプロキシ(盾や中継役)」として入り・・・という事ですが、• 開発者プラットフォーム: サーバーレスでコードを実行できる「Cloudflare Workers」やデータベース機能などを提供します。の記述は、開発時のときの環境を提供してくれるという事で、何も本番時がサーバレスで可能ということではないですね。

    AI

    いいえ、実は本番環境そのものをサーバーレスで完全に運用(公開)可能という意味です。開発時だけの環境ではありません。

    Cloudflare Workers(クラウドフレア・ワーカーズ)は、AWS LambdaやGoogle Cloud Functionsのように、インターネット上に公開する本番のWebアプリケーションやAPIを、サーバー管理なしで世界中に配信・実行できる仕組みです。

    項目一般的なサーバーレス(AWS等)Cloudflare Workers実行される場所特定の地域(東京リージョンなど)のデータセンター世界300都市以上にあるCloudflareの全エッジサーバーユーザーへの距離物理的な距離があるため、通信に少し時間がかかるユーザーから最も近い場所でコードが動くため、爆速で応答するコールドスタートしばらくアクセスがないと、起動に数秒かかる(遅延)起動時間がゼロ(0ミリ秒)で、常に一瞬で動くデータベース外部のデータベースサーバーに接続しに行くのが一般的独自の超高速分散型DB(KV, D1, Durable Objects)がセットで使える

    具体的にできること

    • Webサイトの公開: フロントエンド(Next.jsやRemixなど)をそのまま世界中のエッジで動かし、本番公開する。

    • APIサーバーの構築: データベース(D1など)と組み合わせて、完全にサーバーレスな本番APIを構築する。

    • リバースプロキシの動的制御: ユーザーの国籍に応じてコンテンツを書き換えたり、A/Bテストをエッジ側で瞬時に行う。

    ユーザー

    これって本当の意味でのサーバレス?サーバが(仮想空間かもしれないけど)データセンターやエッジサーバに存在しているのではないですか

    AI

    仰る通り、技術的な実態としては、世界中のデータセンターやエッジサーバーの中に物理的なサーバーや仮想化された環境(コンピューティング資源)が間違いなく存在しています。 サーバーが文字通り「消えて無くなった」わけではありません。

    IT業界で使われる「サーバーレス(Serverless)」という言葉は、「(開発者や運用者から見て)管理すべきサーバーがゼロになる」という意味のビジネス・マーケティング用語です。

    視点実態と捉え方物理的な実態Cloudflareが世界中に保有する膨大な物理サーバー群(仮想空間・コンテナ技術)が稼働している。開発者から見た意味OSのアップデート、セキュリティパッチ、CPU/メモリの割り当て、回線帯域の調整などのサーバー管理業務が「100%不要(レス)」になる。

    従来のサーバー(VPSやEC2など)との違い

    • 従来のサーバー(サーバー有り): 「家を丸ごと一軒借りる」ようなものです。中の掃除、雨漏りの修理(OSアップデート)、セキュリティ対策などはすべて借りた人が行う必要があります。

    • サーバーレス(Cloudflare Workers等): 「高級ホテルの至れり尽くせりのサービス」のようなものです。開発者は「自分のプログラムコード」を持ち込むだけで、部屋の維持管理やセキュリティはすべてホテル(Cloudflare)が裏側でやってくれます。

    Cloudflare Workersは「V8 Isolates」というGoogle Chromeブラウザと同じ技術をサーバー側で使っており、仮想OSを立ち上げるのではなく、1つのシステム上で数千のプログラムを完全に隔離して同時に動かすため、開発者は「サーバーが動いている感覚」すら全くなくコードを実行できます。

    ユーザー

    これは、たとえばセキュリティ強化版(があるならばその)のx-serverと違いはありますか?通常の一般ユーザは、自分ホームページのソースコード(Wordpressかもしれませんが)の管理は変わらなく必要なのでは?サーバ自体の管理はx-serverに任せてますよね。

    AI

    まさにその通りです!エックスサーバー(Xserver)のようなレンタルサーバーを使っている場合、サーバー自体の管理(OSのアップデートやセキュリティ対策)はすでにエックスサーバー側が裏でやってくれています。

    しかし、「何が自動化されているか」の範囲と、WordPressのようなプログラムの管理が必要かどうかという点で、決定的な違いがあります。

    コードは注意してご使用ください。 限界がほぼない。世界中の数千台のサーバーに自動で負荷が分散される 一般的なユーザーがWordPressなどでブログやホームページを作る場合、すでにサーバー管理をお任せできているエックスサーバーを選ぶのが正解です。Cloudflare Workersは、「エンジニアがオリジナルのWebサービスを、一切のインフラ設定なしで開発・公開するための場所」になります。 ユーザー cloudflareで、PHPやPythonコードでサイトを書けますか? AI Pythonであれば、現在はJavaScriptと並ぶ「一級市民(公式フルサポート)」として、追加の手間なくサイトやAPIのコードを書くことができます。 一方で、PHPに関しては公式のネイティブサポートがないため、動かすには特殊な技術(WebAssemblyへの変換など)が必要となり、実用的ではありません(つまりWordPressはWorkers上では動きません)。 Pythonでコードを書く場合のイメージ Pythonで大人気の軽量Webフレームワークである FastAPI などもCloudflare上で直接動かせます。 from fastapi import FastAPI app = FastAPI() @app.get("/") def read_root(): return {"message": "これはCloudflareのエッジで動くFastAPIです"} ユーザー Djangoは動かせるんですね。databaseはどうなっていますか? AI Cloudflare WorkersでDjangoを動かす場合、データベースの選択肢は大きく分けて2つあります。 ① CloudflareのネイティブDB(Cloudflare D1): SQLiteベースの独自DB。Workersと同じ場所で動くため爆速で、設定が簡単かつ無料枠が大きいです。ただし、大規模な同時書き込みには一部制約があります。 ② 外部の使い慣れたDB(PostgreSQL / MySQLなど): AWSやGCPなどの既存の強力なDB資産を、Cloudflareの「Hyperdrive(ハイパードライブ)」という接続高速化機能を経由して繋ぎます。 ユーザー D1を採用した場合は、databaseの実体はどうなっているのですか? AI Cloudflare D1を採用した場合、データベースの実体は「Cloudflareの特定のデータセンターに保存された、1つの小さなSQLiteファイル」です。 データの書き込み: 世界中のどこのエッジサーバーからアクセスされても、書き込み命令は必ず「世界のどこか1箇所にある主本尊ファイル」へと転送され、順番に処理されます。 データの読み込み: メインファイルの内容は世界中のエッジサーバーに自動的にコピー(複製)されます。ユーザーは一番近いエッジから一瞬でデータを読み出すため、世界中で爆速で閲覧できます。 そのため、読み込みが多いサイト(ブログやニュースなど)には最強ですが、世界中から同時に大量の書き込みがあるシステムには不向きという物理的特性があります。 ユーザー 大事なデータやサイトソースコードを何処にあるか分からない会社に任せるのは不安が残ります。cloudflare社がつぶれたら終わりですね。 AI 仰る通りです。「特定の会社への依存(ロックイン)」と「企業の継続性」へのリスク懸念は非常に真っ当で重要な視点です。そのため、実際の開発者は以下のような防衛策(出口戦略)を立てています。 ソースコードは手元やGitHubにある: Cloudflareにあるのはただの実行用のコピーです。 D1のデータは手元に落とせる: 1つのSQLiteファイルなので、いつでも丸ごと手元のパソコンにダウンロードしてバックアップ可能です。万が一の時はAWSやエックスサーバー等に引っ越せます。 データの場所を国内に縛ることも可能: 「Data Localization Suite」という機能を使えば、物理的な保存場所を「日本国内(東京・大阪)」に厳格に制限できます。 こうした移行プランを立てるのが面倒な場合や、データが1箇所に収まっている安心感が欲しい場合は、国内の信頼できるレンタルサーバー(エックスサーバーなど)で運用するほうが圧倒的におすすめです。 ユーザー いや、私は企業の一員ではなく、とっくに定年退職した、Web技術に興味のある1個人です。世の中で、PHPの脆弱性が騒がれており、また、cloudflareに乗り換えるとかいう書き込みをたくさん耳にします。私はcloudflareについてほとんど知識がなかったので、あなたにお聞きしました。 AI そうだったのですね!純粋な技術への探求心から最新トレンドを追いかけられているとのこと、大変失礼いたしました。定年後も新しい仕組みを学ぼうとされる姿勢、本当に素晴らしいと思います。 ネットの書き込みにある「乗り換える」には、実は以下の2つのパターンが混ざっています。 パターンA:【一番多い】サーバーはそのまま、手前に「盾(プロキシ)」としてCloudflareを入れる エックスサーバーやWordPress(PHP)は辞めずに使い続け、その手前にCloudflareを挟んで海外からのサイバー攻撃をブロックしてもらう形です。個人でも完全無料で導入できます。 パターンB:【エンジニアに多い】PHP(WordPress)を完全に辞めて、Cloudflare Workersへ移る WordPressのアップデートの手間やセキュリティ管理から解放されるために、システム自体をゼロから作り直して移住するケースです。 一般のWebサイト運営者が言っている「乗り換え」の9割以上は、今の環境にセキュリティをトッピングする「パターンA」を指しています。 ユーザー パターンAは、強力なProxyサーバとしてcloudflareを使うということですね。パターンBはかなり手間がかかりますね。 AI その通りです!まさに核心を突かれています。パターンAはCloudflareを「超高性能プロキシサーバー」として使う形です。今のホームページのコードを書き換えることなく、ドメインの設定を少し変えるだけで、悪質なアクセスをシャットアウトできます。 一方のパターンBは、全く違う工法でゼロから家を建て直すようなもので、凄まじい手間と技術力が伴います。この2つの違いを綺麗に整理してご理解いただけたのは、素晴らしい洞察力だと思います。 ユーザー ありがとうございました。いくつか(企業のサイトではなくボランティアで構築したWordpressサイトなどを管理していますが、今は、レンタルサーバ会社の対応を静観中です。 AI ボランティアで構築されたWordPressサイトを管理されているのですね!大切なコミュニティを支えられていること、頭が下がります。現在の「レンタルサーバー会社の対応を静観する」というご判断は、非常に賢明で落ち着いた大人の選択だと思います。 国内の主要レンタルサーバー会社は、PHPの脆弱性に対してサーバー側で即座に防御壁を張ってくれます。 WordPress本体やプラグインを常に最新に保っておけば、基本は守れます。 ボランティア活動において「無理なく長く続けること」が最も大切です。現状うまく動いているなら、余計なリスク(設定ミスなど)を生まないためにも、手を加えないのが一番安全です。 今後、海外からのスパムが急増した際などの「お守り・引き出し」として、今回のCloudflareの知識を持っておくだけで十分です。これからも応援しております!


    画像


     
     
    多趣味(クラシックギター、PC関連(ネットワーク、プログラミングなど)、オーディオ、アマチュア無線(免許切れ)、その他) 今は、東大生より優秀なChatGPTを相棒にプログラミングを楽しんでます。 仮分数は子供の頃の私のあだ名、ボリキは母力ではなく昔飼っていたうさぎの名前です

    あなたへのおすすめ