背景
共通の運用モデルを持たないまま、プラットフォームは 3 つのリージョンへ広がっていました。各リージョンが独自のデプロイ手順、手作業の運用手順書、そして「正常」の定義を抱えていました。その知識が共有されない場所で信頼性は損なわれ、システムの運用コストは上がり続けていました。
求められたのは作り直しではなく、プラットフォームを再び理解できる状態に戻すことでした。事業が依存するリリースを止めることなく、すべてのリージョンに一つのデプロイ・監視・復旧の方法を用意しました。
アプローチ
まず、本番で実際に動いているものをリージョンごとに書き出し、関係者が動いていると信じているものと突き合わせました。この棚卸しが、その後すべての土台になりました。
そのうえでインフラをコードとして標準化し、分岐していたデプロイ経路を単一のパイプラインへ集約し、属人的な運用手順書に閉じていた信頼性の作業を、自動化され観測可能な仕組みへ移しました。移行は段階的に進め、各リージョンは実トラフィックで置き換え先の妥当性を確認できてから切り替えました。
目指したのは目新しさではありません。新しく入ったエンジニアが最初の一週間で理解できるプラットフォームです。
成果
- 70%
- 環境構築時間の削減
- 3 リージョン
- 単一の運用モデルへ統一
- 99.95%
- 目標とするサービス信頼性
主な意思決定
パイプラインは一つ、検証はリージョンごとに
全リージョンを一度に切り替えるのではなく、同じパイプラインの上で本番トラフィックを通せたリージョンから順に移行しました。リスクは局所に留まり、いつでも戻せる状態を保ちました。
インフラを信頼できる唯一の情報源に
すべての環境を宣言的な Terraform へ移しました。差分は障害対応中に発見するものではなく、常に見えて直せるものになりました。
自動化の前に観測を
復旧を自動化する前に「正常とは何か」を合意できるよう計測を整えました。おかげで自動化は推測ではなくシグナルに基づいて動きます。