コンテンツ・デリバリ・ネットワークの略で、ウェブコンテンツの配信を最適化するネットワークの仕組み。複数のウェブサーバーを分散配置し、目的のウェブサイトを場合により一時保存、利用する各ユーザーを適切に振り分けることで、利用者にとってはコンテンツの高速化および安定化、運営者にとってはサーバーの負荷の分散をもたらす。
動画などのメディア配信、また非常に多数の訪問者を抱えているなど、大規模、大容量のアクセスがあるサイトで採用される。
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…
追記 2023/10/25 ミドルウェアを使用している際にX-Middleware-Prefetchヘッダを付与して送信すると{}がキャッシュされることで攻撃者は容易にキャッシュを{}にすることができるためこちらの問題にCVEが付きました。 13.4.20-canary.13で修正されているのでアップデートすることで解決するかと思います。 github.com 3行まとめ Next.js 13からMiddlewareを使用しているとgetStaticProps以外を使っていてもprefetchを行うようになった。 Add middleware prefetching configでgetSer…
JavaScript でプログラムを開発して意気揚々とGitHubで公開し、せっかくだから はてなブログの記事に実装してしまおう! となったところで、さて、記事にコードを埋め込むのはメンテナンス性を損なってしまいます。 GitHub は Raw コードを参照できるページを提供していますが、 CORS の問題があって他サイトでは利用できません。何かいい方法はないでしょうか。 そこで jsDeliver です。 GitHub のページの URL をペーストしたら CDN の URL にして返してくれるツールがあります。このブログの中で動作を確認しています。 はてなブログなら記事に埋め込むこともでき…
経緯 CDNとは 自分が見ている映像はどこからきているのか?verAkamai 自分が見ている映像はどこからきているのか?verCloud Front 合わせ技 トラフィックがいかに異常だったか おまけ:H.264コーデック 参考ツイート 経緯 2022年Wカップは日本がジャイアントキリングを達成して決勝トーナメントに進出。その1回戦は非常に注目されていたが、その中でも特に「本田の解説がおもしろい!」とAbemaTVでのインターネット中継放送が人気であった。 当日は約2000万人(延べ)がAbemaTVの放送を視聴していたようだ。 同時にこれだけの人数に映像を配信する仕組み(バックエンドとフロ…
こんにちは LOVOT の OS を作っているチームのひとり id:atotto です。 LOVOT の OS について、簡単ですがお話させていただきます。 LOVOTとNest(LOVOT ANATOMY より一部抜粋) 早速ですが、かわいらしい LOVOT には、x86系のCPU(メインコンピュータ)、そして、ARM系のCPU(サブコンピュータ)の2つが搭載されています。これだけでも OS の管理が難しいのですが、LOVOT の製品には Nest (巣: 充電ステーション)の x86系のCPU(エッジコンピュータ)もあり、合計 3つの独立した OS が存在しています。(詳しいspecはこち…
少しハマったので、忘れないように解決策を書いておく。 結論から言うと、cdnに使用しているリンクの中に、createApp関数が入っていないため、定義されていないというエラーが生じてしまっている。 そのため、 stackoverflow.com こちらに示してあるように、以下のリンクを読み込む必要がある。 要らないものまで読み込んでしまうので、全て読み込む必要はないが、 をvueのcdnの下に書き加えるとエラーが解消された。
初めまして。株式会社エス・エム・エスBPR推進部の新沼元樹(にいぬま もとき)です。 3月14日、15日の2日間に渡り開催されたアマゾンウェブサービスジャパン合同会社主催のワークショップAWS JumpStart 2024に参加してきました。 以下では、AWS JumpStart 2024の内容とその中で得た学びについて皆さんに共有していきたいと思います。 aws.amazon.com AWS JumpStart 2024に参加した理由 私はAWSを使い始めてまだ3か月程の初心者でした。日々の業務で分からないことがある時には近くのメンバーに聞いたり、AWS公式のドキュメントを参考にしてきました…
TTLの挙動は、これ見るのが一番早い christina04.hatenablog.com Cache-Control ヘッダについては、こちらを参照 techblog.lclco.com なんでこんなにややこしいの オリジン側の Cache-Control を尊重した上で、CDNではどう振る舞うのか? を考慮しているため……だと思う…… ものすごくざっくりした理解 s-max-age、max-age、Expires の順で優先される max-age などが、 MinTTL〜MaxTTLの範囲であれば、max-age が尊重される max-age が、MinTTL 以下ならば、MinTTL が…
こでは「どうやらボクの花嫁は女騎士団なようで。 WEBコミックガンマぷらす連載版 30巻」が読める電子書籍サイトをまとめています。スマホやタブレットで気軽に読みたい方は、参考にしてください。「異世界で孤児院を開いたけど、なぜか誰一人巣立とうとしない件 WEBコミックガンマぷらす連載版 49巻」の配信状況私が「異世界で孤児院を開いたけど、なぜか誰一人巣立とうとしない件 WEBコミックガンマぷらす連載版 49巻」の配信状況を調べたかぎり、2023/09/19時点では以下のサイトで読めるようになっていました。 無料作品配信状況リンクまんが王国10,000作品~100ポイント読む ちなみに、上記サイト…
textarea.myCode { width: calc(100% - 6px); background-color: black; color: white; } button.copied::after { content: "コピーしました。"; position: absolute; margin-left: 1rem; font-weight: bold; } function copy(button){ button.previousElementSibling.select(); document.execCommand("Copy"); button.classList.ad…
最初のGPT論文"Improving Language Understanding by Generative Pre-Training" の要約メモです。 はじめに Improving Language Understanding by Generative Pre-Training 概要 手法 結果 Natural Language Inferenceタスク Question answering / commonsense reasoningタスク Semantic Similarity / 分類タスク 分析 おわりに/所感 参考 はじめに 今回まとめる論文はこちら: Improving …
これは何ですか? abcjs を使うと、ブログ記事中で五線譜の表示や MIDI 再生をすることができます。 以前の記事: はてなブログで abc 記譜法を使用してみた - kit84 talks abc 記譜法をカスタマイズしていくよ - kit84 talks abc 記譜法で音を鳴らすよ - kit84 talks 終止 - kit84 talks こういった感じです: Q:108 [CEGc]4 [G,B,DFGB]4 | [CEGc]8 |] Q:108 [CEGc]4 [G,B,DFGB]4 | [CEGc]8 |] Q:108 [CEGc]4 [G,B,DFGB]4 | [CEGc…
連続でDNS関係の話ですが、最近少しDNSサーバも触り始めて、いろいろ設定値があるんだなぁと感心したのでここにまとめていきます。 とりあえず有名どころを押さえる Aレコード AAAAレコード MXレコード TXTレコード NSレコード SOAレコード PTRレコード 感想 とりあえず有名どころを押さえる CDNを提供しているcloudflareの記事があったのでそれを読むことにします。 www.cloudflare.com コピペ記事になるのも良くないので、自分なりに覚えやすい語呂合わせのようなものを作っていこうかなと思います。 Aレコード いわゆるIPアドレス(IPv4)が引けてくるもので、…
ブランチから1年以上をかけてようやくで NetBSD 10.0 リリース が出て、それとほぼ同時に pkgsrc-2024Q1 が出たものの、ここしばらくいろいろあってちょっと手を付けられていませんでしたが、 NetBSD/amd64,i386 10.0 ておくれLive Image 20240420版を作ってアップしました。 http://www.ceres.dti.ne.jp/tsutsui/netbsd/liveimage/ 更新内容は以下: 20240420版 NetBSD 10.0 Release 対応 兼 pkgsrc-2024Q1 更新バージョン pkgsrc-2024Q1 のツ…
window.onload = function () { let tes1 = document.getElementById("test1"); tes1.addEventListener("click",function(){ tes1.innerText = "タイトル" }) } window.onload = function () { let tes1 = document.getElementById("test1"); tes1.addEventListener("click",function(){ tes1.innerText = "タイトル" }) } タイマ割り込みを…
早くも第4弾となりました。rakuten_design="slide";rakuten_affiliateId="145f4de5.b873ef9a.145f4de6.552ea228";rakuten_items="ctsmatch";rakuten_genreId="0";rakuten_size="336x280";rakuten_target="_blank";rakuten_theme="gray";rakuten_border="off";rakuten_auto_mode="on";rakuten_genre_title="off";rakuten_recommend="on";…
湘南に遊びに行ったついでに、小田原城に行ってみました。4月15日で満開は過ぎていましたが、花はけっこう残っていて、散った花びらや葉桜が小田原城を背景になかなかいい眺めでした。 使用機器は、α7CR+ FE35mmF1.8 です。 https://cdn-ak.f.st-hatena.com/images/fotolife/b/bombo99/20240419/20240419224244_original.jpg https://cdn-ak.f.st-hatena.com/images/fotolife/b/bombo99/20240419/20240419224409_original.j…
昨日の投稿した『WebARでアクアリウム的な感じ』のコードを残しておきます 今のところ これだけが私のA-Frameの経験値なので <html> <head> <meta charset="utf-8" /> <meta name="viewport" content="initial-scale=1.0,user-scalable=no,maximum-scale=1,width=device-width" /> <script src="https://aframe.io/releases/1.5.0/aframe.min.js"></script> <script src="https:…
アウトバウンドが制限された環境でAzure Functionsの環境構築を実施する際、裏側でpipコマンドを実行した時に外部pypiのサーバなどに接続しようとして、エラーが発生してしまいます。 本記事ではこのエラーの回避策として、事前にローカル環境で環境構築を行いAzure Cloud Shellを使用してzipファイルをデプロイする、という方法を紹介します。 前提 検証環境 構成図 Azure リソース ネットワーク設定 VNET構成 Azure Functions ストレージアカウント デプロイ手順 ローカル環境でのzipファイル作成 Azure Functionsの事前設定 Azure …
kawamorinaoki.jp 大学始まってから二日目自転車乗りながら「死にてー」って言ってる https://www.ifsw.org/wp-content/uploads/ifsw-cdn/assets/ifsw_64633-3.pdf 人権と社会正義を擁護し支持することは、ソーシャルワークを動機づけ、正当化するものである。ソーシャルワーク専門職は、人権と集団的責任の共存が必要であることを認識する。集団的責任という考えは、一つには、人々がお互い同士、そして環境に対して責任をもつ限りにおいて、はじめて個人の権利が日常レベルで実現されるという現実、もう一つには、共同体の中で互恵的な関係を確立…
OBS Studioに関するメモを書いてる記事 ※「OBS Studioに関する個人的メモ」を移転しました。(現在は閲覧不可) 記事投稿日 2021年10月6日、最終投稿更新日 2024年04月18日 14時15分頃 文字数が凄く多いのでブラウザの検索機能をお使いください。 記事が見にくくて申し訳ありません。 (将来的に内容を細かく分けて記事にしたいと思っています。) ブラウザ検索ショートカット Windows : Ctrl + F macOS : Command + F この記事は下記環境を使用して作成しています。 ※Linux、特定のデバイスが無いと表示されないソースのことはメモしていませ…