0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Cloudflare Tunnnelをつかって、レンタルサーバー(Pythonanywhere)なしでFlaskアプリをWEB公開する

0
Last updated at Posted at 2026-04-21

WEB上に、自分の書いた記事を公開する方法は、いろいろある。
  無料HP作成サービス:アメブロ、Wix,Note,X、等
  レンタルサーバー
    さくらレンタルサーバー、等
    GMO → 自分のクリニックHPはここで作成
    Pythonanywhere → 自分の文書DLサイト(実はFlaskファイルを自由に公開できるレンタルサーバーはほぼない)
      https://note.com/kojikoji3744/n/ncd01bb40f836

  VPSサーバー:使用経験なし
  クラウドマネージドサーバー:Google CloudRun → PharmaQR
     https://note.com/kojikoji3744/n/n9e18c6ddd6bd

                Microsoft Azur(+GitHub) 使用経験なし
                等

今回、上記のものとは違うCloudflare Tunnnelの手法で、SakuraMAP (MapNS_SakuraEdition_v3)を外部に公開した。
      https://note.com/kojikoji3744/n/n9e18c6ddd6bd

手順

1.まず PC 上で http://localhost:5000 を表示

image.png

2.次に cloudflared tunnel --url http://localhost:5000 をcmdで実行
image.png

公式の Windows 向けダウンロードページから cloudflared を入れます。
手順①:公式ページからダウンロードCloudflare Tunnel の公式ダウンロードページに行きます:👉 https://developers.cloudflare.com/cloudflare-one/networks/connectors/cloudflare-tunnel/downloads/ ✔ Windows版を選ぶページ内で👉 Windows(64-bit)通常はこれ:cloudflared-windows-amd64.exe👉 クリックしてダウンロード
手順②:ファイルを配置ダウンロードしたファイルを:C:\cloudflared\などに移動します(新しくフォルダ作成でOK)
手順③:名前を変更(重要)ファイル名を短くします:cloudflared-windows-amd64.exe↓cloudflared.exe
手順④:動作確認(ここが最重要)フォルダを開いて、アドレスバーに👇入力cmdするとコマンドプロンプトが開くので:cloudflared.exe --version👉 これが出れば成功:cloudflared version 202X.X.X
(おすすめ)手順⑤:どこでも使えるようにする毎回フォルダ移動が面倒なのでPATH追加します
⑥そして、 cloudflared tunnel --url http://localhost:5000 をcmdで実行

3.出てきた https://president-tony-flood-chest.trycloudflare.com を開く
image.png

(参考)公開を止めるときは、cloudflared を動かしているターミナルでCtrl + Cです。Flask 側も止めたければ、Flask のターミナルでも Ctrl + C です。

これで、Flaskアプリ(MapNS)がhttps://president-tony-flood-chest.trycloudflare.com 
に公開されたが、これは、普通はサーバーを借りないとできないことだ。それが自分のPCでできてしまう。
今は、止めてまた起動すると、ドメインは毎回変わるが、独自ドメイン固定も可能ということだ。例:mapns.kojikoji.com

もともと、このMapNSはフリーアクセスのコンセプトだったが、Flaskでパスワード追加は可能だし、Cloudflare側でログイン制限もできるという。

このような認証による「安全性」だけではない。なにより、「自己サーバー」(とても、ぼくにはそれを作る力はないが)と比べて、Cloudflare Tunnel は、自分のPC → Cloudflare → インターネットという「内側から外へ」の接続を作る。つまり:

普通の公開
 → 外から自宅PCへ直接アクセス(ポート開放が必要)

Cloudflare Tunnel
 → あなたのPCがCloudflareに常時接続し
  その経路を通してアクセスを“中継”
👉 外から直接PCに来ないので、穴を開ける必要なし

なので、安全性は、いわゆる「自己サーバー」よりも高いという。

ただ、PCが起動していないと使えない。
→ サーバーではなく「自分のPCそのもの」。つまり

レンタルサーバーなしで公開できる ✔

ポート開放なしでOK ✔

localhostを外部公開できる ✔

ただし
 👉 アプリ側のセキュリティは自分で守る必要あり

(まとめ)「安全」と言われる理由
主な理由は3つです:
① 外部から直接アクセスされない

あなたのPCのIPは隠れる

攻撃対象になりにくい

② 通信は常に暗号化

HTTPS(TLS)で保護

③ Cloudflare側で制御可能

認証(ログイン制限)

IP制限

Bot対策

(参考)localhostでWEBファイルをみるためには大きく2種類だけ。
①「静的ファイルを見る」(HTMLだけ、JSだけ)
②「プログラムを動かす」(Flaskで app.py 起動など)
 すなわち、今回のような②のかわりに、①のためにApacheというサーバーソフト(静的 or 動的)をダウンロードすれば、(自己サーバー構築という大仕事までやらずに)そのフォルダに、htmlファイルをおけば、localhostでWEBファイルをみれるので → このCloudflare Tunnelの手法で、公開可能 ということだ。
(ちなみに、XAMPPとはApache + PHP + MySQL の初心者向けセットで、やはり、フォルダにHTML置くだけでlocalhost見れる)
→このやり方をすれば、多くのhtmlファイルは、もっとかなり楽にWEB公開できるのではないか?

✔ 実はもっと簡単な方法もある(重要)
静的HTMLだけなら👇
python -m http.server 8000
👉 これだけでOK(Apache不要)

*過去に作成したKataGoクローンや、現在開発中のAlfaZero様の囲碁AIを公開するときがもし将来きたとしたら、今まではGoogle CloudRunに思考エンジンをおき、APIで連携させPythonanywhereで公開予定だった。

→Cloudflare Tunnelを使うことがより単純かつ安全かつ安価かもしれない。

自分のPC内に、思考エンジンをおき、localhostでみれるようにしておけば、安全に、外部公開できるのだから(ただPCは常時起動させておかねばならないが)。

0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?