2022/3/31-4/1

サーバーの移行作業をしたり休学の記事を書いていたら生活習慣が崩壊した。今日(4/1)は5時間昼寝した。

あとatcoder problemsのstreakを切らした。51日続いたのに。


サーバーの移行を進めた。foolslabとk.foolslabを移行。

前と同じくH2O×PHP-FPM×MariaDBの構成だが、もうH2Oはyumでインストールできないのでソースからビルドしてインストールした。podmanでコンテナ建てる手はあるが、ファイルへのアクセスがつらくなりそうなのでやめた。たしか前もそう。

移行中に出来るだけダウンタイムは少なく、そしてダウンタイムでも作業中のお知らせ画面くらいは出るようにしたかったので、ちょっと手法を調べてみた。

「サイトをメンテナンスモードにした上で移行し、両方のサーバーが動いている状態でDNSを切り替える」くらいは普通に思いつく。しかし、DNS切り替え後に新しいサーバーのサイトのメンテナンスモードを解除してもDNSキャッシュが残っている間は古いサイトにアクセスし続けることになる。いわゆる浸透待ち状態になってしまうが、これの回避方法として「古いサーバーは新しいサーバーのリバースプロキシにする」というやり方があるらしく、天才かと思った。

実際にやってみたところ、ちょっと重くなってしまう。えーそんな程度の負荷で重くなる?なんか設定が良くないのかな。

もうひとつ収穫として、移行後のサーバーが正常に動作しているかを非公開のまま検査する方法を学んだ。curlにうまいことオプションを指定すると、あたかも特定のホストが特定のアドレスに解決されたかのようにアクセスできるらしい。これは使えそう。

https://qiita.com/tt2004d/items/529340137e1ab9321f10

サーバーの移行・構築・保守などは、ひたすら経験と基礎知識を動員して穴がないか調べつつ作業を進める感じのやつなので、エンジニアが持っておくべき経験だとは思っているものの個人的にはあまり楽しい作業ではない。

あとはdockerで動いてるmatomoとpostfix+dovecotで動いているメールサーバの移行が終わってない。早くけりを付けよう。


昨日・今日解いた競プロの問題。

AGC056-A 解説AC。言われりゃ分かるけど思いつけなかったなあ。nが6の倍数以外では「各行・列3個ずつ」を満たす配置も作れなかった。単純に3個ずつとにかく置いていくだけでも出来ていれば。

ARC111-B 解説AC。これも言われれば理解できるけどどう発想したもんだか。

フローとか数列とか色々考えたが、グラフとはみなせなかった。「種類数」をカウントする方法はいくつかあったと思うが、各「種類」をグラフの頂点とみなす考え方は使えるかも。自力考察では最後まで「カード」に縛られていた気がする。

Categories: