클라우드·인프라
AWS 리소스 설계, IaC, 비용 최적화.
EKS Pod에 IAM 권한 주기 — IRSA vs Pod Identity
둘 다 Pod마다 다른 IAM 권한을 주려는 겁니다. IRSA는 클러스터마다 OIDC를 세팅하고, Pod Identity는 그 과정을 없앴습니다.
Lambda@Edge IAM — 리전 제약
함수는 us-east-1에만 있는데 콘솔이 서울 리전으로도 조회를 던집니다. ListFunctions는 리소스 제한이 안 돼서 Resource '*'가 강제되고, 다 맞아도 안 되면 상위 제약을 봐야 합니다.
Terraform S3 네이티브 락 — DynamoDB 제거
state 락 하나 때문에 DynamoDB 테이블을 따로 두고 있었습니다. OpenTofu 1.10 / Terraform 1.11부터 S3 conditional write로 락이 되어서 테이블을 지웠습니다.
terraform-aws-ec2-instance v5→v6 — root_block_device 형식 변경
Provider는 최신인데 모듈 버전이 그대로라 Unsupported argument가 났습니다. 모듈을 올리니 이번엔 root_block_device 형식이 리스트에서 객체로 바뀌어 있었습니다.
AWS 타겟 그룹 Unhealthy 알람 — EventBridge · Lambda
AWS 로드밸런서(ALB)의 타겟 그룹이 5분 이상 Unhealthy면 Slack으로 알리는 요구사항. CloudWatch Alarm은 타겟 그룹 개수만큼 알람이 생기는 구조라, EventBridge 폴링 + Lambda 하나로 갔습니다.
Terraform ForceNew — 가용 영역(AZ) 추가에 클러스터 전체 재생성
클라우드 관리형 쿠버네티스에서 가용 영역(AZ)을 하나 늘리려고 네트워크 모듈에 추가했더니, terraform plan이 클러스터와 노드풀을 전부 replace했습니다. 모듈이 모든 서브넷을 클러스터에 넘겨서, 서브넷 목록 변경이 ForceNew를 건드렸습니다.
OpenStack 앱 크리덴셜 — 발급 시점 역할 고정
역할을 추가하고 키를 재발급해도 floating IP 생성이 계속 PolicyNotAuthorized였습니다. OpenStack 앱 크리덴셜은 발급 순간의 역할 목록을 키 안에 그대로 저장해서, 나중에 역할을 바꿔도 반영되지 않습니다.
S3 삭제 감사 로그 유실 — append 동시성과 FIFO SQS
S3 라이프사이클로 지워진 파일을 스프레드시트에 기록하는 감사 파이프라인이 32건 중 25건만 남겼습니다. 모든 단계 지표는 32로 깨끗했는데, Lambda 컨테이너 재사용으로 append가 겹쳐 서로 덮었습니다. FIFO SQS에 단일 MessageGroupId로 직렬화해 해결했습니다.
S3 CORS — 와일드카드 한 단계와 presigned POST
브라우저 업로드가 CORS로 막혔습니다. S3 CORS의 AllowedOrigins 와일드카드는 한 단계 라벨만 매칭해서 두 단계 서브도메인을 못 잡았고, 규칙이 PUT만 허용해서 presigned POST 업로드를 안 덮었습니다.
검색 결과가 없습니다.