コンテンツ・デリバリ・ネットワークの略で、ウェブコンテンツの配信を最適化するネットワークの仕組み。複数のウェブサーバーを分散配置し、目的のウェブサイトを場合により一時保存、利用する各ユーザーを適切に振り分けることで、利用者にとってはコンテンツの高速化および安定化、運営者にとってはサーバーの負荷の分散をもたらす。
動画などのメディア配信、また非常に多数の訪問者を抱えているなど、大規模、大容量のアクセスがあるサイトで採用される。
「DDoSはもう解決できない」と思っていたあなたへ正直なところ、私はDDoS攻撃は解決できない“厄介な問題”だと思っていました。 なにしろ、個人でも簡単に実行できるし、年々その手口は巧妙になっています。 かつてのDDoS攻撃は、どこが狙われているのか比較的明確なものが多かったのですが、最近では“攻撃対象を特定することすら難しい”ケースも増えてきました。 そして怖いのは、インターネット上で公開しているすべてのサービスが攻撃の対象になる可能性があるという点です。 そもそもDDoS攻撃とは? DDoS(分散型サービス妨害)攻撃とは、複数のコンピュータやデバイスから一斉に大量の通信を送りつけ、特定のサ…
これはフェンリル デザインとテクノロジー Advent Calendar2024 23日目の記事です。 こんにちは!NILTOチームでインフラエンジニアをしている太田です。 先月、NILTOの開発の中で、FastlyというCDN1を導入しました。Fastlyでは、エッジサーバー2で動くプログラムをRustというプログラミング言語で書くことができます。 個人的にも(そして、おそらく会社的にも)初めてRustを業務で利用した事例ですので、少しでもその経験をアウトプットしておきたいと考え、今回の記事のテーマとしました。…とはいうものの、趣味で個人的にRustを書いていたこともあり、それを業務で活かせ…
昨日は義父の法要で、横浜にある霊園で親族で集まりました。そのあと、親族で新横浜プリンスホテルにある「トップ オブ ヨコハマ 鉄板焼&ダイニング」にて、ステーキランチを堪能しました(とても美味しい!と思いました)。レストランのある41階の窓から視界を遮るものはなにもありません。席からは遠く港まで眺めることができました。ホテルは円柱で、レストランもぐるっと回りを囲む構造です。席によって眺望は異なります。新横浜プリンスホテルが開業したのは1992年です。それまでここは人がいない街でした。同じく新横浜にある多目的ホール「横浜アリーナ」は、プリンスホテルよりも少し前の1989年に出オープンしてます。わた…
3行まとめ CloudRunはX-Forwarded-Forを上書きしてクライアントのIPアドレスにしてしまう User - CDN - CloudRun としている場合、X-Forwarded-Forの値はCDNのIPアドレスになってしまう 解決策はCDN独自のヘッダーを付与してアプリケーション側で読むしか方法がなさそう X-Forwarded-For X-Forwarded-For というヘッダーがあります。多分MDNを見るのが一番早いですが、色々なプロキシを通ってオリジンに到達するようなサーバー構成のときにクライアントのIPアドレスをうまく伝えるようなヘッダーです。 developer.…
この記事は、弁護士ドットコム株式会社の Advent Calendar 2023 の 21 日目の記事です。 皆さん、こんにちは!弁護士ドットコム SRE 室の @et_tei です。国籍は中国で、今年は来日13年目です。今回は FireHOL で公開されているブラックリストからの接続 Akamai でブロックする方法をご紹介します。 背景 Akamai API Client の発行と Akamai NetworkList の作成 API Client の発行 Akamai NetworkList の作成 Lambda 関数の準備 ソースコードの準備 EdgeGrid の準備 Lambda 関…
Cloud Run には セッション アフィニティ という機能があります。説明には 同じクライアントからのリクエストを可能な限り同じコンテナ インスタンスにルーティング。 とあるように、Cloud Runで複数のインスタンスが立ち上がっている状態でも可能な限り同一のインスタンスにアクセスされるようになる設定です。 cloud.google.com この仕組みは簡単で、GAESAという名前のCookieを初回アクセス時に付与してこの値を見てインスタンスを振り分けているようです。 実際に自分の公開しているAPIで試してみた しかし、FastlyなどのCDNなどを噛まして配信している場合はどうなるか…
Fastly はVarnish上に構築されているCDNです。 そのため、VCLを自由に書くことができます。これを使用することで CDN - Orign 間通信にBasic認証を追加することも可能です。 TL;DR FastlyのVCL snippets 設定で以下をvcl_missとvcl_passに追加します。値はuser:passwordをBase64でエンコードする必要があるので気をつけてください。 set bereq.http.Authorization = "Basic hogehoge"; オリジンは、対象のパスに対してBasic認証を追加します。 詳しく Varnish には B…
DOM操作を含めたJavaSprictの基礎を学んだところで、jQueryの学習に入っていきましょう! ■jQueryとは?■ jQueryを使うための準備 jQueryを書く時のルール セレクタ(HTML要素)の指定方法【jQuery("セレクタ")】 メソッド("パラメータ") 繰り返し処理【.each(function)】 複数のセレクタを指定する まとめてセレクタを使用 子要素や孫要素などの条件を追加して指定 メソッドを使った要素の指定【Tree Traversal】 ワンポイント jQuery(function(){})について jQueryの省略 ■jQueryとは?■ JavaS…
Important 追記 2023/10/25 ミドルウェアを使用している際にX-Middleware-Prefetchヘッダを付与して送信すると{}がキャッシュされることで攻撃者は容易にキャッシュを{}にすることができるためこちらの問題にCVEが付きました。 13.4.20-canary.13で修正されているのでアップデートすることで解決するかと思います。 github.com 3行まとめ Next.js 13からMiddlewareを使用しているとgetStaticProps以外を使っていてもprefetchを行うようになった。 Add middleware prefetching con…
JavaScript でプログラムを開発して意気揚々とGitHubで公開し、せっかくだから はてなブログの記事に実装してしまおう! となったところで、さて、記事にコードを埋め込むのはメンテナンス性を損なってしまいます。 GitHub は Raw コードを参照できるページを提供していますが、 CORS の問題があって他サイトでは利用できません。何かいい方法はないでしょうか。 そこで jsDeliver です。 GitHub のページの URL をペーストしたら CDN の URL にして返してくれるツールがあります。このブログの中で動作を確認しています。 はてなブログなら記事に埋め込むこともでき…