AR ホームベーカリー

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

Terraform を書く時に気をつけること

忘れがちなので、気付いたタイミングで書いておく。 backend に変数 (Variables) は利用できない こんな感じで怒られる。 起動時に引数に渡すか、backend 用に別ファイルを作れとのこと。 │ Error: Variables not allowed │ │ on main.tf line 11, in terraf…

MySQL の予約語

groups というテーブルがあるんだけど、SELECT を投げようとして syntax error になった。 mysql> SELECT * FROM groups; ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for …

Terraform の backend を S3 にする

ロケ地 Terraform 1.3.6 hashicorp/aws 4.45.0 Error loading state state がローカルやんけ! と気づいて、 backend "s3" を書いて、リモートに手動でバケットを作成 (設定は名前以外、全部変更なしのアクセスきつきつでオッケー)。 後に terraform init -m…

terraform の provider バージョンの確認

一旦 terraform init してあれば terraform providers -version で確認できる。 terraform providers -version Terraform v1.3.6 on darwin_arm64 + provider registry.terraform.io/hashicorp/aws v4.45.0 事前に探したい場合は以下あたりから。 registry.t…

Terraform リソース作成時にデフォルトで付与するタグを管理する

作成したリソースが Terraform 由来であること 複数の企業が単一アカウント ID に AdministratorAccess 持っている という状態のインフラを管理しているので、それぞれ AWS のリソース作成時のタグに Build: Terrafrom Company: 会社名 を付与する運用にして…

シェルスクリプトでの小数点を含む数値 (ロドーアベレージ) の比較

www.koikikukan.com つまりこういうことだった。 $((hoge)) -gt $((fuga)) みたいにしたりしてもだめだし、じゃあ片側数字ならええんか? と思ってたけど、単純にダメなやつであった。 ATAI="0.40" <200b> LOAD_NOW=`uptime | grep "load average" | sed -e …

基本情報技術者試験落選

そういやそろそろ午前午後ともに受付終わりじゃん、来週末くらいに予約いれとこ、と思ったら都内はおろかほぼ日本全国予約できなくなってて草生える。 あーあ、めちゃくちゃだよ。 代わりに Ruby Silver でも受験すっか。

Markdown 既報の * + - による項目の違い

長年気になっていたけど、ようやく調べてみた。 結論からいうと、標準仕様では差異はないとのことだった。 daringfireball.net It’s important to note that the actual numbers you use to mark the list have no effect on the HTML output Markdown produ…

Unable to monitor directories for changes because iNotify max watches exceeded.

ロケ地: Amazon Linux release 2 (Karoo) RAILS_ROOT で rails c したらエラーがでるー、と言われたやつ。 実際のエラーはこう。 /RAILS_ROOT/vendor/bundle/ruby/3.1.0/gems/listen-3.7.1/lib/listen/adapter/linux.rb:32:in `rescue in _configure': Unab…

assets が見えないのは net::ERR_HTTP2_PROTOCOL_ERROR かと思っていた

アカウント ID が異なる環境で、動いているアプリケーションを環境ごとクローンする、というタスクがあって、規模的に手動で作業しなおしても大丈夫だなと思って着手したらひどい目にあった、という話。 ページデザインが崩れる デプロイして動作確認を行っ…

MySQL8 時代の GRANT

GRANT ALL PRIVILEGES ON example_database.* TO example_user@localhost IDENTIFIED BY 'password'; FLUSH PRIVILEGES; 長らくこの MySQL 5.x 世代の「ユーザ作成と同時に権限も設定する」というヤツになれすぎて、 MySQL8 世代のユーザ作ってから GRANT し…

RDS で MySQL 5.7.3x を動かしている環境で日本語入力ができない

タイトルのとおり。 RDS で MySQL 5.7.3x 系エンジンの環境で、年次更新みたいな処理でデータベースメンテナンスをしていたのだけど、 mysql コマンドで RDS に接続時 SELECT や UPDATE 発行時に日本語入力しても消える (コピペしても消える) 状態だった。 m…

ERROR 3678 (HY000): Schema directory './example_development' already exists. This must be resolved manually (e.g. by moving the schema directory to another location).

タイトルの通り。 DROP DATABASE example_development; したらなんか残ってしまい、 rails db: 系コマンドも通らなくなった。 原因は、 mysql_data 以下のディレクトリにデータベース名のディレクトリが残ってしまっているので。 削除する /usr/local/var/my…

[WIP]Ventura とする

自分の環境構築用なので、もし dotfiles とか brewfile を流用する人はいらんものあると思うので注意してください。 作業メモ兼ねてるのであとで綺麗にします。

apache ユーザで git pull できるようにする

いわゆる RHEL 系で httpd インストールした以下の状態で、 apache:apache のまま github 運用するときどうするか、というやつ。 apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin apache ユーザの設定 sudo -u apache でユーザ指定して git 各種コマ…

github 用の SSH 鍵とか DeployKey 用のアレそれを作る

いつものように DeployKey が失効した環境があったので、 ssh-keygen するなどしていた。 ssh-keygen -t rsa -b 4096 -f deploy_key.pem -N "" しかし今の github は、上記の様なコマンドで作成した鍵 (RSA SHA-1) はだめとのことだ。 github.blog ECDSA で…

作業時間

へえっ、などと思いながら眺めていた。 www.blockchainengineer.tokyo 文意からするとマネージメント側がエンジニア側に配慮する、と読めたんだけど、このあたりで手法としてアンガーマネジメントとかが有効になってくる、というふうにつながるのかな。 わり…

RDS で LOAD DATA LOCAL INFILE を実行する

いつも忘れて調べるんだけど、正解がシュッと出てこないのでインターネットの敗北。 我の勝利〜。 --local-infile=1 を利用する デフォルトで用意されるパラメータグループか、それに準拠するパラメータを利用していれば、 --local-infile=1 を付けて mysql コ…

おじいさんに選ばれたのは大きなトランザクションでした

RDS で LOAD DATA LOCAL INFILE って素直に使えるんだっけ? と思って調べていたら以下のような記述を見つけてしまった。 バイナリログ作成を有効にすると、トランザクションが大きい場合、IOPS とディスク消費量が 3 倍になります。これは、ディスクに書き…

CloudFront のオリジン (S3) に加えた変更をすぐに反映する

キャッシュ無効化、という手法があります。 soypocket.com ただこれ運用戦略的に正しいのか? みたいな疑問符はあるんで、今回は「開発中だったり本番向け環境じゃない」という前提のもと、キャッシュの時間を調整します。 キャッシュポリシー 前回の記事で…

フロントエンドを CloudFront (S3) で配信する

React とか Vue あたりで作って、 npm run build で出力したやつをフロントエンドと呼んでいます、雑ゥ! とにかくこれを S3 にぶっこみつつ、CloudFront で配信します。 最近のウェブ系はだいたいこんな感じですよねというヤツのふりかえり。

530 Must issue a STARTTLS command first (Net::SMTPAuthenticationError)

自前運用の SMTP サーバから AWS SES に切り替える作業があったんだけど、表題のエラーが出て「!?」となっていた。 Must issue a STARTTLS command first 答えは全部ここに書いてあるんですが、ちゃんと暗号化して送信しろ、という話です。 エラー時の該当…

CloudFront にとりあえずの Basic 認証

dev.classmethod.jp Lambda@Edge に function 配置してたおじさんだった (node v6 とか v8 の時代マン) ので、えらいお手軽に出来るようになったなー、という感じだった。 いやまあ Basic 認証くらい CloudFront 標準機能で用意しとけよ、という感じはある。

M1 への homebrew パッケージ移行

MBP 2019 (13inch, Core i-5) から MBP 2021 (14inch, M1Pro) に移行しよーっと、という感じで作業している。 アーキテクチャが Intel から AppleSilicon に変更になるので、 TimeMachine から環境復旧せずにイチから作成するなどしている。 2015 年あたりか…

puma.sock failed (111: Connection refused) while connecting to upstream

Nginx で puma の unix socket を参照するように設定した所、 502 が連続するので「何事……?」となっていた。 integration という RAILS_ENV を増やしていたのが原因かと思っていたけど、単純なミスだった。 しらべる Rails 側のログには何も記録されていな…

RHEL 系の eth と ens の違い

eth は RHEL6 やそのクローンまで、 ens | eno は RHEL7 以降やそのクローン、というざっくりとした理解だったんだけど、いい加減アレだな、と思って調べてみた。 enakai00.hatenablog.com はえーなるほど、 ens が PCI-Express 接続で eno がオンボードだっ…

Access-Control-Allow-Headers のワイルドカード

認証情報付きのリクエストでは、特別な意味のない "*" というヘッダー名として扱われます。 developer.mozilla.org へー知らなかった。たくさんヘッダを追加する機会があって「これ開発環境だし * にできねえの?」と思って調べたら見つけた次第。 ちなみに…

Route53 の A レコードは A レコードだけど A レコードじゃない (ので CNAMEAlreadyExists したら使え) という話

AWS

普通「A レコード!」っていうと、 IP アドレスと関連付くアレを想像する。 ただ AWS だと A は A でも A(LIAS) ということらしい。 よくよく Route53 で A レコード選択時の項目を見ると、 IPv4 アドレスと一部の AWS リソースにトラフィックをルーティング…

terraform plan を保存する

通常 terraform を利用する際は、以下三段構えだと思われる。 terraform init terraform plan terraform apply (-auto-approve) AWS とか Azure、 GCP などのパブリッククラウドであれば「tfstate の管理はリモートでやれ」というのがベストプラクティスなの…

同一の IMAGE ID を持つ docker イメージの削除 (タグを消す)

以下の状態でローカルに存在する IMAGE ID 000000000000 を、 REPOSITORY TAG IMAGE ID CREATED SIZE example1 0.0.1 000000000000 1weeks ago 100MB ECR (例として example1.dkr.ecr.ap-northeast-1.amazonaws.com/integration) へタグ latest を付与して p…