Stelvio:新しいPythonネイティブAWSツールがサーバーレスフレームワークの代替として登場

BigGo Editorial Team
Stelvio:新しいPythonネイティブAWSツールがサーバーレスフレームワークの代替として登場

Python開発者コミュニティでは、既存のソリューションに代わるものを求める開発者たちの間で、新しいAWSインフラストラクチャ管理ツール「 Stelvio 」が注目を集めています。現在アルファ版の初期段階にある Stelvio は、JSONの設定や他の言語ではなく、純粋なPythonコードを使用してAWSインフラストラクチャを定義できるようにすることで、Pythonデベロッパーのためのクラウドデプロイメントを簡素化することを目指しています。

Python AWS ツールの断片化された状況

AWSサーバーレスアーキテクチャを扱うPython開発者向けの現在のエコシステムは、顕著に断片化されています。コミュニティの開発者たちは、 Zappa 、 Chalice 、 Serverless Framework 、 AWS CDK 、 CloudFormation 、 AWS SAM など、それぞれに制限のある既存のソリューションを挙げています。これらのツールの多くは、放棄されたか、メンテナンスが不十分であるか、Pythonではない設定を必要とするか、あるいはPython開発者を特に念頭に置いて設計されていません。

「Pythonコミュニティには、この問題に対して5つほどの中途半端なソリューションがあり、それらはすべて放棄されているか、収益化が不十分か、UIが使いにくいというのは驚くべきことだと思います。」

この感想は、AWSにサーバーレスアプリケーションをデプロイしようとする際に多くのPython開発者が感じる不満を反映しています。最近の Serverless Framework がバージョン4で有料モデルに変更したという予期せぬ方針転換により、信頼できる代替手段を求める動きがさらに強まり、一部の開発者は一時的な解決策として osls などのコミュニティ維持フォークに言及しています。

現在議論されているPython AWS デプロイメントツール:

  • Stelvio (初期アルファ版) - Pythonネイティブのインフラストラクチャ・アズ・コード
  • Zappa - JSON設定を使用
  • Chalice - 放棄されたように見え、インフラストラクチャとアプリケーションコードを混合
  • Serverless Framework - 最近v4で有料モデルに移行
  • osls - オープンソースの Serverless Framework 代替品
  • AWS CDK - より冗長だが包括的
  • CloudFormation - 低レベルの AWS テンプレート言語
  • AWS SAM - サーバーレス向けに簡素化された CloudFormation
  • Mangum - ASGI アプリを Lambda デプロイメント用にラップ

Stelvio の現在の機能:

  • AWS Lambda サポート
  • Amazon DynamoDB 統合
  • API Gateway 設定
  • 自動化された IAM ロール/ポリシー管理
  • Pythonネイティブの設定

Stelvio v0.2.0 の今後の予定(2025年4月):

  • Lambda の依存関係とレイヤー
  • DynamoDB インデックス
  • CORS サポート
  • API Gateway オーソライザー

Stelvio の開発者優先アプローチ

Stelvio は、インフラストラクチャの専門家ではなく、特にPython開発者に焦点を当てることで差別化を図っています。このツールの作成者である Michal 氏は、 AWS CDK が CloudFormation や Terraform に比べて大幅な改善であったものの、インフラストラクチャツールはさらに開発者にとって使いやすくすることができると説明しています。

Stelvio のアプローチは、インテリジェントなデフォルト設定を通じて最小限のボイラープレートコードを強調しています。例えば、API Gatewayとの統合を持つDynamoDBテーブルの作成には、わずか数行のPythonコードしか必要としません。これにより、IAMポリシー、ロール、API Gatewayリソース、メソッド、統合、CloudWatchロググループの作成が自動的に処理されます。これらは AWS CDK ではかなり多くのコードを必要とする作業です。

Stelvio の重要な設計原則は、デコレーターやその他のメカニズムを通じてそれらを混在させる一部の代替手段とは異なり、インフラストラクチャコードとアプリケーションコードの分離です。この明確な分離は、Python開発者が期待するシンプルさを維持しながら、ソフトウェアエンジニアリングのベストプラクティスに沿っています。

現在の機能と将来のロードマップ

現在、 Stelvio は AWS Lambda 、 Amazon DynamoDB 、 API Gateway 、および自動化されたIAM設定をサポートしています。開発者によると、バージョン0.2.0は2025年4月に予定されており、lambdaの依存関係とレイヤー、DynamoDBインデックス、CORS、およびAPI Gatewayオーソライザーのサポートが含まれる予定です。バージョン0.3.0では専用のCLIツールが導入される予定です。

現在の実装はサーバーレスコンポーネントに焦点を当てていますが、開発者は初期のLambda/API/DynamoDBの提供を超えて、より広範なAWSサービスのカバレッジの計画を示しており、VPC設定、NATゲートウェイ、セキュリティグループなどが含まれる可能性があります。また、 AWS を超えて Cloudflare などのサービスへの拡張の可能性についても言及されています。

コミュニティの反応と継続的な議論

Python開発者の間での反応は概ね肯定的で、多くの人が馴染みのあるPython構文を使用してAWSインフラストラクチャ管理を簡素化するツールに関心を示しています。現在API Gatewayの作成に苦労している一部の開発者は、 Stelvio が本番環境に対応した際に採用する意向を示しています。

しかし、コミュニティの議論では、アーキテクチャの選択についての継続的な議論も明らかになっています。一部の開発者は、LambdaとDynamoDBに焦点を当てることに疑問を呈し、アプリケーションが成熟し要件が進化するにつれて、従来のサーバーとリレーショナルデータベースの方がより適切に対応できるかもしれないと提案しています。他の開発者は、直接 boto3 を使用するのではなく Pulumi 上に構築する決定について質問し、それに対して開発者は状態管理やマルチクラウドの可能性などの利点を挙げています。

クラウドインフラストラクチャの複雑さが増す中、 Stelvio のようなツールは、インフラストラクチャの詳細を管理するよりもアプリケーションの構築に集中したい開発者にとって、デプロイメントをよりアクセスしやすくする試みを表しています。 Stelvio が他のツールが苦戦してきた場所で成功するかどうかはまだ分かりませんが、そのPythonネイティブのアプローチと開発者体験への焦点は、コミュニティにおける本物の課題に対応しているようです。

参考:Stelvio