インフラ
K8s 中級 #6 オートスケーリング — HPA / VPA / Cluster Autoscaler
[#5](/ja/posts/k8s-intermediate-5) まで扱ったモデルは単一 Pod のリソースと健康信号の次元でした。しかし運用の負荷は時間帯・ユーザーパターン・イベントに従って揺れ、人が毎回 `replicas` 値を手で合わせることはすぐに限界にぶつかります。この記事ではその空白を埋める 3 つの次元のオートスケーリング — Pod 個数を自動で増減する `HPA`、Pod のリソース要求・上限を自動で推奨・調整する `VPA`、そしてノード自体を自動で追加・削除する `Cluster Autoscaler` を 1 サイクルでまとめます。metrics-server という前提、HPA の `autoscaling/v2` マニフェストとアルゴリズム、scale up・down 非対称の `behavior`、custom metric と KEDA、VPA の 3 コンポーネント、HPA・VPA の衝突、Karpenter まで扱います。
AWS上級 #2 ECR — イメージレジストリ
Amazon ECR private / public、IAM 認証、docker push / pull、イメージスキャン、ライフサイクルポリシー、マルチアーキテクチャ (linux/amd64 + arm64) まで — ECS と Lambda が持っていくイメージをどこに保管するか。
Docker 実戦 #2 Django + PostgreSQL compose — 二つのコンテナを一束に
Django アプリと PostgreSQL を docker compose 一ファイルに束ねる。マイグレーション entrypoint、depends_on の healthcheck 依存、データボリューム、.env 分離、collectstatic まで — compose が解いてくれる構成を運用形に。
K8s 中級 #5 Health check — liveness / readiness / startup probe
[#4](/ja/posts/k8s-intermediate-4) まで Pod のリソースモデルをまとめたとすれば、この記事は K8s がコンテナの「生存」と「トラフィックを受ける準備」をどう判断するかのモデルです。3 種類の probe — liveness、readiness、startup — がそれぞれ違う役割を担い、誤って設定すると無限再起動ループ・トラフィック取りこぼし・起動失敗のような運用事故に直結します。`httpGet` / `tcpSocket` / `exec` の 3 つの検査方式、`initialDelaySeconds` / `periodSeconds` / `failureThreshold` のような共通パラメータ、liveness に外部依存を入れたときの cascading failure、`terminationGracePeriodSeconds` と PreStop フックが描く graceful shutdown まで 1 サイクルでまとめます。
K8s 中級 #4 resources.requests / limits — Pod のリソース要求と上限
[#3](/ja/posts/k8s-intermediate-3) まで外部トラフィックがクラスタの中へ入ってくる道をまとめました。この記事の視点は再び Pod の中に入ってきます — コンテナが CPU とメモリをどう要求し、どう制限を受けるかのモデルです。`resources.requests` はスケジューラがノードを選ぶときに見る値で、`resources.limits` は kubelet がランタイムに強制する上限です。この 2 つの分離、QoS クラス(Guaranteed / Burstable / BestEffort)、CPU throttling と OOMKilled の違い、JVM・Go ランタイムの cgroup 認識、`LimitRange` で namespace のデフォルトをかけるパターンまで 1 サイクルでまとめます。
AWS中級 #7 CloudFront で静的サイトを配信
AWS のグローバル CDN、CloudFront。Origin / Behavior / Cache Policy の流れ、S3 + CloudFront 静的ホスティングパターン、OAC で S3 を安全に隠す方法、そして無効化 (invalidation) の運用。
Docker 上級 #6 プロダクション運用 — graceful shutdown、healthcheck、restart
PID 1 の信号処理、SIGTERM グレースフル終了の正確な流れ、init と dumb-init の役割、restart 方針の深掘り、liveness vs readiness の概念。一コンテナをプロダクションで安定的に回す細部をまとめて整理します。Docker 上級シリーズの締めくくり。