AWS Cloud School 13기 118일차

Forever 김·2026년 6월 25일

AWS Cloud School

목록 보기
111/116

2026-06-25

Today

  • [5-4] prod 카나리 실주행 검증 (rev2 env변경 / rev3 이미지bump)
  • Backend CI 버그 수정 → prod 자동승격 복구 (ecr:DescribeImages)
  • runc 빌드 flapping 근본원인 규명 → B-lite 결정
  • 공유용 문서 대정비 (§8 삭제·재번호·트리거 표·"완료된 것만" 정책)
  • AI staleness 해결 확인 (ECS=EKS prod-0511ae7f)
  • 5개 레포 pull

Notes

  • [5-4] 카나리 실주행 검증 완료 — Rollout revision 이력으로 확인: rev2(02:59, OTel env 변경이 파드템플릿 바꿔 카나리 트리거 → AnalysisRun step2·step5 Successful·100% 완주, 에러율 게이트 통과) + rev3(수동 bump PR#104 ae0ed59→e5ff39a카나리 100% 완주 실측: 10%→게이트(step2)✅→50%→게이트(step5)✅→100%, 전 파드 e5ff39a 수렴). 진행 중 e5ff39a(canary) + ae0ed59(stable) 공존 → 완주 후 전부 e5ff39a. EKS=ECS 동일 버전 수렴. ⚠️"카나리 한 번도 안 돎" 가설 정정 — env 변경으로 이미 돌았었음. north-south 실 트래픽 분배만 cut-over 후(옵션 A).
  • Backend CI 버그(ecr:DescribeImages) → prod 자동승격 복구farmily-cicd-backend-role 인라인정책에 ecr:DescribeImages 누락 → dev이미지 존재확인 AccessDenied(2>/dev/null 삼킴)로 항상 skip = 그동안 수동승격한 진짜 원인([2-5]). 라이브 정책 확인 후 CLI put-role-policy로 추가·검증(백업 보관). gh run rerun 28143495808 재실행 → gitops-update-prod success(승격) + deploy-ecs-prod success(ECS에 e5ff39a) + Infra 승격 PR 자동생성. ⚠️ 역할이 terraform 밖(수동) → IaC화 백로그.
  • runc 빌드 flapping 근본원인 — tf-agent terraform 빌드 무한멈춤 = OOM 아님(라이브측정 메모리 여유·dmesg 0건). 진범 = dockerd runc: cwd outside mount namespace, possible container breakout = docker exec 거부(Docker25+containerd2.2+runc1.3.5 스큐+teardown 경합). 해결=B-lite(빌드 에이전트 EKS 파드化). 상세 트러블슈팅 문서 신설.
  • 공유용 대정비 — §8 "현재 상태" 삭제(상태=Daily/PROJECT_CONTEXT)·§9→§8 재번호·§2 트리거 표 추가·카나리/CI한계/B-lite 등 계획·한계 제거("완료된 것만" 정책). 메타 지시문서도 갱신.
  • AI staleness 해결 확인 — ECS·EKS AI 둘 다 prod-0511ae7f(OTel 빌드). [2-6]/세윤 백로그 제거.

Learned

  • 카나리 트리거 = 파드 템플릿 변경(이미지 OR env). 이미지 안 바꿔도 env 추가로 카나리가 돈다(rev2가 그 예). 폴더/Application 변경은 트리거 X.
  • "process never started" ≠ OOM. OOM은 돌다 죽는 것, 이건 기동 실패 → 앱로그 말고 journalctl -u docker(인프라 로그)를 봐라. 진범은 runc였다.
  • IAM 정책 한 줄 누락이 자동화 전체를 조용히 막는다. 2>/dev/null이 AccessDenied를 삼켜 "이미지 없음"으로 오판 → 승격 skip. 에러 삼키는 코드 + 권한 누락 조합 위험.
  • 증상으로 단정 말고 라이브 측정. "4GB·checkov=OOM" 그럴듯했지만 멈춘 순간 free/dmesg 한 번이 가설을 깼다.

Prompt(회고)

  • 정말 제대로 Jenkins와 ArgoCD를 붙여서 해보자니 너무 어려운거 같다. 잘 모르는것도 많고 이렇게 하는 것이 맞는건지 내가 올바른 방향으로 가고 있는건지 의심이 많아진다.
  • 모니터링도 지금 프로젝트에선 AWS이니깐 AWS 서비스를 잘쓰는게 좋은건지 아니면 그냥 내가 셀프호스팅이 좋은건지... 조금 어렵다.
profile
나를 한줄로

0개의 댓글