下記の記事のように複数行に対する UPDATE は BEGIN の無い 1 文でもデッドロックすることがあります。 UPDATE1文だけでもデッドロックするという話 - tmtms のメモ これを見て思ったのですが INSERT であればバルクではない 1 行だけでもデッドロックするこ…
Terraform で本番やステージングなどの複数の環境を管理するとき、環境ごとに異なる変数を管理する方法について。 Terraform のバージョンは 0.14.8 で確認しています。 案 1. -var-file で tfvars ファイルを指定 Workspaces は tfstate を分けるためだけに…
ローカルとコンテナ内のボリュームを同期できる Mutagen というものを最近知ったので使ってみました。 類似のツールに docker-sync がありますが、docker-sync は ruby 製なのと、同期のために別途 Unison が必要なのに対して、Mutagen は Go 言語製で依存が…
だいぶ昔(4年くらい前)にセットアップして塩漬けになっていた Cacti で、グラフをズームして任意の開始日時・終了日時を指定して表示しようとしても、何故かその指定が効かず、常に Daily のグラフしか出せなくなることがありました。 普段は Prometheus/G…
以下で説明される通り、Gitlab では MR のコード差分画面で行ごとのコードカバレッジを可視化できます。 Test Coverage Visualization | GitLab この機能を利用するためには Cobertura 形式の XML をカバレッジレポートが必要です。PHP の場合 PHPUnit 9.4 …
PHPUnit のコードカバー率がマージリクエスト(MR)の前後でどのように変化したかの差分を MR の画面に表示するようにしてみたメモ。 .gitlab-ci.yml は次のような内容になります。phpunit でテストを実行するジョブと phpcov でコードカバレッジを計測する…
tmpfile の使い方の問題でぱっと見うまく動かないように見えて、でも実はうまく動くメモ。 問題のコード 要約すると次のような処理でした。 tmpfile で一時ファイルを作成 stream_get_meta_data でファイル名を得る そのファイル名に ZipArchive で書き込み …
クライアント認証のために EC2 インスタンス上で Let's Encrypt の証明書で https しているサーバがあり、CloudWatch Alarm でその証明書の有効期限の監視をしたかったのでそのメモ。 CLI で証明書の有効期限のチェック openssl s_client の -attime でエポ…
CentOS 8 が2021年末に終了し、それ以降も使うなら CentOS Stream に切り替える必要があるとのことなので、適当なサーバを CentOS 8 から CentOS Stream に切り替えてみました。 まずは元の CentOS 8 を最新に更新しておきます。セットアップ後にしばらく放…
CentOS 8 を virt-install でサクッと入れる - ngyukiの日記 のような Kickstart を使う方法はカスタマイズが柔軟ですが、その代わりやたら時間がかかります。 あり物のイメージを使って構築する方が手っ取り早いので、以下の2つのイメージで構築してその手…
TL;DR CentOS 7 なら /etc/environment の環境変数が渡る CentOS 8 で root でジョブを実行すると /etc/environment の環境変数は渡らない CentOS 8 で root 以外でジョブを実行すると /etc/environment の環境変数が渡る 理由 cron のジョブで /etc/environ…
だいぶ前に xhgui 使ったときは、アプリ側にも xhgui のソースを入れて xhgui/external/header.php みたいなファイルを auto_prepend_file とかに設定していたと思うのですが、最新版だとだいぶ変わっていました。 xhprof とりあえず tideways_xhprof 拡張 …
環境とか。 Terraform v0.13.4 + provider registry.terraform.io/hashicorp/aws v3.9.0 Terraform でデプロイ対象の AWS アカウントが MFA 必須だったので aws-vault を使う前提で provider aws にはクレデンシャルの指定なし、一方で tfstate のバックエン…
Linuxbrew(Homebrew) で入れた docker-compose で ModuleNotFoundError: No module named 'invoke' と言われたときにやること
環境 まあバージョンはあまり関係ないと思いますが。 Fedora 31 (WSL1) Homebrew 2.5.2 Python 3.8.5 docker-compose 1.27.3 問題発生 Homebrew、Macは手元にないので Linuxbrew ですけど、で入れた docker-compose で次のエラーがでました。 ModuleNotFound…
NodeJS や Golang で Web アプリを作るとき、サーバサイドのコードを変更したときはプロセスの再起動が必要です。毎回手でやるのはさすがに煩雑なのでファイルの更新を監視して自動的に再起動してくれる系のツールがいろいろあります。 NodeJS なら下記など…
VSCode の Marketplace で PHPUnit で検索して出てきた中からダウンロード数が多い 3 つの拡張を使ってみました。 なお、普段は↓のようなめんどくさい環境でコードを書いています。 Windows で PhpStorm を実行している PHP は WSL 上の docker-compse コマ…
NodeJS で Async hooks を使うトランザクションの実用的な実装 - ngyukiの日記 ですが、Twitter で AsyncLocalStorage なるものの存在を教えてもらいました。 いやこっちですね https://t.co/fyTHgKZQdq— anatoo (@anatoo) September 19, 2020 AsyncLocalSto…
前に書いた NodeJS で実験的な Async hooks を使って横断的なトランザクション をもう少し実用的な実装にしてみました。とは言っても NodeJS をプロダクション用に書くことが全くないのでホントに実用的になってるかどうかはわかりませんが。 // context.ts …
NodeJS で非奨励の Domain を使ってコンテキスト的なものを持ち回すことなく横断的なトランザクション というのをやってみましたが、よくよく見てみれば Async hooks でも同じことができそうでした。 Domain は Deprecated でしたが Async hooks は Experime…
AWS の請求アラートは昔は CloudWatch Alarm を使う必要がありましたが、最近なら AWS Budgets で簡単に設定できます。便利です。 がしかし、AWS Budgets はもっとも短いスパンでも月次の請求額なので、次のようなケースにはフィットしません。 検証用の AWS…
NodeJS(TypeScript) でデータベースに繋いでみます。NodeJS だと MongoDB とかのが多い気もするのですが MySQL 脳なので MySQL です。 接続に使用するパッケージは mysql2 が Promise 対応していて良さそう、と思ったのですが型定義が @types になくて types…
Fedora 31 on WSL1 NodeJS 14.4.0 VSCode 1.48.2 Remote WSL で VSCode を WSL 上で簡単に実行できるので、次のような Launch Configuration だけでリモートデバッグ出来ます。また、runtimeExecutable やら runtimeArgs やらで ts-node を使えば ts が直接…
ngyuki/php-dev - Docker Hub に自分用の PHP の Docker イメージを置いています。これを新しい PHP のバージョンがリリースされたときに自動ビルドするために試行錯誤したメモです。 Docker Hub の Repository Links で自動ビルド → ダメ 最近になってから…
とある社内用のツールで Silex を使っていたのですが、随分前に DEPRECATED になっている ので、Slim4 にリプレースしました。 Silex からの移行なら Symfony Flex では? という気もしますが特に深い理由はありません。もともと極小さいアプリでフレームワ…
おそらく素の php ファイルをドキュメントルートに置いて URL に拡張子 .php を含むアクセスを有効にするため、location で正規表現とか、try_files の最後で index.php とか、fastcgi_split_path_info とか、いろいろ難しいことがされている例を良く見るの…
sshfs と似たようなこともできる Rclone も使ってみました。 Rclone は ssh(sftp) だけでなく Amazon S3 とか Google Cloud Storage のようなクラウドのオブジェクトストレージとか、その他色々使えます。非常に高機能です。 scoop でサクッとインストールで…
SSHFS-Win が便利そうだった - ngyukiの日記 ですが、よく考えてみれば WSL2 なら fuse も動くだろうので WSL2 で sshfs でリモートホストをマウントして \\wsl$\Ubuntu-20.04\mnt\ore-no-server みたいな UNC パスでアクセスすればいいのでは、と思ったので…
Windows でも sshfs でリモートホストのディレクトリをマウントできるやつです。 billziss-gh / sshfs-win:WindowsのSSHFS Chocolatey で入れようと思ったのですが、すごく古い? あるいは別物? https://chocolatey.org/packages?q=sshfs https://chocolat…
Transit Gateway (TGW) を使ったことが無かったので、試しに使ってみました。残骸はこちら。 Direct Connect や VPN Connection では簡単には試せないので VPC と Transit Gateway Peering のみ試しています。 構成要素 TGW の構成要素について。 アタッチメ…
環境 CentOS 7.8.2003 amazon-cloudwatch-agent 1.246396.0 Ansible で amazon-cloudwatch-agent をプロビジョニングするために次のようにロールを書いていました。 ### tasks/main.yml - name: install cloudwatch-agent yum: name: https://s3.amazonaws.c…