AR ホームベーカリー

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

Nginx の server_name に複数のホスト名を設定したら長すぎって怒られた

Apache の ServerAlias を設定するノリで長い名前を複数(具体的に言うと AWS の EC2 パブリック DNS と ELB CNAME とインスタンスメンテナンス用ドメイン)を指定したら怒られた。

could not build server_names_hash, you should increase なんとかかんとか
続きを読む

RDS の必要最低限なパラメータグループ ( MySQL 8 世代 ) 設定

MySQL 5.6/5.7 世代で絵文字とかハハパパあたりに苦しめられた人多い問題。

  • UTF8MB4 を利用する
  • innodb_file_format innodb_large_prefixON Barracuda が取り込まれたので、項目が存在しなくなった
  • フレームワークなどからのアクセスで時刻補正されるとは限らないので、DB 内の時間も Tokyo にする
    • ActiveRecord 経由で操作してて、 lib/task くコ:彡のタスクを実行するとたまに死ぬので、面倒を見てあげようネ!

f:id:donbulinux:20191018171354p:plain
パラメータグループのプレビュー

innodb_per_table

5.6/5.7 でも書いたけどデフォルト 1 だったので変更しなくてオッケー!

f:id:donbulinux:20191018171814p:plain
innodb_per_table

続きを読む

DNS キャッシュ切替確認とは

伝播っていうな、とバズったのも過去の話よ、という感じで。 DNS 伝播ってなんか言いやすいんすよね……。

sys-guard.com

Route53 に NS うつして待機してたんだけど全然反映されねーな? と思ってたんだけど、作業した人からは「dig に 8.8.8.8 指定したらちゃんと指示どおりのレコード返却されるでしょ!」とずーっと言われ、「いやあのさぁ」って顔になったので。

RDS の必要最低限なパラメータグループ ( MySQL 5.6/5.7 世代 ) 設定

いーっつも忘れて過去の手順書を確認するので、ここに記載する! 新しいパラメータグループ作った後に最低限設定するのは以下。

  • UTF8MB4 を利用する
    • InnoDB のカラム幅を 3072 だか 3074 いっぱいまで拡張する
  • フレームワークなどからのアクセスで時刻補正されるとは限らないので、DB 内の時間も Tokyo にする
  • per_table は標準で 1 だった。

f:id:donbulinux:20190917003634p:plain

設定する値について

だいぶわかりやすかったのはここかなあ、公式読むのが一番だけど、探しづらいんよね。

docs.moodle.org

続きを読む

ファイルの分割をしたい

特に access_log など

sed -n '開始行,終了行p' ${FILE}

weekly などで access_log をローテートしていると、なんらかの原因でアクセス過剰になった際、ログが肥大化して解析時に時間がかかりがちですね。 ということで指定行数で割ります。