Show HN: Stelvio – Python을 AWS에 배포

발행: (2026년 2월 3일 오전 12:12 GMT+9)
5 분 소요

Source: Hacker News

인프라를 파이썬으로. YAML은 없습니다. 스마트 기본값.
전체 제어.

시작하기 →

pip install stelvio

AWS Cloudflare Pulumi Python

AWS Lambda에 Python 함수 배포하기

from stelvio.aws.function import Function
from stelvio.aws.s3 import Bucket

bucket = Bucket("reports")

# Link grants permissions automatically
Function(
    "processor",
    handler="functions/process.handler",
    links=[bucket],
)

Lambda 함수에 대해 자세히 알아보기 →

Lambda 함수 스케줄링

from stelvio.aws.cron import Cron

Cron(
    "hourly-cleanup",
    "rate(1 hour)",
    "functions/cleanup.handler",
)

Cron(
    "daily-report",
    "cron(0 9 * * ? *)",
    "functions/report.handler",
)

이벤트 스케줄링에 대해 자세히 알아보기 →

S3 버킷으로 데이터를 안전하게 저장하기

from stelvio.aws.s3 import Bucket

# Create a bucket that triggers a function on new uploads
uploads = Bucket("user-uploads")
uploads.notify(
    "functions/process_upload.handler",
    events=["s3:ObjectCreated:*"],
)

​S3 버킷에 대해 자세히 알아보기 →

자동 권한이 부여된 DynamoDB 테이블 생성

from stelvio.aws.dynamo_db import DynamoTable
from stelvio.aws.function import Function

table = DynamoTable(
    name="users",
    partition_key="user_id",
    sort_key="created_at",
)

Function(
    "user-handler",
    handler="functions/user.handler",
    links=[table],
)

DynamoDB에 대해 자세히 알아보기 →

SQS 큐와 SNS 토픽으로 서비스 분리

from stelvio.aws.queue import Queue
from stelvio.aws.topic import Topic

orders = Queue("orders")
orders.subscribe(
    "processor",
    "functions/process_order.handler",
)

alerts = Topic("alerts")
alerts.subscribe(
    "notifier",
    "functions/send_alert.handler",
)

SQS 큐에 대해 자세히 알아보기 →
SNS 토픽에 대해 자세히 알아보기 →

Amazon SES를 사용하여 대량 이메일 보내기

from stelvio.aws.email import Email
from stelvio.aws.function import Function

mailer = Email(
    "support-email",
    "support@example.com",
)

Function(
    "sender",
    handler="functions/send.handler",
    links=[mailer],
)

이메일에 대해 자세히 알아보기 →

API Gateway로 REST API 정의

from stelvio.aws.apigateway import Api

api = Api(
    "payment-api",
    domain_name="api.example.com",
)

api.route("POST", "/charge", handler="functions/charge.post")
api.route("GET",  "/history", handler="functions/history.get")

API Gateway에 대해 자세히 알아보기 →

사용자 지정 도메인에 리소스 연결 (자동 SSL)

app = StelvioApp(
    "my-app",
    dns=CloudflareDns("your-cloudflare-zone-id")
    # other configurations...
)

라우터를 사용해 하나의 커스텀 도메인 아래 여러 리소스 결합하기

domain_name = "example.com"

bucket = Bucket("static-files-bucket")

api = Api("my-api")
api.route("GET", "/api", "functions/hello.handler")

router = Router("router-example", custom_domain=domain_name)
router.route("/files", bucket)
router.route("/api",   api)

라우터에 대해 자세히 알아보기 →

AWS에 Python을 배포할 준비가 되셨나요?
Stelvio와 함께 시작하고 Python에게 무거운 작업을 맡기세요.

Stelvio를 직접 확인하세요

Stelvio가 간단한 스크립팅과 복잡한 인프라 사이의 격차를 어떻게 메우는지 확인해 보세요. 여러분이 사랑하는 언어로 서버리스 애플리케이션을 구축하세요.

✨ Features

🐍 Pure Python새로운 언어를 배울 필요가 없습니다. Python을 안다면 Stelvio도 알게 됩니다. IDE, 린터, 타입‑체커가 그대로 작동합니다.
Smart Defaults바로 사용할 수 있는 합리적인 설정. 간단한 것은 간단하게 유지하고, 필요할 때만 설정을 추가합니다.
🔗 Automated Permissions함수를 데이터베이스에 한 줄로 연결합니다. IAM 정책과 환경 변수가 자동으로 설정됩니다 – 이를 링킹이라고 부릅니다.
🔄 Live Dev Modestlv dev는 인프라가 AWS에 남아 있는 동안 로컬에서 Lambda 코드를 실행합니다. 매 변경마다 재배포할 필요가 없습니다.
🎛️ Full Control필요할 때 언제든 기본값을 재정의할 수 있습니다. Pulumi 리소스에 직접 접근해 완전한 커스터마이징이 가능합니다.
📖 Open SourceApache 2.0 라이선스. 영구 무료. 자신 있게 기여하고, 포크하거나 자체 호스팅할 수 있습니다.

시도해 볼 준비가 되셨나요?
stlv dev를 실행해 로컬에서 마법을 확인하고, 준비가 되면 자신 있게 배포하세요.

출시 준비 완료?

첫 번째 Lambda 함수를 5분 이내에 배포하세요.

배포 시작 →

블로그 읽기

Back to Blog

관련 글

더 보기 »

줄리아

기사 URL: https://borretti.me/fiction/julia 댓글 URL: https://news.ycombinator.com/item?id=46863357 점수: 28 댓글: 3...

xAI가 SpaceX에 합류

번역하려는 텍스트를 직접 제공해 주시겠어요? URL만으로는 내용을 확인할 수 없습니다. 텍스트를 복사해서 알려주시면 한국어로 번역해 드리겠습니다.