にゃみかんてっくろぐ

猫か百合を見守る壁になりたい

2020-01-01から1年間の記事一覧

2020 年を振り返る

以前、はじめて転職活動をした際に「過去をしっかり振り返っておくことが大事」と言われたことがあり、実感として確かに大事だと感じた。 ということで 2020 年にやったことを整理しておく。 技術的なもの 仕事: SRE 寄り AtCoder 新規 Web サービス 既存サ…

システムコールトレーシング: 吸い込まれる標準入力を観察する

Linuxその2 Advent Calendar 2020 18 日目の記事です。 「スクリプト書いてたんですが、なぜか途中で止まるんです」と言われた。 止まっている様子(シンタックスハイライトが綺麗でないので画像で) 確かに yarn gen で止まっている。 yarn start も date …

同じドメインに A レコードが複数あるときのクライアントの挙動 (Chrome, Safari, curl)

おことわり: TCP/IP スタックの設定値などを深追いしておらず、「こう動いたが、根拠は調べていない」というレベルのものです。 いきなりまとめ Google Chrome (Windows 10, macOS Mojave), curl (WSL2 Ubuntu, macOS Mojave) は、一定間隔 (21~75秒) で順…

「インデックスが作成されていないカラムを WHERE 句に書かない」コーディング規約と、暗黙的なコンテキスト

一部フィクションを含むポエムです。 XX システム SQL コーディング規約 性能劣化の可能性があるため、インデックスが作成されていないカラムを WHERE 句に書かないこと。 (インデックスの作成有無はテーブル定義書を参照) こうしたコーディング規約が あ…

Amazon ECS: curl コンテナを使ってタスク定義だけでモックサーバを設定する

3 行まとめ API のモック化ツール WireMock には、動的にスタブ/モックを定義できる Admin API がある ECS タスク定義に「 Admin API を叩く curl コンテナ」を加えて WireMock のスタブ/モック定義を行う タスク定義だけ完結するので楽 タスク定義だけでモ…

Traefik でお手軽に Docker コンテナの無停止 Blue/Green デプロイを実現した

3 行でまとめると: Traefik を使って Docker Compose だけで無停止デプロイを実現。 docker-compose.yml に定義するだけ、他の設定ファイルは不要のお手軽さ。 コンテナは graceful shutdown するようにしておく。

個人開発サービスのログをぜんぶ CloudWatch Logs にまとめた

3 行でまとめると ログを CloudWatch Logs に集約した Metric filter でエラー数をメトリクス化した CloudWatch Alarms ではなく Lambda でエラーを Slack 通知させるようにした CloudWatch Logs にログを集約した zenrei.nyamikan.net をすべて Docker 化し…

AWS CDK for .NET: C# で CloudWatch Metric Filter を設定する

「 .NET サポートあるじゃん」と思ったのでちょっと触ってみました。 手順とコード Getting Started With the AWS CDK - AWS Cloud Development Kit (AWS CDK) を参照して npm で AWS CDK をインストールする。 Working with the AWS CDK in C# - AWS Cloud …

ぜんぶ Docker コンテナにする (HTTPS+IPv6 対応 )

事例が何かの参考になればと思ったので記事にしました。 3行でまとめると Zenrei (zenrei.nyamikan.net) の Web サーバ・ API サーバ・ DB サーバすべてを Docker 化した SteveLTN/https-portal という Let's Encrypt の証明書取得を自動化した nginx のリバ…

CRCチェックつきでAM2320の温湿度を読み取る (Raspberry Pi + Python 3)

温湿度センサモジュール AM2320の温湿度を取得するサンプルコードは数あれど、CRCチェックまでやっているコードが見当たりません。 ということで、データシートを見つつ書きました。 import smbus import time i2c = smbus.SMBus(1) address = 0x5c # Step o…