Skip to content

1 API Gateway #69

@laysakura

Description

@laysakura

質問3: 複数のSAMアプリケーションとAPI Gatewayの管理に関するベストプラクティス
複数のSAMアプリケーションを管理する場合、以下の3つのアプローチが考えられます:

  1. 各アプリケーションが独自のAPI Gatewayを持つ(現在の方法)
    メリット:

アプリケーション間の独立性が高い
ローカル開発が容易(各チームが自分のAPIを完全に制御できる)
デプロイの影響範囲が限定的
デメリット:

AWS リソースの重複(コスト増加)
複数のAPIエンドポイントをクライアントが管理する必要がある
共通機能(認証など)の重複実装
2. 共有API Gatewayを使用し、各アプリケーションがエンドポイントを追加
メリット:

リソースの効率的な使用
単一のエンドポイントでクライアント管理が容易
共通機能の一元管理
デメリット:

アプリケーション間の依存関係が生じる
ローカル開発が複雑になる
デプロイの調整が必要(複数チーム間)
3. ハイブリッドアプローチ
開発環境では独立したAPI Gateway、本番環境では共有API Gatewayを使用する方法です。

メリット:

開発の容易さと本番環境のリソース効率のバランスが取れる
チーム間の独立性を保ちながら、本番環境では統合管理できる
デメリット:

環境間の差異が生じる
設定とデプロイプロセスが複雑になる
推奨アプローチ
ローカル開発の容易さを重視するなら、ハイブリッドアプローチが最適と考えられます:

開発環境:各アプリケーションが独自のAPI Gatewayを持つ
本番環境:共有API Gatewayを使用し、各アプリケーションは特定のパス(例:/log-analysis、/other-app)を担当
これにより、開発の独立性を保ちながら、本番環境ではリソースを効率的に使用できます。実装方法としては、環境変数やパラメータを使用して、環境ごとにデプロイ設定を切り替えることができます。

また、API Gateway v2(HTTP API)を使用すると、コスト削減とパフォーマンス向上が期待できます。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions