EROKE ORIGINAL WEBBOOK

코드로 운영하는 클라우드 인프라

전체 목차22개 장
  1. 코드로 운영하는 클라우드 인프라: 1장. IaC는 자동 생성보다 변경 통제다
  2. 코드로 운영하는 클라우드 인프라: 2장. 계정과 환경을 경계로 나눈다
  3. 코드로 운영하는 클라우드 인프라: 3장. Repository와 module 책임을 정한다
  4. 코드로 운영하는 클라우드 인프라: 4장. State는 민감한 정본이다
  5. 코드로 운영하는 클라우드 인프라: 5장. State 암호화와 키 수명을 설계한다
  6. 코드로 운영하는 클라우드 인프라: 6장. Provider와 dependency를 고정한다
  7. 코드로 운영하는 클라우드 인프라: 7장. Plan을 위험 diff로 읽는다
  8. 코드로 운영하는 클라우드 인프라: 8장. VPC를 packet 경로로 배운다
  9. 코드로 운영하는 클라우드 인프라: 9장. Ingress와 egress를 분리한다
  10. 코드로 운영하는 클라우드 인프라: 10장. IAM은 요청 주체와 행동으로 설계한다
  11. 코드로 운영하는 클라우드 인프라: 11장. Secret을 state와 log에서 지킨다
  12. 코드로 운영하는 클라우드 인프라: 12장. DNS·TLS를 독립 수명주기로 관리한다
  13. 코드로 운영하는 클라우드 인프라: 13장. Data resource는 lifecycle을 다르게 한다
  14. 코드로 운영하는 클라우드 인프라: 14장. Policy as Code로 기본값을 보호한다
  15. 코드로 운영하는 클라우드 인프라: 15장. Drift를 탐지하고 소유권을 회복한다
  16. 코드로 운영하는 클라우드 인프라: 16장. CI/CD 권한을 최소화한다
  17. 코드로 운영하는 클라우드 인프라: 17장. 변경을 단계적으로 배포한다
  18. 코드로 운영하는 클라우드 인프라: 18장. 비용을 plan의 품질 속성으로 본다
  19. 코드로 운영하는 클라우드 인프라: 19장. 재해 복구는 새 환경 생성 시험이다
  20. 코드로 운영하는 클라우드 인프라: 20장. Import와 legacy 인프라를 안전하게 흡수한다
  21. 코드로 운영하는 클라우드 인프라: 21장. Multi-region은 마지막에 증명한다
  22. 코드로 운영하는 클라우드 인프라: 22장. 최종 캡스톤과 출간 게이트

OpenTofu·AWS VPC·IAM·State·Drift·정책·복구 실전

plan, state, network, IAM과 복구를 익힌다.

상태: 출간 후보 웹교정쇄 · 자동 QA 통과 · AWS·보안 감수 대기 · 22개 장

OpenTofu·AWS VPC·IAM·State·Drift·정책·복구 실전

기준일: 2026-08-14 · 상태: 출간 후보 웹교정쇄 · 자동 QA 후 사람 현장 감수 대기

FieldPass staging 인프라를 plan과 승인 증거로 재현하고 안전하게 변경·복구한다. 대상 독자는 콘솔로 AWS를 구성했지만 network·IAM·state와 변경 영향이 불안한 개발자다. 기능을 따라 입력하는 데서 끝내지 않고 결정의 전제, 실패, 증거와 rollback을 한 세트로 남긴다. 숫자·한도·가격·UI는 영구 사실이 아니며 실습 직전 공식 문서를 다시 확인한다.

FieldPass는 방문 예약, 기사 배정, 사진, 결제와 정산을 가진 합성 B2B 서비스다. 여섯 권이 같은 tenant-demo, res-demo-101, run-demo-001을 사용한다. 따라서 도메인 결정이 API, telemetry, infrastructure, event와 edge에서 같은 의미인지 비교할 수 있다.

  1. npm run test로 여섯 위험 fixture를 실행한다.
  2. npm run build로 원고와 SVG를 재생성한다.
  3. lab/public/index.html을 열어 입력·판정·증거·원복을 같은 화면에 기록한다.
  4. 실제 cloud·domain 적용은 소유자 승인, 비용 상한과 별도 staging에서만 한다.

cd fieldpass-platform
npm run qa
npm start

먼저 version 9로 의도한 실패와 Problem Details를 확인하고 새 process에서 version 1로 성공·Outbox 대사를 실행한다. 실제 cloud·domain 변경은 소유자 승인과 비용 상한이 있는 staging에서만 한다.

동일 fixture로 실행한 FieldPass 실제 API 화면
동일 fixture로 실행한 FieldPass 실제 API 화면
인프라 변경 제어
인프라 변경 제어
요청과 egress 경로
요청과 egress 경로
State 보호와 복구
State 보호와 복구

module "fieldpass_network" {
  source = "./modules/network"
  environment = "staging"
  cidr = "10.40.0.0/16"
}

[{"address":"module.app","action":"replace","before":{"public":false},"after":{"public":true}}]

PLAN != APPLY
암호화 != 백업
private subnet != egress 차단
admin role != 일상 role

node --test test/platform-lab.test.mjs

npm run verify:iac는 OpenTofu 1.12.0 container로 실제 init·validate를 수행한다. terraform.tfvars.example을 복사하더라도 실제 passphrase를 추적 파일에 넣지 않는다. state·plan 암호화는 노출 위험을 줄이지만 backup, replay 방지와 key 복구를 대신하지 않는다는 문장을 runbook 첫 줄에 둔다.

교육 module은 public ingress 443, 합성 CIDR과 tag 계약만 제공한다. 다음 staging module에서 public exposure, wildcard IAM, data replacement와 NAT 비용을 plan JSON에서 자동 HOLD한다. apply 권한은 plan 권한과 분리하고 장기 access key 대신 승인된 short-lived identity를 쓴다.

복구 실습은 repository만 clone하는 것이 아니다. backend version, lock, encryption key, provider lockfile, DNS, artifact와 data backup을 이용해 빈 환경에서 최소 서비스를 재구성한다. RTO는 문서 숫자가 아니라 실제 timer와 막힌 quota·권한을 포함한다.

목차

  1. 1장. IaC는 자동 생성보다 변경 통제다
  2. 2장. 계정과 환경을 경계로 나눈다
  3. 3장. Repository와 module 책임을 정한다
  4. 4장. State는 민감한 정본이다
  5. 5장. State 암호화와 키 수명을 설계한다
  6. 6장. Provider와 dependency를 고정한다
  7. 7장. Plan을 위험 diff로 읽는다
  8. 8장. VPC를 packet 경로로 배운다
  9. 9장. Ingress와 egress를 분리한다
  10. 10장. IAM은 요청 주체와 행동으로 설계한다
  11. 11장. Secret을 state와 log에서 지킨다
  12. 12장. DNS·TLS를 독립 수명주기로 관리한다
  13. 13장. Data resource는 lifecycle을 다르게 한다
  14. 14장. Policy as Code로 기본값을 보호한다
  15. 15장. Drift를 탐지하고 소유권을 회복한다
  16. 16장. CI/CD 권한을 최소화한다
  17. 17장. 변경을 단계적으로 배포한다
  18. 18장. 비용을 plan의 품질 속성으로 본다
  19. 19장. 재해 복구는 새 환경 생성 시험이다
  20. 20장. Import와 legacy 인프라를 안전하게 흡수한다
  21. 21장. Multi-region은 마지막에 증명한다
  22. 22장. 최종 캡스톤과 출간 게이트