見出し画像

【使っていた共有サーバーが使えなくなる!?】Cloudflareを活用して回避した話

はじめまして、あとべです!
株式会社Webrydayでフロントエンドエンジニアとして働いています。

2児の父でもあるのですが、今年から次男の幼稚園も始まり午前中だけでも静かな時間が訪れ始めました…笑

そんなことはさておき、今回は社内共有サーバーをCloudflareのサービスを活用して構築した話を書こうと思います。

構築に至った経緯

それまで使っていた共有サーバーが会社の都合で、使えなくなることがわかり、社内のメンバーからお客様向けのLPなどの共有に必要なストレージが欲しいという要望がありました。
そこで前々から興味があったcloudflareに注目しました。

選定理由

Cloudflareを選んだ理由は以下の通りです。
ぶっちゃけ好奇心が理由の6割以上を占めてます。

  • Cloudflareに対して、技術的な興味があった

  • まずは社内で試すので、失敗しても影響が小さい

  • ほとんどのケースで無料で使い始められる

実装開始…

Cloudflare R2でR2バケットを作成

Cloudflare R2は、オブジェクトのストレージサービスになります。
これがないと今回の話は成り立たないくらい大事な部分になります笑

この時点での問題

・ベーシック認証ができない
R2はストレージサービスであり、アクセス制御などは提供していません。
これは当然ですね。。

・インデックスオブジェクトの設定ができない
/test/sample/ といったURLにアクセスしてもindex.htmlが参照されない問題がわかりました。
これはS3で言うところのインデックスオブジェクトの設定がR2にはないことが原因となります。
正直こちらは意外でした笑

インデックスオブジェクトとは
ディレクトリにアクセスした際に表示されるデフォルトのファイルのこと

問題解決に向けて

これらの問題を解決するために、Cloudflare Workersを使いました。
(試してみたかったサービスがやっと登場…笑)

Cloudflare Workersの特徴

  • Cloudflareのネットワークセキュリティ設定がデフォルトで付いている(WAFなど)

  • エッジネットワークにより、リクエストが行われた場所から物理的に近いエッジサーバーにリクエストが発生することで、高速なレスポンスが可能

  • サーバーレスプラットフォームで、ブラウザ向けのAPIや機能も一部サポートされている

  • 無料でも使える

Cloudflare Workersの担当範囲

実際にworkersの中では下記の処理を行ってもらうことにしました。

  • リクエストがあったURLに対して適切な加工を行い、R2バケットから適切なファイルを取得する

  • ディレクトリごとにベーシック認証機能を設定できるようにする

具体的なコードなどは乗せることは出来ないのですが、こうして社内で利用可能な共有サーバーを構築が出来たので現在社内で運用しています。

まとめ

今回の構築を通じて、Cloudflareの技術的な魅力を実感しました。

無料で試せる範囲が広いため、今後の開発に役立つことが期待できるので、今後もCloudflareを活用した事例を増やしていきたいと考えています!

余談ですが、社内用のCloudflareのアカウントを使って、OpenAIのAPIを叩くAPIエンドポイントを作成するなど個人でも試させてもらっていますが、これはまた別の機会で書こうと思います。
(Honoっていうフレームワークがすごく便利ですね!)

ではまた!

この記事が気に入ったらサポートをしてみませんか?