Terraformのリファクタリング用のブロック(moved, import, removed)をまとめて削除する

はじめに Terraformのリファクタリングの機能として、moved、import、removed などのブロックが存在しますが、terraform applyを実行すると不要になることが多いです*1。.tf ファイル上にそのまま残しておいてもterraform planやterraform applyをする上で障…

ghコマンドで特定期間にマージしたPRをインタラクティブにフィルタする

はじめに 人事評価が近づいてきたときとか、年末が近づいてきたときにマージしたPRを軸にどういうことをやってきたか振り返りしたいときがあります。 マージしたPRを手元でザッとインタラクティブにフィルタしつつ、 pecoでURLを開けると便利だな〜と思った…

curlの--aws-sigv4オプションについて

curl には 7.75.0から --aws-sigv4 というオプションが追加されています。 オプション自体の存在は知っていたものの使ったことはありませんでした。 OpenSearchやLambda Function URLsでURL自体はパブリックであるが、IAM認証をかけているケースの疎通確認で…

MySQL(InnoDB)で各テーブルの行フォーマットを確認するクエリ

クエリ SELECT TABLE_NAME, ROW_FORMAT FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'hoge' AND ENGINE = 'InnoDB'; 合わせて読みたい MySQL :: MySQL 8.0 リファレンスマニュアル :: 15.10 InnoDB の行フォーマット

Fargateを利用したECS Scheduled Taskでタスクが起動しない事象について

「Capacity is unavailable at this time. Please try again later or in a different availability zone」というエラー 2年近くFargateでECS Scheduled Taskを運用していますが、 初めてECS Scheduled Taskが起動しないという事象が発生しました。 EventBri…

AWS Providerのドキュメントをターミナルから開くためのツールを書いた

業務でTerraformをよく使うのですが、自分が実装するとき、あるいは コードレビューするときに利用しているProviderのドキュメントを開くことが結構多いです。 もっと簡単に開くことはできないかな思い、あいまい検索してブラウザでURLを開いてくれる小さいC…

AWSのインターフェース型VPCエンドポイントの注意点

注意点 インターフェース型VPCエンドポイントを作成する際に配置するサブネットを複数選択できるのですが、VPCエンドポイント経由で通信したいサブネットを全部紐付けて、 terraform apply したら下記のようなエラーが出てしまいました。 creating EC2 VPC E…

GitHub Actionsで非推奨になったset-outputの書き換え

github.blog GitHub Actionsのsave-stateとset-outputが非推奨になってしまいました。 自分はset-outputしか使っていなかったので、以下のようなコマンドで書き換えました。 git grep -l -E "\"::set-output name=.*::.*\"" | xargs gsed -i -e 's/"::set-ou…

Nginxで設定ファイルの構文チェックを実施する

-t — test the configuration file: nginx checks the configuration for correct syntax, and then tries to open files referred in the configuration. http://nginx.org/en/docs/switches.html nginx -t で設定ファイルのバリデーションを実行できます。…

[Apple Silicon] Session Manager経由でTablePlusを使ってDBに接続する

同じ設定なのにIntelでは動くけど、Apple Silicon上では動かなかったのでメモ。 結論 ワークアラウンドとしてはCLIから起動すれば良い。自分はaliasを貼って、tableplusで起動するようにしました。 alias tableplus=/Applications/TablePlus.app/Contents/Ma…

個人的なMacのセットアップ [備忘録]

はじめに homebrew、Alfred、VS Code、Vim、zshなどの多くの方が使っているツールは省略しつつ の自分がGUI上でよくやる設定を中心に備忘録がてら書いておきます。 ウィンドウマネージャー github.com ShiftitはM1上で動作しないため、M1をお使いの方は類似…

In-app purchaseしている1Password individual accountをfamily accountに変える

背景 先日、1Passoword の Individual account を family accountに変えてみました。 変更の手続きがカスタマーサポートに問い合わせる必要があったりと独特だったので、備忘録がてら書いておきます。 手順 1. アカウントタイプ変更のドキュメントを読む htt…

AWS Certified Security - Specialty に合格した

AWS Certified Security - Specialty に合格しました。 https://www.credly.com/earner/earned/badge/6243c736-edc1-4641-8ff5-d0a9e5e4c405 やったこと 要点整理から攻略する『AWS認定 セキュリティ-専門知識』 公式サンプル問題 Exam Readiness: AWS Certi…

職業としてソフトウェアエンジニアをやってきてわかってきたこと

今までのソフトウェアエンジニアとして拙い経験からわかってきたことリストです。 思いついたものを箇条書きで書いています。 その考えに共感するきっかけとなったリンクあるいは参考になるリンクがある場合はそちらも併せて貼っています。 デプロイ回数を増…

プログラマーが効率良く台湾華語の単語を覚える方法

プログラマーのようにタイピングに抵抗のない人が 注音記号で台湾華語の単語を覚えていくのには 現時点で以下の方法が効率が良いと感じています。 1. 注音記号を覚える。 以下の表を全部覚える https://www.mdnkids.com/BoPoMo/ 気合で頑張りましょう。 四声…

リモートワーカーにpovo2.0はオススメできそう

満を持してiPhone13にした。5年前に比べてiPhoneもLINEも移行が簡単になっててすごい。 https://t.co/OcLDMNatF4— shmokmt (@shmokmt) January 11, 2022 先日、iPhone8からiPhone13に変えるついでにキャリアも見直してUQ Mobileからpovo2.0に変更しました。 …

AWS Certified Solutions Architect – Associate に合格した

AWS

自信をつける意味合いを込めて、AWS SAAを受験したところ合格できました。 資格試験は3年ぶりぐらいだったので、緊張しました。 ITベンダー系の資格は合格すると、Credlyというサービスで合格した証のバッジがもらえるようです。 www.credly.com まあなんと…

2022年になった

2021年の振り返り 仕事 転職した。 バックエンドエンジニアという枠で採用されたものの1on1で「インフラも実は興味があって、チャンスがあればやらせて欲しい」という旨を上司に伝えたところいつの間にかSREになっていた。まだまだスキルは乏しいため、自らS…

nginxのシグナルについて

Controlling nginx nginxのドキュメントを読んでいて気づいたのですが、 nginxのmaster processおよびworker processはTERMを受信するとgraceful shutdownしてくれないみたいです。 なんでnginxのDockerコンテナでエラーが起きないんだろうと思っていたとこ…

actions-setup-tfcmtを作ってみた

suzuki-shunsuke/tfcmtをsetupするアクションを書いてみました。 github.com blog.chaspy.me tfnotify はメンテされていないので、tfcmt と比較する。tfcmt は Terraform での通知に特化しているので多くの優位点がある。その内容は tfcmt の README にある…

資産運用とか勉強するときに読むと良い記事

エンジニア、投資はじめました | wapa5pow's blog 普通の人が資産運用で 99 点をとる方法とその考え方 - hayato

トランザクション中にMySQLに再接続するということについて

問題 Ruby on Railsではコネクションプーリングが基本的に有効になっていて、コネクションが使い回されるという仕組みになっています。 Auroraにフェイルオーバーが発生し、マスターがレプリカに降格した場合は コネクションがレプリカに向き続けてしまってW…

GitHub ActionsでECSのタスク定義のみを更新する

GitHub ActionsでECSサービスをデプロイするときによく使われる aws-actions/amazon-ecs-deploy-task-definition ですが、 タスク定義のみを更新することもできます。READMEのサンプルコードにはその例がないので、気づきにくいです。 inputs: task-definiti…

GitHub Actionsがdependabotで発火した場合のみ挙動を変えたい

DependabotのPRを元に発火するGitHub Actionsはread-onlyなGITHUB_TOKENのみを扱うことができるため、step内で Secretsを参照している場合はfailしてしまいます。 【Github actions】DependabotのPull RequestでSecretsが参照できずワークフローがFailになっ…

ECSでunicornを動かすときの注意点

ECSはタスクが停止すると、各コンテナにまず SIGTERM を送ります。 しかし、Railsと一緒によく使われるunicornは SIGTERM を受け取ると、gracefulに終了してくれません。 graceful shutdownさせるためには QUITシグナルをmasterプロセスに対して送る必要があ…

Nginx の limit_req

Nginxの流量制限する場合に使用される limit_req の使い方について調べてみました。 NGINX Rate Limiting の簡単なメモになります。 limit_req Nginxのrate limitでは、パケット通信の帯域制限などで使われているleaky bucket algorithmに従ってキューイング…

Goで自作パッケージを作るときのちょっとした動作確認

SongmuさんのGo Conference 2019 Summerでの発表資料に パッケージ内の関数の動作確認とかは gore -pkg . が異常に便利です と書いてあって、使ってみたら結構便利だったので備忘録として残しておきます。 -pkg string the package where the session will b…

RFC違反のメールアドレス

日本の大手キャリアであるdocomo、auが2009年ごろまでに作成したメールアドレスはRFCに準拠していないものも作成可能でした。 今日はRFC違反のメールアドレスを考慮した正規表現とAmazon SES、SendGridの対応状況について調べてみました。 RFC違反のメールア…

git 備忘録

任意のコミットで変更されたファイルの一覧を出力する 通常のコミット: git diff-tree --no-commit-id --name-only -r <tree-ish> マージコミット: git log -m -1 --name-only --pretty="format:" <commit-id> mainブランチにマージ済みのブランチを削除する git branch --merged </commit-id></tree-ish>…

フラーをやめて、READYFORに入る。

1月末でフラーを退職して、2月頭からREADYFORで働いています。 Ruby / Rails をしっかり書くのは初めてなので、色々触りながら「う〜ん、これはいかんな・・・」とか試行錯誤してる毎日です。 俺はやるぞ!何かを!— shmokmt / Shoma Okamoto (@shmokmt) 202…