YAML 없이 Python으로 AWS 배포, Stelvio 써보기

Python으로 AWS에 올릴 때마다 YAML과 수많은 설정 파일에 지치는 분들 많죠. “코드는 파이썬인데 인프라는 왜 이렇게 복잡하지?”라는 질문에 꽤 명쾌한 답을 주는 오픈소스가 바로 Stelvio예요.
Stelvio는 무엇을 해결하나요: 순수 Python으로 AWS 배포
Stelvio는 순수 Python 코드만으로 AWS 애플리케이션을 만들고 배포할 수 있게 해주는 오픈소스 프레임워크예요. 핵심 메시지는 “Ship Python to AWS in minutes, not days”로, 인프라를 위한 별도 DSL(도메인 전용 언어)이나 복잡한 YAML 없이도 서버리스 중심 앱을 빠르게 구성하는 데 초점이 있어요.
보통 IaC(Infrastructure as Code, 코드로 인프라 관리) 도구를 쓰면 IAM, 네트워킹, 권한 같은 것들이 발목을 잡는데, Stelvio는 그 부분을 **스마트 기본값(Smart Defaults)**으로 많이 가려줘요. 즉, 팀에 AWS 고수가 없더라도 “일단 돌아가는” 배포를 만드는 진입장벽을 낮춰줍니다.
또 stlv라는 CLI를 중심으로 흐름이 잡혀 있어서, 개발자는 애플리케이션 로직에 집중하고 나머지 연결(wiring)은 프레임워크가 맡는 구조예요.
왜 중요한가요: Smart Defaults + Automatic Permissions
Stelvio의 차별점은 단순히 “파이썬으로 인프라 정의”를 넘어, 권한과 리소스 연결을 자동화한다는 데 있어요. 예를 들어 함수(Lambda)가 DynamoDB 테이블을 쓰게 하려면 원래는 IAM 정책을 만들고, 환경 변수를 넣고, 권한 범위를 조정하는 단계가 필요하잖아요.
그런데 Stelvio는 리소스를 함수에 “전달(pass)”하는 방식으로 연결하면, 필요 권한과 환경 변수 구성이 자동으로 잡히는 방향을 제시해요. 이게 왜 유용하냐면, 작은 프로젝트나 PoC에서 특히 “권한 설정하다가 하루 날리는” 일을 줄여주기 때문이에요.
물론 자동화가 불안한 분도 있을 텐데, Stelvio는 “필요하면 하위 Pulumi 리소스로 탈출(escape hatch)”할 수 있게 열어둔다고 명시해요. 즉, 쉬운 길로 시작하고 복잡해지면 컨트롤을 더 가져가는 방식이 가능합니다.
어떤 AWS를 다루나요: 서버리스 핵심 컴포넌트 중심
지원 컴포넌트가 실전에서 많이 쓰는 AWS 서비스 위주로 구성되어 있는 것도 포인트예요. 문서 링크와 함께 다음을 제공한다고 정리되어 있어요.
Function(AWS Lambda): 이벤트 기반 실행이 필요한 API/배치에 기본이 돼요.Public API(API Gateway): 외부에 REST 엔드포인트를 빠르게 노출할 때 유용해요.Scheduled Tasks(EventBridge Cron): 정기 정리 작업(예: 1분마다 cleanup) 같은 운영 자동화에 좋아요.Object Storage(S3): 파일 업로드/다운로드, 로그 적재 등 범용 저장소로 자주 써요.NoSQL Database(DynamoDB): 서버리스 조합에서 가장 흔한 키-값/문서 저장 패턴이에요.Message Queues(SQS),Pub/Sub Topics(SNS): 비동기 처리, 작업 분리, 트래픽 흡수에 필수예요.Email(SES): 인증/알림 메일 발송 같은 기능을 제품에 붙일 때 빠르게 연결할 수 있어요.
결국 “웹 API + 비동기 처리 + 스케줄 작업 + 저장소” 같은 전형적인 서버리스 구성을 한 프레임워크 안에서 일관되게 다룰 수 있다는 뜻이에요.
실제 사용 시나리오: stlv dev로 개발, stlv deploy로 배포
README 예시는 “인프라 + 앱 로직을 한 파일에서 정의”하는 스타일을 보여줘요. DynamoDB 테이블을 만들고, 1분마다 도는 Cron을 붙이고, API Gateway에 여러 라우트를 연결하는 흐름이 한 번에 이어집니다. 특히 links=[...] 같은 방식으로 리소스를 연결하는 형태가 눈에 띄는데, 이 지점이 Automatic Permissions로 이어지는 설계로 보시면 돼요.
개발 흐름에서 실용적인 건 **Live Dev Mode**예요. stlv dev를 실행하면 코드 변경을 즉시 동기화(sync)해 “배포 기다리는 시간”을 줄여준다고 해요. 예를 들어 /todos API의 핸들러 로직만 빠르게 반복 수정해야 할 때, 인프라 재배포 비용 없이 개발 속도를 확 끌어올리는 그림이죠.
그리고 배포는 stlv deploy로 정리됩니다. 로컬에서 잘 돌던 코드를 AWS에 올리는 과정이 단순해지면, 개인 프로젝트뿐 아니라 작은 팀에서도 배포 자동화를 더 빨리 표준화할 수 있어요.
2분 Quick Start: uv 기반으로 바로 시작하기
문서에는 2분 내 시작을 목표로 한 Quick Start가 제시돼요. 흐름은 아래처럼 간단합니다.
uv init my-todo-api && cd my-todo-api- 프로젝트를 빠르게 생성하고 가상환경/의존성 관리를 정리하는 단계예요.
uv add stelvio- 프로젝트에
stelvio를 의존성으로 추가해요.
- 프로젝트에
uv run stlv initStelvio프로젝트 구조를 초기화해, “어디에 뭘 두고 시작할지”를 잡아줍니다.
uv run stlv deploy- 실제 AWS 배포까지 한 번에 가져가는 명령이에요.
또 GitHub Codespaces 링크도 제공해서, 로컬 세팅이 번거로운 분들은 브라우저에서 바로 실습 환경을 열어서 확인할 수도 있어요.
마무리: YAML 없는 AWS, 어디까지 통할까요?
Stelvio는 “파이썬 개발자가 AWS 서버리스를 더 빨리 제품화하도록” 설계된 도구로 보여요. 특히 IAM/권한/연결 설정에 드는 인지 비용을 줄이고, stlv 중심의 개발 경험을 제공한다는 점이 매력적입니다.
만약 여러분이 “API 하나 배포하는데 인프라 설정이 더 오래 걸린다”는 상황을 자주 겪는다면, 이번 주말에라도 uv로 프로젝트 하나 만들어 stlv dev → stlv deploy까지 한 번 돌려보세요. 실제로 손에 익었을 때, 여러분 팀의 배포/실험 속도가 얼마나 달라지는지 체감할 수 있을 거예요.






