エンジニアリングの記事
URL短縮サービスが高負荷下で実際にどう動くのか。リダイレクトのレイテンシ予算、キャッシュ階層、ClickHouseによる分析パイプライン、冪等なAPI、そしてElidoのエッジを支えるインフラ選定までを掘り下げます。これらは本番システムの実際の数値に基づくエンジニアリングの深掘り記事で、リンクプラットフォーム上に何かを構築したい開発者や、システム設計そのものを楽しみたい方に向けて書かれています。アーキテクチャのページでベンダーを評価するタイプの方は、まずはここから始めてください。
- エンジニアリング
Webhook署名を検証する: Node、Python、GoでのHMAC-SHA256
HMAC-SHA256でWebhook署名を検証する方法を解説します。生のbody、定数時間比較、リプレイウィンドウとシークレットローテーションを、Node、Python、Go、n8nのコードとともに紹介します。
3分で読了verify webhook signature · webhook signature verification · hmac webhook - エンジニアリング
APIキーの権限: リンクツールでの最小権限
リンクツールのAPIキー権限を正しく設計する方法: ワークスペースに紐づくキー、ロール上限、ペッパー付きハッシュ、キーごとのレート制限、ローテーション、n8nやMakeへの安全な引き渡し。
1分で読了api key permissions · least privilege api keys · api key scopes - エンジニアリング
canonicalタグ vs 301リダイレクト:正しいシグナルの選び方
canonicalタグは検索エンジンが無視できるヒントであり、301リダイレクトは従うしかない命令です。日常的に起こる4つの重複URLのケースに、それぞれどちらが適しているかを解説します。
1分で読了canonical vs 301 redirect · rel=canonical · canonical tag - エンジニアリング
URLの最大長とは:現実に効いてくる文字数の上限
仕様上、URLの最大長というものは存在しません。実際の上限は、リンクが通過する経路の中で最も低い制限、ブラウザ、サーバー、受信トレイ、QRコードのいずれかによって決まります。
1分で読了maximum url length · max url length · url character limit - エンジニアリング
AIクローラーとショートリンク: ボットが実際にしていること
トレーニングクローラー、ライブフェッチャー、検索ボットはすべてリダイレクトにアクセスします。どれが301に従うか、クリック数にどう影響するか、どれを通すべきかを解説します。
1分で読了ai crawlers · gptbot · robots.txt - エンジニアリング
URLエンコーディングとは:エスケープすべき文字はどれか
URLエンコーディングは、文字をパーセント記号と2桁の16進数に置き換えることで、URLの構文として読まれないようにする仕組みです。どの文字が対象になるのか、そしてどこで壊れるのかを解説します。
1分で読了url encoding · percent encoding · encodeuricomponent - エンジニアリング
リダイレクトループとは:ERR_TOO_MANY_REDIRECTSの見つけ方と直し方
リダイレクトループは、ブラウザが2つのURLの間を行き来し続け、やがて諦めてしまう現象だ。1つのコマンドでリダイレクトチェーンを追跡し、食い違っているルールを特定して、根本的に修正しよう。
1分で読了redirect loop · err_too_many_redirects · too many redirects - エンジニアリング
URL短縮CLI: ターミナルからリンクを短縮する
curlとjqでコマンドラインからURLを短縮し、シェル関数でラップしてクリップボードにコピーし、xargsでファイル全体を並列処理する方法を解説します。
1分で読了url shortener cli · shorten url command line · curl url shortener - エンジニアリング
Net::HTTP と Faraday を使って Ruby で URL を短縮する方法
gem なしで Net::HTTP を使って Ruby の URL を短縮し、タイムアウト、リトライ、べき等性を追加する方法と、Rails アプリで処理全体を Faraday に任せる方法を解説します。
2分で読了how to shorten a url in ruby · ruby url shortener · shorten url ruby net http - エンジニアリング
Invoke-RestMethodでPowerShellのURLを短縮する方法
1つのコマンドレットでPowerShellのURLを短縮し、429エラーに対処し、APIキーをスクリプトの外に置き、ForEach-Object -ParallelでCSV列全体を短縮する方法を解説します。
1分で読了how to shorten a url in powershell · powershell url shortener · invoke-restmethod post json - エンジニアリング
curl、Guzzle、WordPressを使ってPHPでURLを短縮する方法
短いcurlブロック、GuzzleまたはLaravelでの同じ呼び出し、wp_remote_postを使ったWordPress版に加え、リトライと一括短縮を紹介します。
2分で読了how to shorten a url in php · php url shortener · shorten url php curl - エンジニアリング
fetch と Node を使って JavaScript で URL を短縮する方法
fetch を1回呼び出して JavaScript で URL を短縮し、タイムアウト、リトライ、べき等性を追加する方法と、ブラウザーにキーを保持させてはいけない理由を解説します。
3分で読了how to shorten a url in javascript · url shortener node js · shorten url javascript fetch - エンジニアリング
組み込み HttpClient で Java の URL を短縮する方法
依存関係なしで java.net.http を使って URL を短縮し、タイムアウト、Idempotency-Key を使ったリトライ、仮想スレッドでの一括短縮を追加する方法。
2分で読了how to shorten a url in java · java url shortener api · java httpclient post json - エンジニアリング
Goでnet/httpとerrgroupを使ってURLを短縮する方法
net/httpとJSONボディでGoのURLを短縮し、contextの期限、Idempotency-Key付きのリトライ、errgroupによる上限付き一括短縮を追加します。
2分で読了how to shorten a url in go · golang url shortener api · shorten url go net/http - エンジニアリング
ExcelでURLを短縮する方法:使える4つの手段
ExcelのWEBSERVICE関数はPOSTを送信できないため、リンクの短縮にはOffice Scripts、Power Automate、または一括インポートが必要です。シートの実行頻度に合う手段を解説します。
1分で読了how to shorten urls in excel · excel url shortener · webservice function excel - エンジニアリング
HttpClientと.NETを使ってC#でURLを短縮する方法
PostAsJsonAsyncでURLを短縮し、IHttpClientFactory、レジリエンスハンドラー、Idempotency-Key、Parallelを使った上限付き一括短縮を組み込む方法。
1分で読了how to shorten a url in c# · c# url shortener api · httpclient postasjsonasync - エンジニアリング
短縮リンクがSlackやTeamsでブロックされる理由
短縮リンクがSlackやTeamsでブロックされるのは、共有シャートナードメインがSafe Linksのようなセキュリティチェックに引っかかるからだ。なぜ起きるのか、そしてブランドドメインによる解決策を解説する。
1分で読了short links blocked in slack · bitly links blocked · microsoft teams safe links - エンジニアリング
エージェント型コマース:AIエージェントが使うために作られたリンク
エージェント型コマースでは、人間ではなくAIエージェントがリンクをたどり購入する。それを乗り切るために、リンクが安定していて機械的に解決可能で、サーバーサイドで計測されていなければならない理由。
1分で読了agentic commerce · agentic ai checkout · links for ai agents - エンジニアリング
Pythonでrequestsライブラリを使ってURLを短縮する方法
requestsを使えば、数行のコードでPythonからURLを短縮できます。短縮サービスのAPIにPOSTして短縮リンクを受け取る基本から、リトライ、冪等性(Idempotency)、一括処理、非同期処理まで解説します。
2分で読了how to shorten a url in python · python url shortener · shorten url python requests - エンジニアリング
GA4のAI Assistantチャネル:何を追跡し、何を見逃すのか
GA4の新しいAI AssistantチャネルはChatGPT、Gemini、Copilotのトラフィックを切り分ける。ただしPerplexityは対象外で、遡って適用もされない。追跡範囲と抜け穴を解説する。
1分で読了ga4 ai assistant channel · ga4 ai traffic · track chatgpt traffic ga4 - エンジニアリング
FirefoxとBraveがUTMアトリビューションを壊している
FirefoxはUTMパラメータを削除し、Braveはそれを読み取るスクリプトをブロックする。ブラウザのプライバシー機能が静かにアトリビューションを壊している。その理由と、短縮リンクが生き残る仕組みを解説する。
1分で読了firefox strip utm parameters · browsers strip utm · brave utm tracking - エンジニアリング
開発者向けBitly API代替: チェックすべきポイント
開発者向けのBitly API代替について解説。Bitlyのレート制限とプラン別機能制限がどこで問題になるか、開発者ファーストの短縮サービスAPIが本来提供すべきものは何かを紹介します。
1分で読了bitly api alternative · bitly api · url shortener api - エンジニアリング
無料URL短縮API: 実際に動くコード例
curl、JavaScript、Python、Goで実行可能な無料URL短縮APIのコード例。加えて正直な部分、つまり無料枠が制限するものと本番運用に必要なものも解説。
2分で読了free url shortener api · url shortener api · shorten url api - エンジニアリング
オープンリダイレクトの脆弱性とその防ぎ方
オープンリダイレクトは攻撃者が信頼されたリンクを悪意あるサイトへねじ曲げることを許す。バグの仕組み、フィッシングを支える理由、それを断つサーバー側の修正法を解説。
1分で読了open redirect vulnerability · open redirect · unvalidated redirect - エンジニアリング
URL短縮サービスの構築方法: アーキテクチャとコード
本番環境に耐えうる URL 短縮サービスの構築方法: ショートコード生成、リダイレクトパス、キャッシュ、クリック追跡、不正利用対策、および運用上の考慮事項を解説します。
2分で読了build a url shortener · url shortener system design · short code generation - エンジニアリング
URL リダイレクトの種類: 301、302、307、308 など
あらゆる URL リダイレクトの種類を解説します - 301、302、303、307、308、meta refresh、JavaScript - それぞれの動作、SEO への影響、使い分けの方法。
2分で読了types of redirects · url redirect types · 301 redirect - エンジニアリング
301 vs 302 リダイレクト: ショートリンクにはどちらを使うべきか
301 は恒久的なリダイレクトでランキングシグナルを渡す。302 は一時的で通常は渡さない。ショートリンク・SEO・キャッシュへの影響を解説。
1分で読了301 vs 302 redirect · 301 redirect · 302 redirect - エンジニアリング
URL短縮API: レート制限、リトライ、冪等性
URL短縮APIを本番環境で呼び出す方法。トークンバケット方式のレート制限、バックオフ付きリトライが必要なステータスコード、重複を防ぐ冪等性キーを解説。
1分で読了url shortener api rate limits · api idempotency key · retry with exponential backoff - エンジニアリング
URL短縮ツールはSEOに悪影響を与えるか?重要なメカニズムを解説
URL短縮ツールはSEOに悪影響を与えるか?信頼できるサービスを使えば問題ない。Googleはリダイレクトを通じてランキングシグナルを伝達する。順位を下げる4つのケースとその回避策を解説。
1分で読了do url shorteners hurt seo · are short links bad for seo · 301 vs 302 redirect seo - エンジニアリング
Sentry と Datadog による短縮リンクの監視: どちらが何を担当するか
Sentry と Datadog による短縮リンク監視について解説します。どの Elido イベントが Sentry の issue になるか、Datadog が何を受け取るか、そしてリダイレクトのレイテンシを自分で監視する方法を紹介します。
2分で読了short link monitoring · sentry url monitoring · datadog short link metrics - エンジニアリング
URLショートナーの仕組み:メカニズムの解説
URLショートナーはどのように動くのか?スラッグから転送先へのマッピングを保存し、クリックのたびにキーを検索してHTTPリダイレクトを返す。そのメカニズムを端から端まで解説します
1分で読了how do url shorteners work · url shortener mechanics · 301 vs 302 redirect - エンジニアリング
TinyURL移行の実装:Pro/Bulk REST、無料プランは非対応
Elido向けワンクリックTinyURL Pro/Bulkインポートの実装背景。公開TinyURLにAPIがない理由、aliasとslugという用語の違い、そして意図的に設けた制限について。
1分で読了tinyurl migration · url shortener · go worker - エンジニアリング
Short.io移行のリリース:ドメインごとのページネーション(1ページあたり150件)
Elido向けのワンクリックShort.ioインポート機能をいかに構築したか。ドメインごとのページネーションモデル、非公開リンク無効化ルール、そして5つの移行ソースの中で最も高速な移行を実現した経緯について解説します。
1分で読了short.io migration · url shortener · go worker - エンジニアリング
Rebrandly移行機能のリリース:ページあたり25件のページネーションと30分という予算
Elido向けのワンクリックRebrandlyインポート機能をいかにして構築したか-低速なページサイズ、ワークスペースフィルタのUX、そして意図的に移行しない対象について。
1分で読了rebrandly migration · url shortener · go worker - エンジニアリング
Dub.co移行機能のリリース:フォルダからタグへのフラット化
ElidoへのワンクリックDub.coインポート機能の構築について-5つの移行元の中で最もクリーンなAPI、フォルダからタグへのフラット化、そしてEUでのデータレジデンシーを重視するチームにとっての移行のメリットを解説します。
1分で読了dub.co migration · url shortener · go worker - エンジニアリング
RedpandaによるFire-and-forget方式のクリック・インジェスチョン
エッジPOPがリダイレクトをブロックせずにクリック・イベントを送信する方法、click-ingesterワーカーがClickHouseへバッチ処理を行う仕組み、そして低レイテンシ実現のために何をトレードオフにしたか。
1分で読了fire and forget click ingestion · redpanda click events · clickhouse batch insert - エンジニアリング
エッジPOPとDNSのみのルーティング: レイテンシーバジェットのトレードオフ
DNSベースのロードバランシングがp50で約50msを上限とする理由と、エニーキャストエッジPOPがそれ以下を実現する方法、そしてURL短縮サービスに適合するかを決める4つの数値を解説します。
2分で読了edge pop vs dns · anycast vs dns failover · edge routing latency - エンジニアリング
URLリダイレクトのキャッシュ戦略:L1 LRUとL2 Redis
URL短縮サービスのオリジンの前段に配置された2層キャッシュが、いかにしてp95リダイレクトレイテンシを15ms未満に維持しているかを解説します。エビクションポリシー、ワーミング戦略、そして18ヶ月の運用で実際に遭遇した失敗モードについて、エンジニアリングの観点から深く掘り下げます。
1分で読了url redirect cache · ristretto lru · redis cluster - コア記事エンジニアリング
Sentry/GlitchTipを12のGoサービスに接続する--ホットパスを壊さずに
ElidoがどのようにしてすべてのGoサービスに同じパニック + 5xx自動キャプチャを提供する共有sentryinitパッケージを実装したか--そしてedge-redirectのP95 15msバジェットでゼロアロケーションを維持する方法。
3分で読了sentry go middleware · glitchtip self-hosted · observability url shortener - エンジニアリング
クリックアナリティクスにClickHouseを使う理由(Postgresではなく)
ワークロードは月1億件以上のイベントで、書き込み重視の分析クエリ型。カラム型が有利な理由、採用しているスキーマ、そしてPostgresで90日後に直面した壁
1分で読了clickhouse click analytics · clickhouse for analytics · click event storage - コア記事エンジニアリング
FRA、ASH、SGP のリダイレクトで p95 < 15ms を達成する
Elido のエッジリダイレクトパスが3つのリージョンでキャッシュ HIT 時の15ms p95 バジェットを維持する方法 - アーキテクチャ、キャッシュ戦略、実際のリージョン計測値
4分で読了url shortener performance · edge redirect latency · multi-region url shortener - コア記事エンジニアリング
k3s上でElidoをセルフホストする - 完全なプレイブック
k3sクラスター上でElidoの完全なスタックをデプロイするためのステップバイステップガイド:Helmブートストラップ、14のサービス、StatefulSetsとしてのデータプレーン、Caddyオンデマンドとは、バックアップ、およびアップグレード戦略。
4分で読了self hosted url shortener · k3s · kubernetes url shortener - コア記事エンジニアリング
短縮リンクをTerraformで管理する
URLショートナー分野で唯一のTerraformプロバイダー - terraform-provider-elidoをリリースしました。それが何をするか、リソースのライフサイクルがどのように機能するか、そしてその背後にあるエンジニアリングのトレードオフについて説明します。
3分で読了terraform · infrastructure as code · url shortener - エンジニアリング
Bitlyの移行をリリースする:ワーカー、トークン、30分のバジェット
ElidoにワンクリックのBitlyインポートをどのようにビルドしたかについてのEngineering記録 - ワーカーの設計、コンフリクト解決のルール、インプロセスのgoroutineを安全に保つ4つの制限。
2分で読了bitly migration · url shortener · go worker