とある事情で AWS で Oracle Linux 8 を使ってみることになったのでそのメモ。 AMI AMI は所有者を 131827586825 で検索するとずらずら出てきます。 参考:https://community.oracle.com/tech/apps-infra/discussion/4417739/launch-an-oracle-linux-instanc…
少し前に AWS EC2 でルートボリュームをインスタンスを停止せずに交換可能になったと発表がありました。 EC2 でルートボリュームを交換することにより、迅速な復元とトラブルシューティングが可能に え、停止せずにって、無停止でってこと? そんな馬鹿な(…
もう結構前のことですが、AWS Lambda に zip ではなくコンテナイメージでデプロイ出来るようになったとのことです。 AWS Lambda の新機能 – コンテナイメージのサポート | Amazon Web Services ブログ ので試してみました。残骸はこちら。 コンテナイメージ…
だいぶ以前に Qiita に ParaTest で PHPUnit を並列実行する記事を書いていたのですが、 ParaTest と Docker で PHPUnit を並列実行する試み - Qiita 続:ParaTest と Docker で PHPUnit を並列実行する試み - Qiita よく考えたら別に Docker なんて必要なく…
CentOS 8 の代替になるかもしれない AlmaLinux が GA リリースとのことなので、とりあえずインストールしてみました。 https://almalinux.org/ KiskStart でインストール KVM with libvirt へ virt-install で KiskStart でインストールしてみます。 手順は …
CodeBuild/CodeDeploy/CodePipeline を使って ECS にデプロイを素振りしました。 残骸はこちら。 デプロイの流れ デプロイの基本的な流れは次のとおりです。 VCS からソースコードを取得 CodeBuild でイメージをビルドして ECR にプッシュ このときイメージ…
次のようなテーブルがあったとします。1 レコードが a~b の範囲を示しています。終端の端点は含みません。例えば 3~6 なら 3,4,5 を含む範囲です。 create table t ( id int not null primary key auto_increment, a int not null, b int not null ); inse…
標準入出力で OpenSSH の -L や -R のようなポートフォワードを行うツールを作成しました。 ngyuki/somux: somux is simple port forwarder via stdio ローカルへのインストールは go get github.com/ngyuki/somux で、Docker イメージは docker pull ngyuki…
下記の記事のように複数行に対する 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 が直接…