ちゃんるいすのブログ

オタクエンジニアの雑記

覚書

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 よりも速いしリソー…

Nomad に載った API サーバーのログ監視を考える

これの続き blog.luispc.comログ監視、ここではアプリケーションのエラーログについて Slack に通知をする fluentd.conf ネストされた JSON を展開する アプリのログ以外は無視したい Elasticsearch に送りながら Slack に送る 確認 Tips ロガー Gin を Grac…

Nomad で fluentd を使ってアプリログを Elasticsearch に投げる

新年1発目 アプリケーションのログを標準エラーに出力する zap がパフォーマンスが良いという意見だけで zap にした。結果、こんなのが標準エラーに出力されるようにした。 { "level":"error", "ts":1577969526.688373, "caller":"lib/logger.go:29", "msg"…

WordPress を運用している皆様は静的ファイル配信をしてますか?

TL;DR 静的配信 WordPres は重い セキュリティ対策 wp2static wp2static を使ったワークフロー デメリット WordPress 本体の話 WordPress からはてなに移動したのに 仕事で WordPress を扱うとは思ってもいなかった。 TL;DR 静的配信をしよう 静的配信 なん…

お金が無い人のためのプライベートコンテナレジストリのご紹介

お金あります?僕はありません。 良い感じのコンテナレジストリが欲しいですか?ありますよ。Dockerhub は無料だとプライベートは1つしか持てないけど無制限に作れるやつがあるんです。GitLab の中にあるんですが。 https://docs.gitlab.com/ee/user/packag…

Nomad に Drone を展開する

drone のどっかのバージョンから server と runner が別イメージになった。 job "drone" { datacenters = ["luis"] type = "service" update { max_parallel = 1 min_healthy_time = "10s" healthy_deadline = "3m" progress_deadline = "10m" auto_revert =…

Nomad と Drone で贈る CI/CD 環境

今の所順調です。 blog.luispc.comあとは CI/CD を作るわけで、ワイの自宅には Drone が動いているので Drone を使って Nomad へデプロイをする。 github.com .drone.yml kind: pipeline name: default platform: arch: amd64 steps: - name: build docker i…

オンプレでやる Nomad + Consul + Traefik が本当に顧客が求めていたコンテナオーケストレーションでした

前回こんな記事を書いた後に、コンテナオーケストレーションを導入した。 blog.luispc.com 今までの構成はイケてなかった オンプレに k8s の環境はしんどかった マネージド k8s k8s に拘るのをやめた Nomad + Consul の構築は簡単だった Nomad + Consul 構築…

dnf install の --nobest オプション

CentOS 8 を最近触るようになった。 dnf install --nobest 例えば、依存関係でパッケージが入れることができなかった場合 [root@nomad01 ~]# dnf install docker-ce Last metadata expiration check: 0:03:38 ago on Thu Dec 5 21:34:46 2019. Error: Proble…

個人サービスを作る人は電気通信事業届けとか、特定商取引とか気にかけてる?

個人開発 Advent Calendar 2019 5日目です。 qiita.com個人開発をやる上でやらないといけないこととを紹介してみようと思います。 Easy Uploader easyuploader.app僕が作ってるサービスです。 普通のアップローダーです。他のアップローダーと差別しているの…

Go で作る Ansible モジュール

Ansible Advent Calendar 2019 2日目ーーー qiita.com1日目は sky_jokerxx さんのこちらの記事でした。 sky-joker.tech2018 の Ansible Advent Calendar ではこんな記事を書いていた。 blog.luispc.com モジュールを作った経緯 Go で Ansible モジュール作る…