Slim4 を使ってみたメモ

PHP

とある社内用のツールで Silex を使っていたのですが、随分前に DEPRECATED になっている ので、Slim4 にリプレースしました。 Silex からの移行なら Symfony Flex では? という気もしますが特に深い理由はありません。もともと極小さいアプリでフレームワ…

AWS Lambda で SQS からメッセージを取得するだけのコードが多重度あげても思ってたよりスループット出なかった件

AWS

とある、SQS からメッセージをたくさん取得 → 一括でなにかする → メッセージを SQS から削除、という AWS Lambda 関数があまりスループット出なかったときのメモ。 Lambda 関数のイベントソースとして SQS を設定しているのではなく、定期実行される Lambda…

nginx の php-fpm で index.php のフロントコントローラーありきの設定

おそらく素の php ファイルをドキュメントルートに置いて URL に拡張子 .php を含むアクセスを有効にするため、location で正規表現とか、try_files の最後で index.php とか、fastcgi_split_path_info とか、いろいろ難しいことがされている例を良く見るの…

Rclone を使ってみる

sshfs と似たようなこともできる Rclone も使ってみました。 Rclone は ssh(sftp) だけでなく Amazon S3 とか Google Cloud Storage のようなクラウドのオブジェクトストレージとか、その他色々使えます。非常に高機能です。 scoop でサクッとインストールで…

WSL2 で sshfs と afuse でリモートホストを自動マウント

SSHFS-Win が便利そうだった - ngyukiの日記 ですが、よく考えてみれば WSL2 なら fuse も動くだろうので WSL2 で sshfs でリモートホストをマウントして \\wsl$\Ubuntu-20.04\mnt\ore-no-server みたいな UNC パスでアクセスすればいいのでは、と思ったので…

SSHFS-Win が便利そうだった

Windows でも sshfs でリモートホストのディレクトリをマウントできるやつです。 billziss-gh / sshfs-win:WindowsのSSHFS Chocolatey で入れようと思ったのですが、すごく古い? あるいは別物? https://chocolatey.org/packages?q=sshfs https://chocolat…

AWS Transit Gateway を使ってみるメモ

AWS

Transit Gateway (TGW) を使ったことが無かったので、試しに使ってみました。残骸はこちら。 Direct Connect や VPN Connection では簡単には試せないので VPC と Transit Gateway Peering のみ試しています。 構成要素 TGW の構成要素について。 アタッチメ…

Ansible で amazon-cloudwatch-agent をプロビジョニングしようとしたら毎回 changed になった件

環境 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…

virt-builder で Ubuntu 18.04 を入れようとしてハマった件

KVM

とある事情で Ubuntu 18.04 のクリーンで直ぐにぶち壊せる環境が欲しかったので virt-builder で入れようとしたらすごくハマった件。 virt-builder でゲストを作って virt-resize でリサイズして virt-customize でカスタマイズ - Qiita でやってたのをもっ…

Phan/PHPStan/Psalm を VSCode で使ってみるメモ

普段 PHP のコードは PhpStorm で書いているので VSCode で PHP のコードを開くことはほとんどありませんが、たまに PhpStorm では OK なのに Phan などの静的解析ではエラーになることがあり、その修正のために何度も phan コマンドを叩くのは辛いので(な…

composer で replace してるパッケージを削除して元のパッケージに戻そうとしたら面倒だった

とあるプロジェクトで phpstan/phpstan-shim を過去に一時的に入れていたことがあって、もう使わないので削除しようとしたところ、composer.json からは消えていたものの実際には削除出来ていませんでした。 こんな感じの依存関係になっています(これは説明…

terraform-provider-libvirt を使ってみる

先日 vagrant-libvirt を使ってみました が、libvirt も terraform-provider-libvirt を使えば Terraform で管理できるので試してみました。 インストール Terraform オフィシャルのプロバイダであれば terraform init で自動的にバイナリがダウンロードされ…

vagrant-libvirt を使ってみる

ずいぶん前に Docker Desktop (Docker for Windows) のために Hyper-V を有効にしたため VirtualBox が使えなくなりました。それに伴って Vagrant も使わなくなりました。 最初は Vagrant が使えなくなるのは辛いかな・・と思っていたのですが、開発系の作業…

いまさら vagrant-aws を使ってみる

ずいぶん前に Docker Desktop (Docker for Windows) のために Hyper-V を有効にしたため VirtualBox が使えなくなりました。それに伴って Vagrant も使わなくなりました。 最初は Vagrant が使えなくなるのは辛いかな・・と思っていたのですが、開発系の作業…

AWS DataSync を素振りしたメモ

AWS

AWS DataSync はオンプレから AWS 上の S3 や EFS にデータを転送するものというイメージだったので、それならあまり使う機会はないかなー、と思っていたのですが下記によると EFS と S3 の間でデータの転送もできるので、それなら使う機会もあるかもー、と…

Amazon Data Lifecycle Manager (DLM) と AWS Backup を素振りしたメモ

AWS

今まで EC2 インスタンスや EBS のバックアップには cron でスクリプトを回したり CloudWatch Events のスケジュールからの Lambda とかでしかやったことなかったので、Amazon Data Lifecycle Manager (DLM) と AWS Backup を EC2 と EBS だけでですが試して…

Node.js で axios とかから投げられる例外のスタックトレースが辛い

axios とかでエラーになったとき、 const axios = require('axios').default; async function f1() { await axios.get('http://localhost:9999'); } async function f2() { await f1(); } f2().catch(err => console.error(err.stack)); 素のままだとほとん…

Vercel を素振りしてみたメモ

Now という PaaS(静的サイトしかできないものだと思っていたけど動的もできたらしい)がいつのまにか Vercel という名前に変わった? ようなので試してみました。 ZEIT is now Vercel – Vercel イントロダクションだと Github などのコードリポジトリからデ…

Amazon WorkSpaces を素振りしたメモ

AWS

2020/09/30 まで無料枠が拡大されているらしいので使ってみました。 https://aws.amazon.com/jp/workspaces/pricing/#FreeTier がしかし、Amazon WorkSpaces を使って最初の2ヶ月間は元々無料枠があるので、あえて今使わなくても良かったかも。どうせちょっ…

AWS Cloud Development Kit (AWS CDK) を素振りしたメモ

AWS

AWS Serverless Application Model (AWS SAM)を素振りしたので次は AWS CDK を試してみました。 チュートリアル 下記のチュートリアルを見ながら試してみます。 https://docs.aws.amazon.com/cdk/latest/guide/hello_world.html typescript ts-node aws-cdk …

AWS Serverless Application Model (AWS SAM) を素振りしたメモ

AWS

Serverless Framework を素振り したので次は AWS SAM を素振りしてみました。 インストール まずは AWS SAM CLI をインストールします。 Linux へのインストール手順でおもむろに Homebrew が出てきます。 https://docs.aws.amazon.com/serverless-applicat…

Serverless Framework 素振り

Serverless Framework とは AWS Lambda などの FaaS を構成管理するツールです。AWS 専用というわけではなくさまざなクラウドプロバイダの FaaS をサポートしています。 今回は AWS Lambda の構成管理を試したかったので下記のドキュメントを参考に素振りし…

tcpdump でキャプったデータから TCP ストリームを取り出す

tcpdump で次のようにキャプって保存したファイルは wireshark で開いて解析できます。 tcpdump -nn -w a.cap port 80 wireshark なら tcpdump よりもいろいろな解析が可能なので、よくサーバでキャプったファイルから HTTP などの TCP ストリームを取り出す…

firewalld の target の default と REJECT の違い

firewalld でインタフェースやソースアドレスに基づいて特定のゾーンに入ったパケットが、そのゾーンに設定されているサービスやポートにマッチしなかったときのデフォルトの動作は、ゾーンの target で指定します。 指定します、と言っても定義済のゾーンで…

リージョン間の VPC ピアリング接続経由で SES SMTP の VPC endpoint を使う素振り

AWS

下記によると Amazon SES の SMTP エンドポイントに VPC エンドポイント(Private Link)経由でアクセスできるようになったので、インターネットアクセスの無いプライベートサブネットからでも VPC エンドポイント経由で SMTP でメールを送れるようになった…

TCP backlog が溢れたときに何が起こるか

何となくふんわりとしか理解していなくて、実際のところ TCP backlog が溢れたときに Client~Server 間で何が起こるかよく判っていなかったので、実際に backlog が 1 で accept しない簡易な TCP サーバを作り、tcpdump でどのようなパケットが飛び交うか…

Makefile で複数の Lambda 関数をデプロイするメモ

複数の Lambda 関数で構成される環境を、基本的な構成は Terraform で管理しつつ、Lambda 関数のコードは make で aws cli を呼び出してデプロイするメモ。 Lambda 関数のコードも含めてすべてを Terraform で管理することもできると思いますが・・・それだ…

tmux で複数コマンドを複数ペインでさっと実行する

だいぶ前に社内ブログで次のような方法で tmux でペイン分割して複数コマンドを同時に実行する方法を紹介していたのですが、 tmux new-session -d ping 1.1.1.1 &&\ tmux split-window ping 8.8.8.8 &&\ tmux split-window ping 8.8.4.4 &&\ tmux set-window…

CentOS 8 を virt-install でサクッと入れる

こんな感じに centos8.ks.cfg を作成して、 #version=RHEL8 cmdline url --url=http://ftp.riken.jp/Linux/centos/8.1.1911/BaseOS/x86_64/os/ lang en_US.UTF-8 keyboard --vckeymap=jp --xlayouts=jp timezone Asia/Tokyo --isUtc --ntpservers=192.168.2.…

Gitlab CI でマージリクエストのマージ結果でパイプラインを実行する

Gitlab は マージリクエストに対してそれがマージされた結果を元にパイプラインを実行できます。 Pipelines for Merged Results | GitLab 便利そうですけど、これは gitlab.com なら Silver 以上、セルフホスティングなら Premium 以上じゃないと使えないよ…