AWS FargateからCloud Runへ。Cloudflareを中心とした「堅牢かつ低コスト」な移行戦略
株式会社ORPHE / Niida
メンバー / インフラエンジニア / 従業員規模: 10名以下 / エンジニア組織: 10名以下
| 利用プラン | 利用機能 | ツールの利用規模 | ツールの利用開始時期 | 事業形態 |
|---|---|---|---|---|
Proプラン | Cloudflare Workers, DNS, WAF | 10名以下 | 2023年2月 | B to C |
| 利用プラン | Proプラン |
|---|---|
| 利用機能 | Cloudflare Workers, DNS, WAF |
| ツールの利用規模 | 10名以下 |
| ツールの利用開始時期 | 2023年2月 |
| 事業形態 | B to C |
アーキテクチャ
アーキテクチャの意図・工夫
意図や工夫
GCPネイティブのLBやVPC設定を極力排し、外部との接点をすべてCloudflareに集約することが最大の意図です。これにより、構成がシンプルになり、GCP側はCloud RunとDB(Cloud SQL)に集中できるため、管理対象のコンポーネントが激減しました。
背景
AWS時代にコンポーネントが多すぎた反省から、「最もシンプルかつ堅牢な構成」を追求した結果、Cloudflareをエッジとして利用する構成に行き着きました。
導入の背景・解決したかった問題
導入背景
ツール導入前の課題
私達のサービスは、AWS Fargate環境で稼働していました。 しかし、Fargateの手前にBFFに相当するLambdaがAPIエンドポイントごとに存在するなど、複雑なアーキテクチャによって開発者体験が悪く、トラブルシューティング時のログも分散していて運用負荷も高い状態でした。Fargate自体へのデプロイに10分以上要すことからCI/CDのパイプラインのコストにも響いていました。 また、セキュリティへの対策が後手に回っていたこともあり、何かが起こる前に手を打つべき状況でもありました。
大きなタスクとしてはFargateからCloudRunへの移行でしたが、それに伴って複雑化したLambdaの整理、セキュリティの対策をCloudflareに任せるという部分がこの話の趣旨になります。
どのような状態を目指していたか
インフラエンジニアが常時張り付かなくても、冗長性やスケール性能、セキュリティなどがある程度担保され、アプリケーションの変更がスムーズにデプロイされるなど、プロダクトの運用ができる状態。
比較検討したサービス
- CloudFront
- Cloudflare
比較した軸
- コスト効率: 利用に関する料金がほぼかからないこと
- セキュリティ機能: デフォルトの設定でDDoS対策及び十分なルールのWAFがあり、複雑な設定なく導入できること
- エッジでの柔軟な処理: 移行期間中のパス書き換えや、将来的な認証連携など、エッジでロジックを実装できる柔軟性があること。
- 開発体験とデプロイ速度: デプロイが高速であり、アプリケーションエンジニアが扱いやすい簡潔な設定であること。
選定理由
最終的にCloudflareを選定した決め手は、「優れたコストパフォーマンス、Workersによる柔軟なカスタマイズ、高いセキュリティ機能の両立」でした。
Workersによる高い柔軟性: Workersのシームレスなデプロイ体験と、Honoを用いたモダンな開発体験が、複雑化したLambdaの整理に役立ち、今後の開発体制に不可欠だと判断しました。
セキュリティ: WAF、DDoS対策、オリジン保護をまとめてCloudflareに任せられるという安心感がありました。DNSも合わせて使用することで、Cloudflare内のセキュアなネットワークを利用することが出来ます。
導入の成果
- デプロイ時間が約15分から約1分に短縮しました。Cloudflareに限れば数秒です。
- セキュリティ面ではCloudflareによってDDoSなど一般的な攻撃への耐性が大幅に向上しました。
導入時の苦労・悩み
Cloud Runのオリジン保護設計: 今回Google CloudのLoad Blancerを使用しなかったため、Cloud Runのデフォルトドメイン(*.run.app)への直アクセスを防ぐためのセキュリティ設計を自前で構築する必要がありました。
DNS設定と移行の順序: AWSからGoogle Cloudへの移行と同時にCloudflareへDNSを移管する必要があり、ダウンタイムを最小限に抑えるように慎重に計画しました。
導入に向けた社内への説明
上長・チームへの説明
まずはプロダクトの開発及び運用がシンプルになること、コストメリットがあることを説明しました。柔軟なプロダクトの選定ができる文化が強いため、上記メリットでエンジニアリングマネージャーはじめ、プロダクトオーナーやチームメンバーにもすぐに受け入れてもらえました。
活用方法
- 新規プロダクト開発時にDNSの登録 年数回
- Workersを使用した場合のCI/CDパイプラインからのデプロイ 毎日
- Accessを使用して、開発者向けのプレビュー用URLへのアクセス制限 月数回
よく使う機能
Cloudflare Workers、WAF、DNS
ツールの良い点
コスト効率とセキュリティの両立: 安価な固定費で、DDoS対策や高機能WAFといったセキュリティ機能を享受できる点。
圧倒的な開発体験: Workersのデプロイ速度と、JavaScript/TypeScript(Hono)でロジックを記述できる柔軟性。
高い安定性と堅牢性: 世界中に分散されたエッジネットワークによる信頼性の高さ。
ツールの課題点
特にありません
ツールを検討されている方へ
Cloudflareは非常に使いやすいサービスです。DNSやCDNだけでなくWorkersへのアプリケーションのデプロイは大変強力です。AI機能の拡充やZeroTrustの活用など、低コストで多くの恩恵を受けられます。
今後の展望
アプリケーションをTypeScriptで書き直すなどすれば、エッジコンピューティングのスケールメリットを活用でき、プロダクトの安定運用に繋がるばかりでなく、Cloudflareのシームレスなデプロイによって開発体験をさらに向上させたいです。
株式会社ORPHE / Niida
メンバー / インフラエンジニア / 従業員規模: 10名以下 / エンジニア組織: 10名以下
よく見られているレビュー
株式会社ORPHE / Niida
メンバー / インフラエンジニア / 従業員規模: 10名以下 / エンジニア組織: 10名以下
レビューしているツール
目次
- アーキテクチャ
- 導入の背景・解決したかった問題
- 活用方法


