地味に時間がかかってしまったのだけどこの サーバを更新、更新内容は以下の通り。

1. OSを 7からCentOS 8に更新した。サーバは で変更なし。実はここで地味に時間がかかっている。
2. 内部IPアドレスを のデフォルトからカスタムVPSに更新した。
3. もIPアドレスをリナンバー。
4. をマネージドにした。Google Cloud Memorystore for Redisではなく、 の無料版として外出し。

> 1. OSを 7からCentOS 8に更新した。サーバは で変更なし。実はここで地味に時間がかかっている。

古いサーバがすべてのリクエストに503を返すよう設定し、新しいサーバを準備。

実はこの新しいサーバの準備に一番時間がかかってしまった。
CentOS 8に更新することでほとんどビルドし直しになるのだけど、icu4c・libffi・protobufの3つでリンクエラーが多発。
この3つはbuild-from-sourceしたうえで/etc/ld.so.conf.dにファイルを置いて修復。
そのほか、LD_LIBRARY_PATHの修正がけっこう必要だった。
結果、かなりのベースとなるソフトウェアがビルドし直しになり、長時間の停止につながった。

(つづく)

Show thread

(つづき)
> 1. OSを 7からCentOS 8に更新した。サーバは で変更なし。実はここで地味に時間がかかっている。

はもちろんEnforceしているが、SELinuxの設定はそこまで時間がかかっていない。
もうひとつ時間がかかったのは のエラーや、ディスクマウントエラーなど。
前者は`gcloud compute instances update <ホスト名> --shielded-learn-integrity-policy --project=<プロジェクト名>`をしつつ、
セキュアブートを一時的に無効にして対応した(vTPMをオンにする・整合性のモニタリングを有効にする、の2つはそのままにする)。

(つづく)

Show thread

(つづき)
> 1. OSを 7からCentOS 8に更新した。サーバは で変更なし。実はここで地味に時間がかかっている。

後者はケアレスミスの類で、古いディスクを直接接続したり、コピーして使ったりした結果、ディスクのUUIDが重複したことによるもの。
古いディスクから取り出したいデータがあったので一時的に古いディスクをマウントしようと思ったのだけど、そういうときはスナップショットからディスクを作ること。
そうするとディスクにUUIDが振り直される。
ちなみに、/etc/fstabを間違えて一時的なインスタンスを作ってレスキューしたい場合だが、「別のイメージのOS」を使うこと(たとえばCentOSではなくDebianを使う)。
そうしないと、ディスクのUUID重複でレスキューができない。

Show thread
Follow

> 2. 内部IPアドレスを のデフォルトからカスタムVPSに更新した。

Googleデフォルトの10.128.0.0/9は巨大すぎて小規模プロジェクトで使うには気が引けるので、192.168.0.0/16の中から/24を計2つ使用した。
ひとつはVM用で、もうひとつはCloud SQL用。

> 3. もIPアドレスをリナンバー。

前述の通り192.168.0.0/16の中から使った/24のうちCloud SQLに/24をひとつ割り当てた。
なお、Cloud SQLは最低でも/24を必要とするうえ、/24のどこからアサインされるのかいまひとつよく分からない。
指定はできないので、インスタンス名とIPアドレスを合わせようとするとCloud SQLインスタンスをガチャすることになる(笑)。
指定できるようになってほしいのだが…

Show thread

> 4. をマネージドにした。Google Cloud Memorystore for Redisではなく、 の無料版として外出し。

redislabs.com/ では、High Availability: Offの30MB 1 Databases(原文ママ)を1つ借りることができる。
5.0.5準拠のEssentials/GCP/us-central1/Cache/30MBをeviction volatile-lruで借りた。
Google Cloud Memorystore for Redisと違って、ちゃんとSAVEもできるので、Mastodonで使える。
$4/moの100MB 4 Databasesに上げるかどうかは今後の使い方次第。
なお、Google Cloud Memorystore for Redisをキャッシュ専用に使うことも考えたが、結局やめた。

Show thread
Sign in to participate in the conversation
BlessedGeeks.Social

@h12oのおひとりさまMastodon、Google Cloud PlatformとRedis Enterpriseで運用