★★ 中級

08. PR レビューの進め方(IaC 観点)

IaC の PR レビューは 本番に触る最後の人間ゲート。「ロジックが正しいか」だけでなく 「これを apply したら何が消えるか」 までを見ます。レビュー観点とチェックリストを整理。

IaC レビューのマインドセット

アプリコードのレビューは「動くか」「読めるか」が中心。IaC は 「動く」よりも「壊さない」 を優先します。理由:

Plan を最初に読む

CI が PR コメントに terraform plan 結果を貼っているはず(05 章)。コードよりも先に plan を読む

Plan: 3 to add, 2 to change, 1 to destroy.

注目するキーワード:

キーワード意味レビュー時の判断
+ create新規作成意図したリソースか
~ update in-place属性変更(無停止)たいてい OK。属性確認
-/+ destroy and then create強制再作成要警戒。停止と引き換えに何を変えているか
- destroy削除最警戒。データ消失の可能性
(forces replacement)再作成の理由その属性の意味を知っているか確認

レッドフラッグ集

これらが PR に含まれていたら必ず議論:

セキュリティ

コスト

破壊的変更

運用

レビューチェックリスト

コピペ用 PR コメント:

## レビュー結果

- [ ] CI の plan を確認した
- [ ] destroy / forces replacement が無い、または許容範囲
- [ ] セキュリティ: SG / IAM / 暗号化に懸念なし
- [ ] コスト: 想定外の課金リソースなし
- [ ] 命名規約・タグ規約に従っている
- [ ] terraform fmt / validate / tflint パス
- [ ] ドキュメント (README) 更新(必要なら)
- [ ] 変更を applied する apply 順序を確認した(envs/dev → stg → prd)

作る側のチェック

レビュアーの負担を減らすため、PR を出す前に作者がやること:

PR テンプレート例

# .github/pull_request_template.md

## 概要
<!-- このPRで何を変えるか -->

## 動機 / 背景
<!-- なぜ必要か -->

## 変更内容
- [ ] リソースの追加: ...
- [ ] リソースの変更: ...
- [ ] リソースの削除: ...

## terraform plan サマリ
<!-- Plan: X to add, Y to change, Z to destroy. -->

## 影響範囲
- 環境: dev / stg / prd
- 想定ダウンタイム: なし / 数分
- ロールバック手順: ...

## レビュー時に見てほしいポイント
<!-- 自信がない箇所、議論したい箇所 -->

議論の進め方