AWS Chaliceの導入と設定手順

はじめに

AWS Chaliceは、Pythonで簡単にサーバーレスアプリケーションを開発・デプロイできるフレームワークです。AWS LambdaやAPI Gatewayと連携し、少ないコード量でAPIを作成できます。本記事では、AWS Chaliceの導入方法からプロジェクトの作成、ローカル実行、デプロイ手順までを詳しく解説します。加えて、uv を使った仮想環境の構築手順についても説明します。Chaliceを活用することで、より効率的にサーバーレス開発を進められるようになるでしょう。

公式サイト: https://aws.github.io/chalice/index

1. AWS Chaliceとは?

1-1 AWS Chaliceの概要

AWS Chalice は、AWSが提供するPython向けのサーバーレスフレームワークです。Flaskのようなシンプルな記述で、AWS LambdaやAPI Gatewayを活用したAPIを簡単に作成できます。

1-2 AWS Chaliceのメリット

  • 簡単な構築: chalice new-project でプロジェクトをすぐに作成可能
  • 自動デプロイ: chalice deploy でAWS環境に即時反映
  • API Gatewayとの連携: ルーティング設定が容易
  • ローカルテスト機能: chalice local で手軽に動作確認

2. AWS Chaliceの導入

2-1 事前準備(AWSアカウント、IAM設定)

Chaliceを利用するには、AWSアカウントが必要です。また、適切な権限を持つIAMユーザーを作成し、AWS CLI で認証情報を設定しておきましょう。

aws configure

上記のコマンドで、AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY を設定します。

2-2 uv を使ったPython環境のセットアップ

AWS ChaliceはPython 3.10以上が推奨されています。今回は uv を使ってPythonの仮想環境を作成し、Chaliceをインストールします。

Python 3.10 の仮想環境を作成

Python 3.10の仮想環境を作成し、有効化します。

uv venv .venv --python 3.10

# macOS/Linuxの場合
source .venv/bin/activate

# Windowsの場合は以下を実行
.venv\Scripts\activate

2-3 AWS Chaliceのインストール

仮想環境が有効な状態で、以下のコマンドを実行してAWS Chaliceをインストールします。

uv pip install chalice

インストール後、以下のコマンドでバージョンを確認しましょう。

chalice --version

3. AWS Chaliceプロジェクトの作成

3-1 Chaliceプロジェクトの初期化

新しいプロジェクトを作成するには、以下のコマンドを実行します。

chalice new-project myproject
cd myproject

このコマンドにより、myproject ディレクトリが作成され、必要なファイル群が自動生成されます。

3-2 アプリケーションの作成とローカル実行

アプリのエントリーポイントは app.py です。以下のように編集しましょう。

from chalice import Chalice

app = Chalice(app_name="myproject")

@app.route("/")
def index():
    return {"message": "Hello, AWS Chalice!"}

ローカル環境で動作確認するには、以下のコマンドを実行します。

chalice local

これで、http://localhost:8000/ にアクセスすると、{"message": "Hello, AWS Chalice!"} のレスポンスが得られます。

4. AWSへのデプロイ手順

4-1 AWS環境へのデプロイ

AWSにデプロイするには、以下のコマンドを実行します。

chalice deploy

実行後、API Gatewayのエンドポイントが出力されます。

4-2 API GatewayとLambdaの連携

デプロイすると、自動的にAWS LambdaとAPI Gatewayが連携します。APIのエンドポイントは以下のようになります。

https://abcd1234.execute-api.us-west-2.amazonaws.com/api/

このURLをブラウザやcurlで確認すると、デプロイしたAPIの動作を確認できます。

curl https://abcd1234.execute-api.us-west-2.amazonaws.com/api/

5. 開発をスムーズに進めるポイント

5-1 ログの確認とデバッグ方法

AWS CloudWatchを利用すると、Lambdaのログを確認できます。以下のコマンドで直近のログを表示できます。

chalice logs

5-2 CI/CDパイプラインとの統合

GitHub ActionsやAWS CodePipelineを利用すると、デプロイを自動化できます。

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout Code
        uses: actions/checkout@v2
      - name: Setup Python
        uses: actions/setup-python@v2
        with:
          python-version: '3.10'
      - name: Install Chalice
        run: pip install chalice
      - name: Deploy to AWS
        run: chalice deploy

まとめ

AWS Chaliceを使うことで、Pythonを用いたサーバーレスAPIを手軽に構築・デプロイできます。仮想環境の管理にはuv を活用することで、よりスムーズに環境構築が可能です。詳細なドキュメントについては、公式サイト を参照してください。AWS Chaliceを活用して、効率的なサーバーレス開発を始めてみましょう!