ブックマーク / christina04.hatenablog.com (6)

  • 開発者ポータル Backstage とは - Carpe Diem

    背景 開発チームが抱えるよくある課題として システムが変化する一方でドキュメントは更新されず腐る メンバーの流入出によって口伝でかろうじて継承された知見も失われる 検索性が良くないと過去のドキュメントが気づかれず、同じような内容のドキュメントが新規量産される 後から参加したメンバーはどちらが正のドキュメントか分からず混乱する といったことが良くあります。 解決方法としては以下のように、GitHub&ルールベースで管理するといった例があります。 future-architect.github.io また組織・システムが大きくなってくると認知負荷を低減するためにドメインで区切るような形でチームの分割が始まりますが、 異なるチームによってシステムが管理され、システムの依存関係を全て知っている人がいなくなる CxOレイヤが大規模イベント前に現状を把握したいときに都度時間がかかってしまう チームごと

    開発者ポータル Backstage とは - Carpe Diem
    onigra
    onigra 2023/12/30
  • 様々なrate limitアルゴリズム - Carpe Diem

    概要 インターネットに晒されているWebサービスでは TV等で紹介されたことによる大量流入 悪意ある人物からの攻撃 クライアントのバグに依る大量リクエスト など、来想定していた以上のトラフィックが来ることはよくあります。 単純にシステムを構築すると大規模トラフィックに対応できずシステムがスローダウンしてしまうため、何かしらrate limitをかけておいた方が良いです。 ただしrate limitと一口に入っても色々あるため、今回は主なrate limitアルゴリズムを紹介します。 Leaky bucket Leaky bucketはデータ転送レートを一定にする(=上限を設定する)アルゴリズムです。 下の図のように、様々な流量の水流がそのバケツに流れ込んでも小さな穴からは一定の水流が流れ出す仕組みです。 ref: What is the difference between token

    様々なrate limitアルゴリズム - Carpe Diem
    onigra
    onigra 2019/11/11
  • remote_addrとかx-forwarded-forとかx-real-ipとか - Carpe Diem

    背景 ECSでNginxのコンテナをプロキシとして立てたところ、APIサーバのアクセスログのクライアントIPがNginxのコンテナIPになっていたのでその修正をしたのがきっかけです。 環境 Nginx 1.10.2 Docker1.12.1 構成 Client -> ELB -> Nginx -> API という構成とします。 ネットでよく見る情報 set_real_ip_from 172.31.0.0/16; real_ip_header X-Forwarded-For; を追加する、とか proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; を追加する、とかどれがどれだか分かりにくいので1つ1つ説明していきます。 用語説明 remote_

    remote_addrとかx-forwarded-forとかx-real-ipとか - Carpe Diem
    onigra
    onigra 2018/07/14
  • SPAを S3+CloudFront で表示する方法 - Carpe Diem

    概要 AngularなどのSPAをS3+CloudFrontで表示する方法についてです。 要件 SSL/TLSを使いたい https://example.com/hoge のようなサブディレクトリのようなパスで403にならないようにしたい ↑のようなパスでもOGPがきちんと表示される リロードしても404にならない S3バケットのファイルには直接アクセスできないようにしたい 以前のケースとの比較 過去に S3 + CloudFrontにした時にハマったこと - Carpe Diem Angularで作ったサイトでリロードすると404エラー - Carpe Diem で似たようなケースに対応しました。しかしこれらは先の要件である 3. ↑のようなパスでもOGPがきちんと表示される や 5. S3バケットのファイルには直接アクセスできないようにしたい を満たせていませんでした。今回はそちらを考

    SPAを S3+CloudFront で表示する方法 - Carpe Diem
    onigra
    onigra 2018/03/12
  • ブラウザのキャッシュ - Carpe Diem

    概要 Webフロントのパフォーマンス診断 - Carpe Diem で指摘されたブラウザキャッシュの対応をするため調べてみました。 大きく分けて強いキャッシュと弱いキャッシュの2種類のキャッシュがあります。 強いキャッシュ ブラウザ側でリソースを保持し、期限が切れるまでサーバにHTTPリクエストを発行しません。 なので一度ブラウザにキャッシュされるとサーバ側からハンドリングすることができなくなります。 これを設定する方法は Cache-Controlヘッダー Expiresヘッダー の2つがあります。 Cache-Control: max-age サーバからのレスポンスで以下のようにCache-Controlヘッダーを付けます。 Cache-Control: max-age=3600 このヘッダーが付いたリソースはブラウザ上では強いキャッシュとして残ります。 max-ageは秒数なので、こ

    ブラウザのキャッシュ - Carpe Diem
    onigra
    onigra 2017/06/25
  • Terraformでtarget指定の削除 - Carpe Diem

    概要 Terraformでインスタンスなどを削除する際、普段xxx.tfファイルの該当箇所削除してterraform applyで消してたんですが、あるとき消す順番の指定が必要になって「仕方ないから2回(消す順に)実行するかー」と思ってtarget指定したのですが、何故かterraform planで変更点が出ませんでしたのでメモ。 環境 Ubuntu 14.04 Terraform 0.6.3 通常 xxx.tfファイルで該当箇所を消す terraform plan terraform apply これは通常の消し方ですね。 target指定 terraform plan -destroy -target=xxxx terraform destroy -target=xxxx xxx.tfファイルで該当箇所を消す この場合順番が逆になります。変更点に出なかった原因はxxx.tfで該当箇所

    Terraformでtarget指定の削除 - Carpe Diem
    onigra
    onigra 2016/11/04
  • 1