8월 10일 주는 플랫폼 팀이 손으로 내리던 결정을 AWS가 대신 떠맡는 주였고, 그중 둘은 기본값을 받아들이기 전에 한 번 더 들여다볼 가치가 있다. EC2 애플리케이션 상태 검사는 EC2 자체가 인스턴스의 HTTP 엔드포인트를 찔러 보고 그 결과를 Auto Scaling에 넘기게 하고, IAM role manager는 GA되어 콘솔을 클릭해 나가는 동안 서비스에 필요한 IAM 역할을 만들어 준다. 이번 주의 다른 소식으로, ACM이 이메일 검증 종료에 날짜를 박았고, MSK는 클러스터를 ZooKeeper에서 KRaft로 제자리에서 마이그레이션하는 법을 배웠다. 이번 주에는 AWS Transform 출시가 없었다. 모더나이제이션 항목은 MSK 건과 더 조용한 Elastic Disaster Recovery 수정이었다.

EC2 애플리케이션 상태 검사: 로드 밸런서 없는 헬스 체크

지금까지 EC2에는 두 가지 상태 검사가 있었다. 시스템(호스트)과 인스턴스(게스트 OS). 새 애플리케이션 상태 검사는 세 번째 계층을 더한다. 프로토콜, 포트, 경로와 정상으로 칠 응답 코드를 정의하고, ID나 태그로 인스턴스에 검사를 연결하면, EC2가 60초마다 HTTP 또는 HTTPS 요청을 보내고 결과를 다른 둘 옆에 보고한다. Auto Scaling 그룹은 이 검사에 실패한 인스턴스를 교체할 수 있다. 모든 상용 리전과 GovCloud (US)에서 쓸 수 있다.

당연한 질문은 ALB 타깃 그룹이 이미 같은 경로를 헬스 체크하는데 왜 이것이 필요하냐는 것이다. 답은 로드 밸런서 뒤에 있지 않은 모든 인스턴스다. SQS에서 끌어오는 워커, 스케줄러, 인스턴스는 계속 ICMP에 응답하는데 데몬은 죽은 Docker 호스트. 그런 장비는 오늘 EC2가 가진 모든 신호로는 "정상"이고, 온콜은 고객을 통해 그렇지 않다는 것을 알게 된다. 설계해야 할 실패 모드는 반대쪽이다. 다운스트림(데이터베이스, 캐시)에 의존하는 헬스 엔드포인트는 다운스트림이 잠깐 흔들릴 때 플릿 전체를 날린다. ASG가 멀쩡한 인스턴스를 교체해 버리기 때문이다. 검사 경로는 얕게 유지하고, 태그 기반 연결은 태그 오타 하나로 플릿 절반이 조용히 검사에서 빠질 수 있으니 롤아웃 뒤에 aws ec2 describe-instance-status로 감사하라.

IAM role manager: 편리하지만 Lambda 기본값이 넓다

Role manager는 지원되는 콘솔(출시 시점에 여섯 개, Lambda와 EventBridge 포함)에서 당신이 설정하는 것을 지켜보다가, 새 AcquireRole API로 AWS 관리형 역할 템플릿과 대조해 기본 역할을 만들거나 계정에 이미 있는 맞는 역할을 재사용한다. 그 역할은 당신이 완전히 제어하는 평범한 IAM 역할이고, IAM 콘솔의 계정 수준 설정 하나이며, 새 AWS 경험으로 만든 계정에서는 기본으로 켜져 있다. GovCloud (US)와 중국에서는 쓸 수 없다.

결정을 좌우해야 할 세부 사항은 보안 블로그 글에 있다. Lambda 함수의 권한은 코드가 존재하기 전에는 알 수 없으므로, 함수가 받는 역할에는 PowerUserAccess가 붙는다. IAM, Organizations, 계정 설정은 빠지지만 나머지는 전부 들어간다. AWS의 답은 나중에 IAM Access Analyzer를 돌려 좁히라는 것이다. 개발자 샌드박스 이야기로는 합리적이고 프로덕션 이야기로는 나쁘다. "나중에"는 결코 출시되지 않는 단계이기 때문이다. 계정이 이미 Terraform이나 CDK로 역할을 프로비저닝하고 있다면 끄고, 멤버 계정이 다시 켜지 못하도록 SCP를 써라. 그 글은 SCP로 막을 수 있다고 확인해 준다. 샌드박스에서는 켜 두고 싶다면, 같은 주에 나온 account access manager와 짝지어라. 계정의 IAM 역할을 Identity Center 사용자와 그룹에 할당해 주므로, 적어도 그 넓은 역할을 쥔 사람들은 페더레이션된다.

ACM 이메일 검증은 2027년에 끝나고, 날짜는 단계별이다

CA/Browser Forum의 2025년 11월 결정에 따라 ACM은 이메일로 검증한 퍼블릭 인증서 지원을 세 단계로 중단한다. 2027년 1월 1일 이후 새 리전에서는 이메일 검증 없음, 2027년 3월 31일 이후 어디서든 새 이메일 검증 요청 없음, 2027년 9월 30일 이후 기존 이메일 검증 인증서의 갱신 없음. 업계 기한 전에 발급된 인증서는 만료까지 유효하므로 그날 당장 깨지는 것은 없다. 깨지는 것은 1년 뒤의 갱신이고, 누가 요청했는지 아무도 기억하지 못하는 인증서에서 일어난다.

지금 하면 마이그레이션은 싸다. ACM 콘솔에서 검증 방식 Email, 유형 Amazon Issued로 필터링하거나 스크립트로 뽑은 뒤, 각 인증서를 aws acm update-certificate-options로 제자리에서 전환하라. ARN이 유지되므로 리스너나 배포를 편집할 필요가 없다. 72시간 창 안에 CNAME을 추가하면 ACM이 새 방식으로 갱신한다. HTTP 검증도 있지만 CloudFront에만 해당한다. 이것을 2027년 티켓이 아니라 3분기 티켓으로 다루라.

MSK: 새 클러스터 없이 ZooKeeper에서 KRaft로

Kafka 3.9.x는 ZooKeeper를 지원하는 마지막 라인이고 Kafka 4.x는 KRaft 전용이므로, 아직 ZooKeeper를 쓰는 모든 프로비저닝된 MSK 클러스터 앞에는 마이그레이션이 놓여 있다. MSK는 이제 그것을 제자리에서 한다. 새 인프라 없음, 데이터 복사 없음, 클라이언트 재구성 없음, 그리고 AWS에 따르면 그동안 클러스터는 계속 가용하다. 먼저 3.9.x에 있어야 한다. 유럽 소버린 클라우드를 제외하고 프로비저닝된 MSK가 도는 모든 곳에서 쓸 수 있다. 이것은 붙어 있는 기능이 없어서 결코 우선순위를 받지 못하는 종류의 모더나이제이션이고, 바로 그래서 버튼 하나짜리 경로가 중요하다. 한 분기짜리 프로젝트를 변경 창 하나로 바꾼다.

이번 주의 다른 소식

관통하는 맥락

애플리케이션 상태 검사와 role manager는 같은 움직임을 두 방향으로 한 것이다. 하나는 EC2가 당신의 애플리케이션을 관찰해 당신 대신 행동할 수 있게 하고, 다른 하나는 IAM이 아무것도 관찰하기 전에 당신 대신 행동하게 한다. 첫 번째는 좋은 거래다. 잘못된 헬스 체크의 폭발 반경은 플릿 하나이고 소리가 크다. 두 번째는 더 나쁜 거래다. 넓은 역할의 폭발 반경은 계정이고 소리가 없다. ACM 기한과 MSK 마이그레이션은 플랫폼 업무의 화려하지 않은 절반, 갱신과 버전 하한이 실제 장애가 사는 곳이라는 것을 다시 알려준다. 날짜가 박힌 세 항목은 이번 주에 캘린더에 올리고, role manager는 느긋하게 논쟁하라.

다음으로 읽을 글

같은 주의 AI와 에이전트 쪽 읽기는 ercan.ai의 필드 노트에 있다. AWS, 클라우드, CI/CD 파이프라인, Linux, GitHub/GitLab 등에 대한 컨설팅은 ercanermis.com을 통해 진행한다.

참고 자료