るいすのブログ

オタクエンジニアの雑記

覚書

EC2 の本番環境以外を ARM に切り替えたら幸せなことしかありませんでした

この記事の下書きです。誤字、間違いが多いので ↓ を見たほうが良いです。 developers.cyberagent.co.jp

容量もファイル数が多い時にもっとも高速に別ディレクトリ(サーバー)にコピーする方法

TL;DR 脳死で xfsdump(dump) + nc(Netcat) 一択。昔こんな記事で pigz + nc は速いって書いたけど xfsdump(dump) 使ったほうが速いんじゃないかと思ったので雑に比較してみた。 blog.luispc.com 環境 ファイルサイズ別で2パターン 632GB / 29450 ファイル 2…

rollbar を Go に導入してエラー監視をする

rollbar めちゃくちゃ便利です。安いし。 rollbar.com main.go rollbar.SetToken("") rollbar.SetEnvironment(os.Getenv("SERVER_ENV")) rollbar.SetCodeVersion("v2") rollbar.SetServerHost(hostName) rollbar.SetServerRoot("github.com/rluisr/easyuploa…

rollbar と Vue.js で SourceMap を使ってエラー内容を確認する

rollbar めちゃくちゃ便利です。安いし。 rollbar.comVue.js で構築された Web アプリケーションのエラー内容を確認するときに SourceMap が有効になっていないと追っかけることが難しいので SourceMap を有効にする。必要な箇所だけ webpack.base.config.js…

アラートを一時的に無効にしたまま月日が経ちヒヤリハットしたことはないだろうか mfool というツールを作ってみた Mackerel 編

障害とかで一時的にアラートをミュートにしたら、戻すのを忘れてヒヤリハットしたことはないだろうか。 僕はあります。github.comこいつを使えば、 working ステートになっていないホスト ミュートしているモニター を Slack で教えてくれる。Mackerel のモ…

Firebase hosting で超簡単に障害時に自動でメンテナンスに振る

TL;DR メンテナンス情報を Firebase Cloud Fire Store から取得する uptimerobot の Webhook を使う Firebase functions で uptimerobot からの webhook を受け取る Firebase functions で Firebase Cloud Fire Store を書き換える TL;DR Firebase Cloud Fir…

InnoDB Cluster が Split-Brain で死んだ時

MySQL db03:33060+ ssl JS > c.status() { "clusterName": "main", "defaultReplicaSet": { "name": "default", "primary": "db03.luis.local:3306", "ssl": "REQUIRED", "status": "NO_QUORUM", "statusText": "Cluster has no quorum as visible from 'db0…

RDS Proxy を使うとパフォーマンスは悪くなる

前回の続き blog.luispc.com 目的 RDS Proxy 良いじゃん と前回記事を書いたけど、パフォーマンスは落ちると思ったので どれぐらい落ちるかを超簡単にベンチマークをする。 HammerDB hammerdb.comHammerDB の使い方は atsuizo さんのを参考にしました。 atsu…

RDS Proxy を使うとフェイルオーバー時のコネクションプーリング問題が良い感じになるのでは?

目的 環境 やり方 コード RDS Proxy を”使わない"場合 RDS Proxy を”使った"場合 もっとクエリ数を増やす RDS Proxy を”使わない”場合 RDS Proxy を"使う”場合 まとめ 目的 フェイルオーバー時のエラーレートを下げたいRDS Proxy の公式ドキュメントに書かれ…

MySQL EXPLAIN の結果は良い感じなのに、何故か遅いクエリの原因を調べる

1回目は7秒かかるクエリが、2回目は速い。 実行計画を見ても、Slow Query を見てもインデックスは使われてそうなイキフンを感じる。 前置き クエリ テーブル EXPLAIN Slow Query 調べる Performance Schema file_summary_by_instance MySQL 5.7 で EXPLAI…

Pulumi を使えば Infrastructure as Code の本来の目的が果たせると思う

IaC は DevOps の中で重要な立ち位置に居て、インフラ専門部隊だけではなく、バックエンドの開発者も柔軟に構成が変更できるためには 今までの Terraform や Ansible では敷居が高かった(ツール独自のループの書き方とか色々)。だけど Pulumi や aws cdk …

俺的監視ベストプラクティス

入門監視を読んで、社内のドキュメントに書いたものをブログにも書く。 今回のは VM を対象。 監視俺的ベストプラクティス(VM編) 前提 warning と critical の使い分け ❌ warning を @here で通知する ❌メールで通知受ける CPU 使用率と、ディスク容量につ…

SPA は SSR を使わなくても Google 検索で1位取れる

巷では SPA ( not SSR ) は SEO に不利とか、SEO 専門の人がそう言ってたりする。 Google で「SPA SEO」とかで検索すると、トップページはできるだけ SSR にしたほうがいい とか見られる。けど現に SPA ( not SSR ) で作った Webサービスは2つのキーワード…

まだ S3 + CloudFront で消耗してるの?Cloudflare + Backblaze の方が安いよ

Web サービスを提供してたり、アセットの配布で S3 + CloudFront を使ってる人は多いと思います。 が、この度 Backblaze が S3 Compatible API をリリースしたので Cloudflare と組み合わせればマイグレーションのコストを少なく(AWS SDK も使えるし、AWS C…

AWS EC2 m6g, c6g, r6g は本当に速くなったのか

m系だけで比較 UnixBenchAMI m6g.large: amzn2-ami-hvm-2.0.20200406.0-arm64-gp2 m5.large: amzn2-ami-hvm-2.0.20200406.0-x86_64-gp2 # yum update -y # yum groupinstall '@Development Tools' # wget https://github.com/kdlucas/byte-unixbench/archive…

Proxmox でカスタムなテンプレートを作る

LXC を作る 色々入れる シャットダウンする ネットワークの設定を消す バックアップ(GZIP) dump/vzdump-hoge.tar.xz を template/cache に移動する

InnoDB Cluster のアップグレードをやる

8.0.19 -> 8.0.20 1. MySQL Shell を最新にする 2. MySQL Router を最新にする 3. メタデータを最新にする MySQL db01:33060+ ssl JS > dba.upgradeMetadata() NOTE: Installed metadata at 'db02.luis.local:3306' is up to date (version 2.0.0). Metadata…

CircleCI で GitHub のラベルを見て自動でタグをプッシュする

流れ 1. PR を作る、ラベルで major, minor, patch のいずれをつける 2. master へマージする。 3. CircleCI がラベルを見て新しいタグをプッシュする CircleCI GHE 環境なのでところどころ読み直してください。 雰囲気で伝わってほしい。 push_tag: <

Private Link + ECR を試す

概要 検証環境 Fargate ECR S3 VPC エンドポイントの作成 ECR へのエンドポイント S3 へのエンドポイント CWL へのエンドポイント ECR エンドポイントの SG 動作確認 確認 概要 従来は ECR からコンテナイメージを取得するために、IGW、NATGW を使用していた…

MySQL innodb_buffer_pool_instances を調整したら幸せになれました

1 分間に約 23万クエリ流れる DB が全部で 4台な環境がある。 innodb_buffer_pool_size はだいたい 70 GB セマフォ innodb_buffer_pool_instances を調整することで、mutex への競合が減りパフォーマンスが向上する。 innodb_buffer_pool_instances = 1 OS W…

ECS と distroless イメージの組み合わせは悲しい

最近見るプロジェクトが増えました。ECS コンテナのヘルスチェックにいつもどおり何かを書く CMD,curl,localhostしかし、永遠に UNKNOWN になる。使ってるイメージを持ってきてローカルで確認してみる。 $ luis@ubuntu ~ $ docker run --name test -it --rm …

Stripe Checkout をローカルの Vue で動作確認する

Stripe Checkout のホワイトリストドメインリストに localhost は使えない。Stripe Checkout を動作させるには https ドメインに localhost は使えない hosts を書き換える 127.0.0.1 hoge.com Vue.js のホスト名チェックを切る devServer: { disableHostChe…

コンテナで動かしてる MySQL で innodb_dedicated_server = 1 にしたらどんどん死んでいった話

ある日 InnoDB Cluster をコンテナ上で動かしてたがメモリを期待していた以上に消費していたので調べていた。その時は innodb_dedicated_server を 1 にしてた。 innodb_dedicated_server ソースを覗いてみる buffer_pool_size が決まるところ メモリサイズ…

GTID で errant transaction に悩んだら

TL;DR flush slow logs のタイミングでバイナリログに書き込まれる それによって GTID がズレる = errant transaction このスクリプトを mackerel-agent で定期実行することで解決 事象 あるタイミングでスレーブの GTID が進んで errant gtid が起きる。 f…

Orchestrator を Mackerel と組み合わせて幸せを掴むスクリプト

なにしてるの errant transaction の検知 errant transaction の修正 can-replicate-from-gtid を叩く Mackerel で使う なにしてるの errant transaction の検知 errant transaction の修正 can-replicate-from-gtid を叩く errant transaction の検知 funct…

CentOS 8 で mysql-community-server 8.0.19 を入れる

dnf め... mysql repo を入れる # dnf install https://dev.mysql.com/get/mysql80-community-release-el8-1.noarch.rpm -y mysql-community-server を探す # dnf list | grep mysql-community-server mysql-community-server-debug.x86_64 8.0.19-1.el8 mys…

snmp_exporter の generator で Edge Router のメトリクスを取る

これを使う grafana.com generator.yml ↑ の generator.yml は古い書き方で現在の generator では使えない。 こうする ↓ modules: edgemax: walk: - ifHCInOctets - ifHCOutOctets - ssCpuIdle - memTotalFree - memTotalReal - hrSystemUptime lookups: - s…

Terrfarom じゃなくても Ansible でもできるよ!S3編

今回は S3 簡単なやつ使うモジュール s3_bucket s3_lifecycle バケットの作成 - name: Create a bucket s3_bucket: name: "{{ project }}-dbbackup" state: present region: ap-northeast-1 ライフサイクルの追加 - name: Add a lifecycle s3_lifecycle: nam…

なんでみんな Cloudflare を使わないの?無料で使える Cloudflare の機能をご紹介!

よくあるアフィ記事のタイトル風 Cloudflare 無料で色んなことできるのに周りで使っている人が少ないから布教してみる。 Cloudflare Cloudflare の日本でのシェア Cloudflare の企業ミッション 無料で使える (無料)証明書の用意なんてしなくても HTTPS が…

xtrabackup と xbcloud 使えばクラウドストレージに投げるのが楽だし速いし良いことばかり

xbcloud xbcloud を使う理由 50GB を超えれない xbcloud はインストールが手軽 フルバックアップ リストア デメリット xbcloud www.percona.comxtrabackup (innobackupex) と S3 (minio) とか GCS と組み合わせるときに、公式純正の CLI よりも速いしリソー…