AR ホームベーカリー

オイラのアウトプット用ホームベーカリー!

RDS がサポートしているバージョンの確認

いつも忘れるやつシリーズ。

20230313 実行分

❯ aws rds describe-db-engine-versions --engine mysql --query "*[].{Engine:Engine,EngineVersion:EngineVersion}" --output text
mysql   5.7.33
mysql   5.7.34
mysql   5.7.37
mysql   5.7.38
mysql   5.7.39
mysql   5.7.40
mysql   5.7.41
mysql   8.0.23
mysql   8.0.25
mysql   8.0.26
mysql   8.0.27
mysql   8.0.28
mysql   8.0.31
mysql   8.0.32

公式

「英語以外のドキュメントは最新じゃない可能性があるのだ!」と堂々と言える AWS くんの面の皮の厚さ! 僕も見習いたいのだ!

docs.aws.amazon.com

20230313

企業の規模が大きいのだから、あらゆる提供している地域向けのナレッジベースはちゃんとメンテナンスしてほしいのだ。 ちゅーちゅーお金を吸い上げて目黒に立派なオフィスを作って、ポルダリングの壁を用意して満足しているだけではいけないのだ。

8.0.32 が登録されてどんだけ経ってると思ってるのだ

今日は腹が立っているので色々ささくれているのだ、後日思い出したらなおすのだ、ごめんなのだ。

propshaft ことはじめを適当に考えている

本業があまりに疲れすぎて何も考えたくないので、休憩を兼ねて以下をボーッと見ていた。

re-engines.com

techracho.bpsinc.jp

このあたりが注意しないといけないかな。

アセットヘルパー

:%s/image_url('/url('\/g みたいな感じで雑に修正していけばよさそう。

development環境でのプリコンパイル

特に初学者の子が動的コンパイルと静的コンパイルの動作の違いを理解してなくて、「 development なのに動かない……手動で precompile したら反映された!」みたいにしがちなので、注意しないとなー。

まあ上記のパターン引くの、 sprockets とか spring とか死んでるなんかおかしい環境になってることがほとんどだったのだった。 なるべくスリープじゃなくてシャットダウンしような、みたいなサジェストしかできねえんだナ。

まだ Rails 7 採用した環境運用していないんだけど、一人で保守してるコード複数あり、そのうちの一つは素直にアップデートできなさそうなのでウムムー、となっている。

Github アカウント整備しなおしたりリポジトリを fork したりしていた

今更だけどリポジトリ fork するお作法をちゃんと読んでいた。

docs.github.com

ErrBit 環境が必要になったのでドキュメントとか実装読んでいたけど、これ業務上で修正したりしたら PR 送った方がよさそうだな……などとなっていた。

1k 目の fork を成し遂げたぜ

Rails 6.1 / 7.0 へのアップデートも止まってるし、年明けくらいにデザイン再実装しようぜ! が draft になってるし、ニッチなアプリケーションなのは分かるけど停滞しているっぽいのでボチボチ見ていこうと思う。

日記じゃん。

イマドキの Linux ユーザは uid/gid を 1000 から始める必要がある

タイトルがすべてシリーズ。

  • ロケ地
    • Rocky9.1

useradd warning: user's uid 500 outside of the UID_MIN 1000 and UID_MAX 60000 range.

かれこれ10年くらい、 uid/gid は 500 から始める生活をしていた。

[root@localhost ~]# groupadd -g 500 example-user
[root@localhost ~]# useradd -u 500 -g example-user -m example-user

で、よく ec2-user と衝突して思い出したりしていた。

のだけど、CentOS7 のあとの騒動とか AWS 移行したり雑にコンテナ使ったりして、久しぶりにオンプレミスかつ Rocky9.1 でローカルユーザを作ったりしている。

すると見出しのようなエラーが出る。

[root@localhost ~]# groupadd -g 500 example-user
[root@localhost ~]# useradd -u 500 -g example-user -m example-user

useradd warning: user's uid 500 outside of the UID_MIN 1000 and UID_MAX 60000 range.

groupadd では出ず、 useradd では出力されるので uid だけの問題かもしれないが、新規作成する際は uid/gid が揃っている方が見通しがいいので、一度 500 で作ってしまったものはこうする。

[root@localhost ~]# groupmod -g 1000 example-user
[root@localhost ~]# usermod -u 1000 example-user

どうも uid 1000 未満はいわゆるウェルノウンポートのような感じでシステムで予約 (というか一般ユーザが使ってはいけない?) ような感じっぽかった。 ちゃんと調べてないのでそのうち経緯を調べたい。

という話でした。 いやーちょっとコードかけるようになったからって基礎をおろそかにしてゴミみたいな状態になっていたので反省。

CircleCI で git@github.com: Permission denied (publickey).

テストが落ちまくっていて「何事!?」と思っていたら、どうも DeployKey が消えたっぽかった。

koic.hatenablog.com

  1. 対象の Github リポジトリから Settings -> Deploy Keys を確認して、 CircleCI DeployKey が存在しないのを確認する
  2. 対象のリポジトリをテストしている CircleCI 側の画面から、 ProjectSettings -> SSH keys で既存の DeployKey を削除
  3. Add DeployKey ボタンを押すと、Github リポジトリ側に疎通用の鍵が新しく配置される

これでなおった。

治ったけどコンテナの中が色々古くて動かなくなっていてそれはまた別の話なんじゃ……。

しかし DeployKey が自動で消えるの、最終利用から 1 年放置されていた場合だからなあ。 もしかしてこのプロジェクト、 1 年もロクにテスト回ってなかったんか? と頭を抱えている。

サブドメインごとにホストゾーンを分割すると、分割先のネイキッドドメインで CNAME できない

RFC というか CNAME の仕様を言われると「それはそう!」となるやつ。

ホストゾーンをサブドメインで分割する

サブドメインをたくさん運用する環境があって、ネイキッドドメイン example.com のホストゾーンに全部いれちゃうと見通しが悪い! という事で、サブドメイン毎にホストゾーンを分割した。

dev.classmethod.jp

分割先のサブドメイン付きホストゾーンで作成される NS を、ネイキッドドメインに登録しておけば連携できるので、お手軽に見通しがよくなる〜。

と思ってたんだけど、分割先ホストゾーン内のネイキッドドメインで CNAME を設定したい! となり RFC 仕様違反で詰んだ〜、となっていた。

dev.classmethod.jp

これパブリッククラウド各社は回避策を用意しているらしく、今回は AWS 内 ALB 参照 (別アカウント ID 同士の連携だったけど) だったので A (エイリアス) レコードで無事逃げることが出来た。

別アカウント ID でも ALB -> リージョン選択、まですすんで、ALB が払い出す DNS 直接指定したらエイリアスにできるんすねえ。 はじめてやりましたよ、という感じだった。