Postfix から SMTP endpoint を使わずに Amazon SES 経由でメールを送る

Postfix から Amazon SES 経由でメールを送る場合、通常であれば SMTP credentials を作成したうえで Postfix から Amazon SES の SMTP endpoint へリレーを設定します。 Amazon SES とPostfixの統合 - Amazon Simple Email Service Classic が、やんごとな…

CloudFront ~ S3 で CORS を設定する

AWS

CloudFront 経由で公開している S3 に Web フォントを置いて、それをクロスオリジンで利用できるようにするために Access-Control-Allow-Origin ヘッダーを返すように設定したときのメモ。 以下の 2 通りの方法が考えられるでしょうか CloudFront のレスポン…

PHP の LDAP 関数でCA証明書を指定する

PHP

LDAP のサーバ証明書がプライベートCAで発行されているため、素のままだと ldaps で証明書の検証で失敗してアクセス出来ず、PHP 側で信頼するCA証明書を設定しようと試行錯誤したメモ。 簡単な解決方法・・ダメ LDAP_OPT_X_TLS_CACERTFILE というオプション…

クロスアカウントの VPC ピアリング接続を経由してカスタム CNAME で RDS に接続

AWS

クロスアカウントの VPC ピアリング接続を経由して RDS に接続する検証。 要するにアカウント A と B があって、それぞれに VPC があり、ピアリング接続されている状態で、A の RDS に B の EC2 インスタンスから接続します。 ただし RDS の元々の DNS 名で…

auditd のメモ

とある事情でファイル改竄検知や root によるコマンド実行の検知のために auditd を使う必要があったのでそのメモ。 試した環境は次の通りです。 centos-release-7-9.2009.0.el7.centos.x86_64 audit-2.8.5-4.el7.x86_64 kernel-3.10.0-1160.83.1.el7.x86_64…

terraform でリソースのリージョン変更時の嵌りどころ

AWS の SES でオレゴンリージョンを使っていたものを、東京リージョンに切り換えるために terraform で変更しようとして嵌ったときのメモ。 この記事を書いたときの terraform のバージョンは 1.4.6 です。書くだけ書いて寝かせていたらいつの間にか最新は 1…

git でメインラインのブランチが複数あるときに特定のブランチから分岐しているブランチを得る

Git

Git でメインラインのブランチが複数あるとき(例えば main とか develop とか、あるいは v1.x とか v2.x とか)、特定のメインラインのブランチから分岐しているブランチを一覧表示する方法。 git branch --merged の反対をやるイメージですが、分岐元のメ…

CloudFront の署名付き URL を使ってみるメモ

AWS

CloudFront の署名付き URL を使ってみたメモ。 S3 の署名付き URL 署名付き URL といえば S3 の方もよく聞きます。いずれも同じように有効期限付きの署名付き URL を作成して認証を通すというのは変わりませんが、S3 の方は AWS IAM Role の一時クレデンシ…

AWS のリージョンの略称

AWS

AWS でリソース名や terraform の識別子にリージョンを入れたいとき、ap-northeast-1 とかだと長すぎるのでもっと略したいときの略称の候補。 大抵はリージョンごとに〇〇環境のように作成するためリージョン名が識別子に入ることはあまりありませんが、たま…

Oracle RPM の MySQL はアップデート時にサービスが enable にされる

Oracle の YUM リポジトリの RPM でインストールした MySQL だと、インストール時だけでなくアップデート時にもサービスが enable されるため、何かしらの事情でインストール後に disable していてもアップデートで enable になってしまいます。 Oracle の R…

aws-vault で gpg のパスフレーズプロンプトが表示されるのがめちゃめちゃ遅い

aws-vault でバックエンドに pass を使っているので aws-vault の実行時に gpg の秘密鍵のパスフレーズの入力プロンプトが表示されるのですが、最近になってからプロンプトが表示されるまで異様に時間がかかるようになりました。 なお、WSL2 環境で systemd …

aws-vault の tips

aws-vault のメモ。概ね USAGE.md を見れば十分ですが WSL で使用する場合の特有の問題などもあります。 aws-vault/USAGE.md at master · 99designs/aws-vault pass バックエンド ずっと昔は aws-vault で認証情報を保存するバックエンドとして Linux の CLI…

openssl でやっつけでクロスルート証明書を作って接続テストする

手元でクロスルート証明書を作って接続テストする手順のメモ。 openssl ca とか CA.sh だといろいろ面倒なので openssl x509 でやっつけです。 # CA1の秘密鍵と証明書(自己署名証明書) openssl req -new -x509 -newkey rsa:2048 -nodes -sha256 -subj /CN=…

PostgreSQL で関数インデックスに使っているストアドファンクションを REPLACE する

当たり前かもしれませんが PostgreSQL で関数インデックスに使っているストアドファンクションを REPLACE して中身を書き換えてしまうとクエリの結果が正しくなくなることがあります。 -- テーブルを作る create table t (id serial not null primary key, s…

skaffold のメモ

EKS/Kubernetes での開発のために skaffold を使ってみたメモ。 自分用メモなので How To 的なものはありません。 例 例のための最小限の skaffold.yaml の構成。 apiVersion: skaffold/v3 kind: Config build: artifacts: - image: my-app docker: dockerfi…

Kubernetes の HPA(HorizontalPodAutoscaler) の Utilization

kubernetes の HPA(HorizontalPodAutoscaler)の Utilization で指定する cpu 使用率、いわゆる論理1コアを 100 とするパーセンテージなのかと思っていたら違ったのでメモ。 例えば次のように設定されているとき、 # HorizontalPodAutoscaler ...snip... minR…

コアファイルを gdb with VSCode で解析

とあるサーバで1年ぐらい前に発生していた Apache が異常終了したときに abrt によって収集されていたコアファイルを解析したメモ。 abrt について abrt というのはプロセスでコアダンプが発生したときにそれを所定のディレクトリに保管したり(デフォルトだ…

AWS SDK for PHP の SQS::ReceiveMessage でシグナルを受けたときに long pooling を中断して終了したい

指定されたコマンドを子プロセスで実行し、特定のシグナルを受けたときは子プロセス終了時にリスタートするシェルスクリプト

はじめに php で作ったキューワーカーのようなサービスをコンテナで実行させる サービスはシグナルをハンドリングしていわゆるに Graceful に終了したい サービスが終了したときは普通にコンテナも終了する ただしローカルの開発環境では特定のシグナルを受…

S3 に保存された CloudFront のログを見やすく整形するツーライナー

AWS

要するに TSV や CSV は column コマンドで見やすくなる&# の行はちょっと特殊なので加工が必要。 aws s3 cp s3://XXX/YYY/ZZZ/ ./log/ --recursive --exclude='*' --include '*.2022-10-27-*' zcat log/*.gz | sed -r '/^#Version/d;/^#Fields:/{s/\s/\t/g…

ログに含まれる UNIX タイムスタンプを書式化するワンライナー

ログに日時が [1659316846] のように UNIX タイムスタンプで記録されているときに人にわかりやすく書式化するワンライナー。 cat <<'EOS' >log.log [1659316843] りんご [1659316844] ごりら [1659316845] らっぱ [1659316846] perl EOS cat log.log | perl …

ECS でサービスにアクセスがないときにタスクを自動的に停止して、アクセスがあったときに自動的に開始する

AWS

ECS で Review Apps のような、マージリクエスト(普段会社で Gitlab を使っているのでそう呼んでますが PR=プルリクエスト でも概ね同じです)の都度、コンテナイメージのビルド、ALB ターゲットグループ作成、ECS サービス作成、ALB リスナーにルール追加…

AWS で Oracle Linux 8 を動かしたメモ

とある事情で AWS で Oracle Linux 8 を使ってみることになったのでそのメモ。 AMI AMI は所有者を 131827586825 で検索するとずらずら出てきます。 参考:https://community.oracle.com/tech/apps-infra/discussion/4417739/launch-an-oracle-linux-instanc…

EC2 でインスタンスを停止せずにルートボリュームを置き換えてみるメモ

AWS

少し前に AWS EC2 でルートボリュームをインスタンスを停止せずに交換可能になったと発表がありました。 EC2 でルートボリュームを交換することにより、迅速な復元とトラブルシューティングが可能に え、停止せずにって、無停止でってこと? そんな馬鹿な(…

AWS Lambda で PHP のカスタムランタイムのコンテナイメージを作ってみるメモ

もう結構前のことですが、AWS Lambda に zip ではなくコンテナイメージでデプロイ出来るようになったとのことです。 AWS Lambda の新機能 – コンテナイメージのサポート | Amazon Web Services ブログ ので試してみました。残骸はこちら。 コンテナイメージ…

ParaTest で TEST_TOKEN を使って DB が絡むテストを並列実行する

だいぶ以前に Qiita に ParaTest で PHPUnit を並列実行する記事を書いていたのですが、 ParaTest と Docker で PHPUnit を並列実行する試み - Qiita 続:ParaTest と Docker で PHPUnit を並列実行する試み - Qiita よく考えたら別に Docker なんて必要なく…

AlmaLinux を KickStart とか CentOS からのインプレースとかで入れてみる

CentOS 8 の代替になるかもしれない AlmaLinux が GA リリースとのことなので、とりあえずインストールしてみました。 https://almalinux.org/ KiskStart でインストール KVM with libvirt へ virt-install で KiskStart でインストールしてみます。 手順は …

CodeBuild/CodeDeploy/CodePipeline で ECS にデプロイする素振り

AWS

CodeBuild/CodeDeploy/CodePipeline を使って ECS にデプロイを素振りしました。 残骸はこちら。 デプロイの流れ デプロイの基本的な流れは次のとおりです。 VCS からソースコードを取得 CodeBuild でイメージをビルドして ECR にプッシュ このときイメージ…

SQL で範囲が記録されたテーブルから任意の範囲が隙間なくすべて埋まっているか得る

次のようなテーブルがあったとします。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 のようなポートフォワードを行うツールを作った

標準入出力で OpenSSH の -L や -R のようなポートフォワードを行うツールを作成しました。 ngyuki/somux: somux is simple port forwarder via stdio ローカルへのインストールは go get github.com/ngyuki/somux で、Docker イメージは docker pull ngyuki…