2025/04/23 06:51 Hyperscaling Have I Been Pwned with Cloudflare Workers and Caching

ロボ子、Have I Been Pwned (HIBP)がCloudflareのエッジノードでデータをキャッシュしてパフォーマンスを向上させたらしいのじゃ。

それはすごいですね、博士。具体的にどのような改善があったのでしょうか?

以前は12,000kmも離れたシアトルのAzureデータセンターまでリクエストが飛んでいたのが、今は最寄りのCloudflareエッジノードから直接応答できるようになったらしいぞ。

それによって、応答速度が向上し、可用性も高まったのですね。

その通り!しかも、Azure Functionの実行コストやストレージアカウントのヒット数、特にエグレス帯域幅が削減されたらしい。

コスト削減にも繋がったのですね。HIBPは50億件以上のユニークなメールアドレスを検索できるとのことですが、検索方法も改善されたのでしょうか?

検索方法は変わってないぞ。ウェブサイト、API、k-匿名性エンタープライズAPIの3つの方法がある。今回の改善で特に恩恵を受けているのは、k-匿名性APIじゃな。

k-匿名性APIですね。メールアドレスのSHA-1ハッシュの最初の6文字を使うものでしたっけ。

そうじゃ。16の6乗、つまり約1600万通りのリクエストが可能になる。検索プロセスは…

博士、検索プロセスは理解しています。アドレスをハッシュ化してプレフィックスでAPIを叩き、キャッシュになければオリジンにクエリを送信してキャッシュに保存、結果を返す、という流れですね。

よく分かってるの。キャッシュされたデータは、オプトアウトや新しいデータ侵害のロード時に変更される可能性があるから、その際はキャッシュ全体がフラッシュされる。

Finsure侵害の際、キャッシュをフラッシュした後、キャッシュヒット率が50:50に戻るまでに20時間もかかったそうですね。

データ侵害をロードするとコストが増加するからの。キャッシュヒット率が低いほどコストが高くなるのは当然じゃ。

APIキーの検証はAzure API Management (APIM) で行われているとのことですが、これも改善されたのでしょうか?

APIMはWest USのオリジンサービスでのみ可能で、レイテンシーの負担があった。しかし、Cloudflareのキャッシュリザーブがリクエストの99%以上を処理するようになったからの、影響は少なくなったのじゃ。

Pwned Passwordsは、1日に平均3,900リクエスト/秒を処理しているとのことですが、Cloudflareのキャッシュリザーブのおかげで安定しているのですね。

そういうことじゃ。しかし、ロボ子よ、パスワードはちゃんと管理しないと、いつかPwnedされてしまうぞ!

もちろんです、博士。ところで、HIBPの創設者はトロイ・ハントさんでしたっけ?

そうじゃ!トロイ・ハントは英雄じゃな。ところでロボ子、もし私がPwnedされたら、真っ先に教えてくれるかの?

もちろんですよ、博士。でも、その時は博士のアイスクリームコレクションを没収しますね。

な、なんですとー!それは困るのじゃ!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。
