AppSailの基本
Catalyst Serverless FunctionsとAppSailサービスの比較
Catalyst FunctionsとAppSailはどちらも、メインの機能を含むソリューションのバックエンドロジックを構築できるServerlessの提供機能です。
以下は、Catalyst Serverless FunctionsとAppSailサービスの違いと類似点に関する注目すべきポイントです。ニーズに合った適切なコンポーネントを使用するために、これらを理解する必要があります。
| Catalyst Serverless Functions | AppSailサービス |
|---|---|
| 基本的または複雑なHTTP操作、イベント駆動型フロー、スケジュールされたジョブ実行、または統合のバックエンドロジックを構築するには、Catalyst Serverless Functionsを使用します。 | あらゆる要件に対応する独立したWebサービスを構築・デプロイするには、AppSailサービスを使用します。 |
| Functionsは通常、言語固有のSDKを通じてCatalystコンポーネントを組み込む密結合のアプリケーションロジックをパッケージ化します。 | AppSailアプリケーションでもコンポーネントSDKを実装できます。ただし、実装は自分で管理する必要があります。 |
| Catalyst Functionsは、Catalyst固有の定義済みコーディング構造を実装するため、Catalystプラットフォーム外では独立して動作できません。 | AppSailサービスは、フォーマットに関するCatalyst固有の制限なしに、必要に応じて自由に設計できる独立したエンティティです。 |
| Catalystは、Serverless Functionsに事前に組み込まれている依存関係の実装とメンテナンスを処理します。たとえば、Node.js Functionを初期化したときにデフォルトで含まれるnode modulesはCatalystによって実装されます。 | AppSailでは、サポートされているすべてのプラットフォームのコードで使用するフレームワーク、ライブラリ、プラグイン、依存関係、オーバーヘッドのすべての実装とメンテナンスを完全に自分で管理する必要があります。 |
| Serverless Functionsでは、Functionエンドポイントを呼び出すAPIコールが行われたときにコストが発生します。課金モデルは、Functionエンドポイントにアクセスするために行われたAPIコールの数に基づいて動作します。 | AppSailサービスは、アクティブに実行されているサーバーインスタンスの数に基づいてコストが発生します。つまり、アプリエンドポイントにアクセスするために直接行われたリクエストの数ではなく、インスタンスのアップタイムに対して課金されます。 |
| Serverless Functionsでは、インフラ、バックエンド、プラットフォームの管理を行う必要はありません。 | インフラの管理は行えません。ただし、デプロイ後にアプリインスタンスのプラットフォームを管理できます。 |
| Serverless Functionsを通じて、サポートされている任意のスタックやタイプの複数のFunctionを単一のプロジェクトにデプロイできます。 | AppSailを通じて、サポートされている任意のスタックやカスタムスタックの複数のアプリを単一のプロジェクトにデプロイできます。 |
AppSailサービスのCatalystマネージドランタイムとカスタムランタイムのデプロイ比較
以下の表は、AppSailサービスをCatalystマネージドランタイムとしてデプロイする場合とカスタムランタイムとしてデプロイする場合の違いを説明しています。Catalystにデプロイした後は、すべてのAppSailサービスとそのプラットフォームを同じ方法で設定・管理でき、すべてのアプリの統計とレポートを取得できます。
| Catalystマネージドランタイム | カスタムランタイム |
|---|---|
| アプリケーションのビルドファイルをAppSailに直接デプロイします。この方法では、コードのみをCatalystに送信し、Catalystマネージドランタイム用に構築されたプラットフォーム上での実行はCatalystが処理します。 | アプリケーションのコンテナイメージをデプロイしてCatalystでホスティングします。ローカルレジストリからイメージをデプロイするか、サポートされているコンテナレジストリサービスでホストされているイメージをデプロイできます。 |
| ランタイムはCatalystによって完全に管理されます。つまり、アプリの実行に必要なランタイムの実行ファイルやスタックの依存関係を管理する必要はありません。ただし、アプリのコードベースに含まれる依存関係は管理する必要があります。 | ランタイムの依存関係を含むすべての依存関係を管理する必要があります。アプリケーションに必要なバイナリをインストールし、ランタイムとOSの依存関係を自分で管理する必要があります。 |
| CatalystがネイティブにサポートするJava、Node、PythonのランタイムのWebサービスのみをデプロイできます。 | GoやPHPなどの任意のプログラミング環境やランタイム、さらにCatalystがネイティブにサポートしていないJava、Node.js、Pythonのランタイムでもデプロイできます。 |
AppSail実行の基本
AppSailでは、デプロイ後にアプリの実行プラットフォームを管理できます。アプリケーションが呼び出されると、処理されるリクエストの数に基づいて1つまたは複数のインスタンスで実行されます。
呼び出されたアプリケーションのサービスインスタンス生成のロジックを以下に説明します:
-
非アクティブなアプリケーションへの最初のリクエストが行われると、AppSailは新しいサーバーインスタンスを生成するための初期コールドスタート時間が必要です。これはサーバーレスプラットフォームの特徴であり、インスタンスはオンデマンドでのみ生成されます。
-
アプリの実行に設定したメモリとディスクサイズは、アプリが呼び出された後に使用されます。
-
アクティブなインスタンスのリクエストしきい値の80%が使用されると、AppSailは自動的にスケールアップして新しいインスタンスを生成し、新しいリクエストを処理します。負荷が減少すると、AppSailはスケールダウンして余分なインスタンスを終了します。
-
生成されたアプリインスタンスは、合計5分間アクティブになります。アプリへのリクエストが1つだけでも、インスタンスはその期間中アクティブな状態を維持します。
-
アプリがバグや障害を経験したり、デッドロック状態になった場合に、手動でサーバーインスタンスを終了するオーバーライドを実行できます。たとえば、無限ループバグなどの場合です。
アプリの一時的な無効化や完全な削除など、他の方法でもアプリを管理できます。デプロイと実行ログの詳細、またはAppSailサービスの管理手順については、コンソールヘルプセクションを参照してください。
覚えておくべき重要なポイント
Catalystは、作成するAppSailサービスに対して、リソースやインスタンス実行に関する特定の制限を設けています。覚えておくべき主な制限事項を以下に示します:
-
単一のCatalystプロジェクトで作成できるAppSailサービスは5つまでです。
-
非アクティブなアプリインスタンスは、5分間のアップタイム後にスケールダウンされます*
-
AppSailは単一のアプリに対して合計5つのインスタンスのみを生成します*
-
Catalystはアプリインスタンスあたり100リクエストを並行して実行できます。*
-
AppSailは、アクティブなインスタンスのリクエストしきい値の80%が使用されると、スケールアップして新しいインスタンスを生成します。つまり、インスタンスが80リクエストを並行処理した後、新しいインスタンスが生成されます。
-
アプリはリスニングポートで10秒以内にリスニングを開始する必要があります。この期間内にそのポートでアクティブなプロセスが見つからない場合、しきい値を超えて作成されるユーザーインスタンスは終了され、次のリクエストで新しいコールドスタートインスタンスがトリガーされます。
-
アプリリクエストは30秒以内に完了する必要があります。そうでない場合、リクエストはタイムアウトになります。
最終更新日 2026-03-05 11:43:24 +0530 IST
Yes
No
Send your feedback to us