リバースプロキシDockerコンテナ vs Qnapリバースプロキシ機能

こんにちは、

軽量なAPIウェブフックエンドポイント(Notionからのウェブフックを受信し、さまざまなアクティビティをトリガーするため)をホストしたいと考えています。PythonのDockerコンテナを作成し、FastAPIをインストールしました。ローカルでテストしたところ、基本的なHello Worldは動作しています。

これをインターネットから自然にウェブフックを受信できるように公開したいと考えています。最も一般的な方法は、TraefikやNginx Proxy Managerでリバースプロキシを設定することだと理解しています。また、Qnapのコントロールパネルのネットワークアクセスエリア内にある独自のリバースプロキシ機能にも出会いました。

どのオプションを選ぶべきか、それぞれの利点について説明していただけますか?コンテナやNASへのトラフィックのセキュリティ確保については全くの初心者です。

追加情報として、*.myqnapcloud.comサブドメイン用にLet’s EncryptのSSL証明書を設定済みです。また、Cloudflare経由で設定した個人用ドメインも持っています。これを利用して(例:api.mydomain.comのように)、FastAPIコンテナにポイントしたいと考えています。唯一の懸念点(もし問題になるなら)は、個人用サブドメイン(api.mydomain.com)をルーターのIPに直接ポイントできないことです(IPが固定ではないため)。そのため、実際にはQnapのDDNSサービスを利用しています。つまり、api.mydomain.commy-subdomain.myqnapcloud.com → ルーターIP → ポートフォワードで80と443をNASに転送しています。

よろしくお願いします!

個人のドメインをダイナミックIPに、ルーターに向けて設定することは十分に可能です。そのためにダイナミックDNSプロバイダーを利用します。MyQNAPCloudもまさにそれを行っています。ルーター自体がその機能を持っている場合もあります。

プロキシに関するご質問については、私には確信がないので他の方のコメントにお任せします。

こんにちは、もしご自身のドメインを持っていて、DNSサーバーとしてCloudflare(クラウドフレア)を利用している場合、「Cloudflare Tunnel(クラウドフレア・トンネル)」機能を試したことはありますか?

この機能を使うと、Notionなどのサービスからカスタムサブドメインにメッセージをトリガーしたりプッシュしたりでき、そのサブドメイン経由でContainer Station内のFastAPIにリクエストを送ることができます。

この方法では、ゲートウェイのポートを開放する必要がありません。外部からカスタムサブドメインにアクセスすると、指定したサービスのIPやポートに直接接続され、まるでポータルのように利用できます。

Cloudflareの無料プランにはレート制限がありますが、一般的な通知や個人利用であれば特に問題はありません。

もしこの方法に興味があれば、参考用にもう少し設定例を用意できますよ。:grin: