すべてのプロダクト
Search
ドキュメントセンター

Serverless App Engine:クイックスタート

最終更新日:Mar 17, 2026

Serverless App Engine (SAE) は、アプリケーションに特化したサーバーレスの Platform-as-a-Service(PaaS)であり、Infrastructure-as-a-Service(IaaS)のインフラ管理からユーザーを解放します。マイクロサービス、Java、PHP などの技術スタックで構築されたアプリケーションのクラウド移行を簡素化し、必要に応じてリソースを提供し、従量課金方式で利用できます。本チュートリアルでは、SAE の基本的な使い方について説明します。

背景情報

詳細については、「Serverless App Engine とは」をご参照ください。

SAE のワークフロー

以下の図は、SAE を使用する際のワークフローを示しています。dg_sae_workflow

  1. SAE アプリケーションを初めてデプロイする前に、VPC、vSwitch、名前空間(namespace)を計画してください。名前空間は、テスト環境、ステージング環境、本番環境など、異なる環境を区別するために使用します。

    詳細については、「事前準備」をご参照ください。

  2. SAE コンソールでアプリケーションをデプロイします。

    詳細については、「アプリケーションのデプロイメント」をご参照ください。コンソールによるデプロイに加えて、SAE は Jenkins、IDE プラグイン、Maven プラグイン、Terraform、OpenAPI、Alibaba Cloud DevOps、kubectl-sae ツールなど、さまざまな方法でのデプロイをサポートしています。

    説明

    初めて SAE にアプリケーションをデプロイする場合は、SAEコンソールでアプリケーションを作成してください。

  3. SAE アプリケーションへアクセスする方法は、以下のいずれかです。

  4. SAE アプリケーションに対して高度な機能を設定します。

    例として、エンタープライズレベルのアクセス制御、コスト削減と効率向上のための弾力的スケーリング、強化された Java マイクロサービス、高可用性、ストレージ機能などがあります。

デプロイメント

SAE は、コードパッケージからのアプリケーションデプロイメント および イメージからのアプリケーションデプロイメント をサポートしています。

起動コマンドおよびパラメーター

  • イメージデプロイメント

    起動コマンドおよび関連パラメーターを Dockerfile に直接記述できます。また、アプリケーション作成時に起動コマンドをオーバーライドすることも可能です。

  • パッケージデプロイメント

    アプリケーションの起動コマンドに対するパラメーターを設定できます。たとえば、Java の場合、デフォルトの起動コマンド形式は Java[-Options] -jar jarfile[arg...] です。[-Options] および [arg...] パラメーターをカスタマイズできます。

データベースホワイトリスト

ECS インスタンスとは異なり、SAE アプリケーションはコンテナ内で実行され、各デプロイ後に IP アドレスが変更される可能性があります。ただし、アプリケーションにバインドされた vSwitch の CIDR ブロックは変更されません。そのため、vSwitch の CIDR ブロックをデータベースホワイトリストに追加できます。詳細については、「アプリケーションから Alibaba Cloud データベースへのアクセス」をご参照ください。

CI/CD

コンソールおよび API を使用したデプロイメントに加えて、SAE は Alibaba Cloud DevOps や Jenkins などの継続的インテグレーションおよび継続的デリバリー(CI/CD)ツールと統合されています。コードのコミット後にこれらのツールを使用してアプリケーションを自動的にデプロイできます。詳細については、「アプリケーションホスティングの概要」をご参照ください。

  • プラグインベースのデプロイメント

    Java 向けに、SAE は Maven、IntelliJ IDEA、Eclipse などのプラグインを提供しています。詳細については、「アプリケーションホスティングの概要」をご参照ください。

  • オンプレミスアプリケーションとクラウドアプリケーションの相互接続

    マイクロサービスモデルでは、サービスが多数のアプリケーションに分割されることが一般的です。テスト環境が Alibaba Cloud 上に展開されている場合、共同デバッグが課題となることがあります。SAE は Cloud Toolkit と連携し、オンプレミスアプリケーションとクラウドアプリケーション間のリモート相互接続を提供します。これにより、ローカルマシンからクラウド上のコンシューマーおよびプロバイダーを直接呼び出せます。詳細については、「Cloud Toolkit を使用したオンプレミスアプリケーションとクラウドアプリケーションの相互接続(IntelliJ IDEA)」をご参照ください。

  • Terraform

    SAE は Terraform をサポートしています。詳細については、terraform-provider-alicloud および「Terraform の概要」をご参照ください。

アップグレードおよびロールバック

SAE は、単一バッチリリース、段階的リリース、カナリアリリース、過去のバージョンへのロールバックなど、さまざまなリリースポリシーをサポートしています。詳細については、「アプリケーションのアップグレードおよびロールバック」をご参照ください。

権限設定

SAE は、きめ細かなアクセス制御をサポートしています。名前空間、アプリケーション、読み取り/書き込み操作に基づいて権限を設定できます。権限アシスタントにより、設定プロセスが簡素化されます。詳細については、「SAE 権限アシスタント」をご参照ください。

その他の機能

  • 環境変数

    アプリケーションを実行する前に、特定の環境変数を設定する必要があります。その後、コマンドを実行してアプリケーションを管理できます。環境変数はキーと値のペアとして保存されます。異なるアプリケーションでは異なる環境変数が使用され、それぞれの設定は互いに影響しません。詳細については、「環境変数の設定」をご参照ください。

  • ホスト名のバインド

    ホスト名のバインドを設定 することで、SAE アプリケーションは IP アドレスではなくドメイン名を使用して外部サービスにアクセスできます。

ネットワーク

アプリケーションを SAE にデプロイした後、さまざまなネットワークアクセス要件が発生する可能性があります。詳細については、「アプリケーションアクセスおよびトラフィック制御」をご参照ください。

Alibaba Cloud ネットワークの基本概念

dg_aliyun_cloud_network

  • 仮想プライベートクラウド(VPC):VPC は、Alibaba Cloud 上で作成するカスタムのプライベートネットワークであり、他の VPC とは論理的に分離されています。

    説明

    デフォルトでは、VPC からのインターネットへのアクセスは拒否されます。

  • vSwitch:vSwitch は、VPC 内の異なるクラウドリソースを接続する基本的なネットワークデバイスです。vSwitch は物理データセンターに対応します。VPC 内でクラウドリソースを作成する際には、そのリソースが接続する vSwitch を指定する必要があります。

  • エラスティック IP アドレス(EIP):EIP は、ECS インスタンスや SAE インスタンスなど、単一のリソースにのみバインドできます。EIP をリソースにバインドすると、そのリソースはインターネット経由で他のサービスにアクセスしたり、アクセスされたりできるようになります。

  • NAT ゲートウェイ:NAT ゲートウェイの SNAT(ソースネットワークアドレス変換)機能により、VPC 内のリソースがインターネットにアクセスできます。インターネット NAT ゲートウェイは VPC 内のすべてのリソースで使用可能ですが、EIP は VPC 内の単一のリソースでのみ使用可能です。

SAE ネットワークアクセスの主なシナリオおよび方法

アプリケーションを SAE にデプロイした後、以下のようなネットワークアクセス要件が発生する可能性があります。以下の図はその概念を示しています。dg_sae_network

インターネットから SAE アプリケーションへのアクセス(インバウンドトラフィック)

以下のいずれかの方法でアクセスを有効化できます。

SAE アプリケーションからインターネットへのアクセス(アウトバウンドトラフィック)

以下のいずれかの方法でアクセスを有効化できます。

サービスレジストリを使用したマイクロサービスアプリケーション間の相互アクセスの有効化

詳細については、「Nacos およびその他のサービスレジストリに基づくサービス登録および検出」をご参照ください。

内部ネットワークを介したアプリケーション間の相互アクセスの有効化

サーバーレスモードでは、各デプロイごとに新しい内部 IP アドレスが生成されます。そのため、インスタンスの IP アドレスに基づくアプリケーション間の直接アクセスはサポートされていません。以下のいずれかの方法でアクセスを有効化できます。

同一 VPC 内の SAE アプリケーションから ECS インスタンス、ApsaraDB RDS、および Tair(Redis OSS 対応)へのアクセス

  • SAE は Alibaba Cloud VPC ネットワークに基づいています。したがって、同一 VPC 内の ECS インスタンス、ApsaraDB RDS、Tair(Redis OSS 対応)などの他のリソースにアクセスする際に、追加の設定を行う必要はありません。逆に、同一 VPC 内の他の Alibaba Cloud リソースからも SAE にアクセスできます。

  • セキュリティグループおよび製品ホワイトリストが正しく設定されていることを確認してください。問題が発生した場合は、「よくある質問」のトラブルシューティング手順に従ってください。

SAE ネットワークアクセス方法の比較

SAE サービスと SAE Ingress(ゲートウェイルート)の違い

SAE Ingress(ゲートウェイルート)は、以下の図に示すように、ドメイン名およびパスに基づいてトラフィックを異なるアプリケーションにルーティングできますが、サービスはこの機能を提供しません。可能な限り Ingress の使用を推奨します。レイヤー 4 の TCP プロトコルが必要なシナリオや、ドメイン名を使用してサービスにアクセスできない場合に、サービスを使用できます。dg_slb

SAE サービスと Kubernetes サービスの違い

Kubernetes サービスには 2 つのモードがあります。1 つは LoadBalancer に基づくもので、これは SAE サービスに対応し、NLB または CLB を使用して実装できます。もう 1 つは ClusterIP に基づくものです。SAE は ClusterIP を直接提供していません。代わりに、Kubernetes サービスとしてアクセス可能なドメイン名を提供します。主な違いは以下のとおりです。

比較項目

サービス

Kubernetes サービス

課金

NLB の課金/CLB の課金

無料

シナリオ

インターネットまたはプライベートネットワークからのアプリケーションアクセスに適しています。

SAE アプリケーション間の相互アクセスにのみ適しています。

O&M

関連するモニタリングおよびアラートの設定、SLS へのアクセスログの収集をサポートしており、きめ細かなトラブルシューティング機能を提供します。

独立したモニタリング、アラート、アクセスログ機能を提供しません。アラートおよびログはアプリケーション側で設定する必要があります。

ALB ベースおよび CLB ベースのゲートウェイルーティングの違い

Application Load Balancer(ALB)は、HTTP、HTTPS、QUIC などのアプリケーション層の負荷分散シナリオ向けに設計された Alibaba Cloud の負荷分散サービスです。ゲートウェイルーティングシナリオでは、ALB の使用を推奨します。詳細については、「Server Load Balancer(SLB)製品ファミリーの紹介」をご参照ください。

NAT ゲートウェイベースおよび EIP ベースのインターネットアクセスの違い

以下の図は、各インスタンスに EIP をバインドした EIP ベースのインターネットアクセスの例を示しています。EIP が不足している場合、インスタンスの作成に失敗し、サービスを提供できなくなります。dg_eip

NAT モードと EIP モードの主な違いは以下のとおりです。

比較項目

NAT

EIP

有効範囲

NAT ゲートウェイは VPC または vSwitch レベルで制御できます。VPC または vSwitch 内のパブリック IP アドレスを持たないすべてのインスタンスがインターネットにアクセスするためのプロキシサービスを提供します。VPC または vSwitch のすべてのインスタンスがインターネットにアクセスできるようにするには、1 つの NAT ゲートウェイを設定するだけで済みます。

EIP はインスタンスレベルです。たとえば、10 個のインスタンスには 10 個の EIP が必要です。EIP をインスタンスにバインドすると、そのインスタンスはインターネットにアクセスしたり、インターネットからアクセスされたりできます。

静的パブリック IP アドレス

はい。

いいえ。新しいインスタンスが EIP に正常にバインドされると、SAE は元のインスタンスを破棄し、元の EIP をアンバインドします。そのため、EIP の数は、インスタンス数以上に加えて 1 つ余分に確保しておく必要があります。EIP は動的であり、IP プールから割り当てられます。

代表的なシナリオ

アプリケーションが自動スケーリングする場合。新規インスタンスはデフォルトでインターネットにアクセスでき、静的 IP アドレスが必要です。このシナリオは、95 % のユーザーに適しています。

EIP は可変です。オンライン会議など、インスタンスへの直接接続が必要なシナリオに適しています。また、各インスタンスのライフサイクルをきめ細かく制御する必要があります。

課金

課金の詳細については、「NAT ゲートウェイの課金」をご参照ください。

課金の詳細については、「EIP の課金」をご参照ください。インスタンス数が 20 を超えない場合、EIP の方がコスト効率が高くなります。

強化されたマイクロサービス

サーバーレスマイクロサービスアーキテクチャにおけるベストプラクティス製品として、SAE はマイクロサービス機能の多くの強化を提供しています。

サービスレジストリ

詳細については、「Nacos およびその他のサービスレジストリに基づくサービス登録および検出」をご参照ください。

構成センター

MSE の Nacos サービスレジストリ の使用を推奨します。これは、マイクロサービスレジストリおよび構成センターの両方の機能を提供します。また、SAE に付属する 分散構成管理(ACM) 機能も使用できます。

マイクロサービス開発

IDE ベースの自動デプロイメント

毎回パッケージングおよびデプロイメントを行う方法と比較して、IDE からのワンクリックデプロイメントは、デプロイメント時間を大幅に短縮し、開発効率を向上させます。

詳細については、「Alibaba Cloud Toolkit を使用してマイクロサービスを SAE に自動デプロイする」をご参照ください。

オンプレミスアプリケーションとクラウドアプリケーションの相互接続

マイクロサービスモデルを採用すると、アプリケーションの数が増加します。極端なケースでは、ローカル開発および共同デバッグのために、関連するすべてのマイクロサービスアプリケーションを起動する必要があります。この課題に対処するため、Alibaba Cloud Toolkit プラグインが提供する相互接続機能を使用できます。たとえば、ローカルのコンシューマーを SAE にデプロイされたプロバイダーに直接接続できます。これにより、プロバイダーをローカルで起動する必要がなくなり、開発およびデバッグコストを大幅に削減できます。

詳細については、「Cloud Toolkit を使用したオンプレミスアプリケーションとクラウドアプリケーションの相互接続(IntelliJ IDEA)」をご参照ください。

サービス管理

サービス一覧

組み込みの Nacos を使用するアプリケーションの場合、SAE は基本的なサービス一覧照会機能を提供します。自己管理型のレジストリまたは MSE レジストリを使用する場合は、対応するコンソールにログインしてサービスを照会できます。SAE コンソールで表示する必要はありません。

詳細については、「サービス一覧の表示」をご参照ください。

グレースフルシャットダウン

コンシューマークライアントにはキャッシュがあるため、マイクロサービスプロバイダーからのオフライン通知を即座に受信できません。通常、プロバイダーインスタンスをサービスレジストリから削除し、コンシューマーのキャッシュが更新されるのを待つ必要があります。この課題に対処するため、SAE は Microservices Engine(MSE)のグレースフルシャットダウン機能と統合し、このプロセスを製品化しています。

詳細については、「グレースフル起動およびシャットダウンの設定」をご参照ください。

グレースフル起動

マイクロサービスプロバイダーは、サービスレジストリに登録されるとすぐにコンシューマーから呼び出される可能性があります。ただし、データベース接続プールの初期化など、さらに初期化が必要な場合があります。そのため、トラフィック量が多いマイクロサービスアプリケーションでは、グレースフル起動機能を有効化することを推奨します。

詳細については、「グレースフル起動およびシャットダウンの設定」をご参照ください。

マイクロサービスのカナリアリリース

SAE は、アプリケーションライフサイクル管理だけでなく、マイクロサービスアプリケーション向けのカナリアリリース機能も提供します。

詳細については、「カナリアリリースルールの管理」および「アプリケーションの段階的リリースの実行」をご参照ください。

速度制限および劣化

マイクロサービスおよびモノリシックアプリケーションにおいて、タイムセールなどの急激なトラフィック増加により、アプリケーションがクラッシュする可能性があります。マイクロサービスアプリケーションの場合、これは雪崩効果を引き起こす可能性もあります。そのため、保護措置を講じる必要があります。SAEMicroservices Engine (MSE) のトラフィック保護機能と統合しており、速度制限および劣化ルールを簡単に設定および管理できます。

詳細については、「トラフィック保護」をご参照ください。

アプリケーション監視

マイクロサービスアーキテクチャでは、サポートするモニタリングシステムがないと、問題の検出および診断が困難になります。SAEApplication Real-Time Monitoring Service (ARMS) と統合されています。ダッシュボード、JVM 監視、遅延呼び出し監視、トレース分析、アラート機能を提供し、企業がマイクロサービスアーキテクチャを実装する際の障壁を低減します。

詳細については、「アプリケーション監視」をご参照ください。

マルチ言語対応

PHP ランタイムのサポート

SAE は、以下のデプロイメント方法をサポートしています。

  • イメージ:任意の PHP アーキテクチャアプリケーション。

  • PHP ZIP パッケージ:PHP-FPM および Nginx アーキテクチャを持つ任意のオンラインアプリケーション。

SAE はデフォルトの PHP ランタイム環境を提供します。

静的ファイルホスティング

NAS および OSS を使用することで、SAE は静的ファイルの独立ホスティングをサポートします。実行時にコード、テンプレート、アップロードされたファイルの永続ストレージを提供し、インスタンス間でのファイル共有を可能にします。

リモートデバッグ

SAE のさまざまな機能により、SAE における多様なデバッグ機能が可能になります。

  • PHP リモートデバッグ

    SAE には、リモートデバッグを可能にする組み込みの Xdebug プラグインがあります。

  • ファイルのダウンロード

    SAE では、Webshell を使用してインスタンスにログインし、SAE または OSS 機能を使用してファイルをダウンロードできます。詳細については、「Webshell を使用したファイルのアップロードおよびダウンロード」をご参照ください。

  • ファイルのアップロード

    SAE は、NAS および OSS を使用してコード開発およびデバッグを容易にします。

ログ

SAE は、ログ収集のために SLS および Kafka と統合されています。SAE のリアルタイムログ機能では、500 行のログ情報を表示できます。より多くのログ表示が必要な場合は、ファイルログ収集機能の使用を推奨します。SAE は、ビジネスファイルログ(コンテナ内のログパス)およびコンテナ標準出力(stdout)ログを収集し、SLS または Kafka に送信します。これにより、無制限のログ行数を表示でき、ログを独自に集約および分析できるため、ビジネスログの統合が容易になります。

ファイルログ

SAE は、ログ収集のために SLS と統合されており、これは SAE コンソールで有効化するだけで済みます。ECS の場合、収集対象のマシンの一覧を手動で管理する必要がありましたが、SAE の場合、収集ディレクトリまたはファイルを設定すると、各デプロイまたはスケールアウト時に SAE が自動的に SLS と接続してログ収集を行います。SLS コンソールでキーワード検索によりログを検索できます。詳細については、「SLS へのログ収集の設定」をご参照ください。

ログソースではワイルドカード文字がサポートされています。たとえば、/tmp/log/*.log は、/tmp/log ディレクトリおよびそのサブディレクトリ内の、拡張子が log のすべてのファイルを収集することを意味します。

XC2X4lpGGZ

SLS を使用した収集が不便な場合や、RAM ユーザーが SLS ログを閲覧できない場合には、Kafka へのログインポートを選択できます。これに基づき、ビジネスシナリオに応じて、Kafka から Elasticsearch などの他の永続データベースにデータを配信できます。これにより、集中型のログ管理および分析が容易になります。詳細については、「Kafka へのログ収集の設定」をご参照ください。

Logtail の起動パラメーターを環境変数を使用して設定することもできます。詳細については、「環境変数を設定して Logtail 収集パフォーマンスを向上させる」をご参照ください。

リアルタイムログ

SAE は、stdout ログを自動的に収集し、最新の 500 件を保持し、SAE コンソールで表示できます。詳細については、「リアルタイムログの表示」をご参照ください。

vweXtvvflh

stdout コンテンツを SLS にも収集したい場合は、まずコンテンツをファイルに出力し、次にファイル収集を設定します。パラメーターは以下の図に示されています。

AjI5WIBvlp

ストレージ

SAE には 20 GB のシステムディスクストレージが付属しています。外部ストレージへの読み書きには、NAS および OSS の使用を推奨します。SAE アプリケーションの診断には、定期的なチェックおよびログアップロードの 2 つの方法があります。ログアップロードには、OSS だけでなく、SAE に組み込まれたワンクリックアップロードおよびダウンロード機能も使用できます。

説明

ログシナリオでは、NAS または OSS ではなく SLS の使用を推奨します。詳細については、「SLS へのログ収集の設定」をご参照ください。

NAS

SAE は NAS ストレージをサポートしており、アプリケーションインスタンスのデータの永続性およびインスタンス間のデータ分散の問題を解決します。NAS ストレージは、ECS インスタンスまたは SAE アプリケーションにマウントされた場合にのみアクセスできます。詳細については、「NAS ストレージの設定」をご参照ください。

OSS

OSS は、バケットの視覚的な管理のための便利なツールおよびコンソールを提供します。OSS は、構成ファイルやフロントエンドの静的ファイルのマウントなど、読み取り中心のシナリオに適しています。SAE コンソールでアプリケーションをデプロイする際に OSS ストレージを設定すると、OSS コンソールからデータにアクセスできます。詳細については、「OSS ストレージの設定」をご参照ください。

説明

ログ書き込みシナリオでは ossfs ツールを使用できません。詳細については、「ossfs 1.0」をご参照ください。

ファイルのアップロードおよびダウンロード

SAE からローカルマシンにファイルをダウンロードしたい場合は、Webshell に組み込まれたファイルのアップロードおよびダウンロード機能を使用できます。詳細については、「Webshell を使用したファイルのアップロードおよびダウンロード」をご参照ください。

NAS または OSS ストレージを使用するほか、ossutil ツールを使用することもできます。Alibaba Cloud OSS を使用したログのアップロードおよびダウンロードの方法については、「定期的なチェックによるアプリケーションの診断」をご参照ください。

モニタリングおよびアラート

SAE には、インフラ監視および Java および PHP 向けの ARMS ビジネス監視が組み込まれています。アラート管理システムは、信頼性の高いアラート収束、通知、自動エスカレーションなどの機能を提供し、ビジネスアラートの迅速な検出および解決を支援します。

インフラ監視

インフラ監視には、CPU、Load、MEM、ディスク、ネットワーク、TCP 接続が含まれます。詳細については、「インフラ監視」をご参照ください。組み込みのインフラ監視は Alibaba CloudMonitor によって提供されています。また、CloudMonitor コンソール にログインして、カスタムダッシュボードを設定することもできます。

アプリケーション監視

SAE Professional Edition アプリケーションは、ARMS Pro アプリケーション監視機能と統合されています。アプリケーション監視を有効化すると、追加料金は発生せず、アプリケーションをリアルタイムで監視できます。詳細については、「Professional Edition アプリケーション監視」をご参照ください。

SAE Standard Edition アプリケーションは、ARMS Basic Edition 監視と統合されています。アプリケーション監視を有効化すると、この機能を無料で使用できます。ただし、ARMS Pro 監視機能を有効化するオプションも提供されています。有効化すると追加料金が発生し、データは ARMS で表示する必要があります。詳細については、「Standard Edition アプリケーション監視」をご参照ください。

アラート設定

SAE は、上記の各メトリックに対してアラートを設定することをサポートしています。詳細については、「アラート管理システム」をご参照ください。

高可用性

SAE でアプリケーションをデプロイした後、トラフィックのグレースフル起動およびシャットダウンのためのヘルスチェック機能を使用できます。この機能により、アプリケーションインスタンスおよびビジネス運用が正常であるかどうかを確認でき、例外が発生した際に問題を特定できます。同時に、SAE は、データセンターレベルの障害に対応するための複数の vSwitch へのアプリケーションデプロイメントをサポートし、Java アプリケーション向けに AHAS を使用した速度制限および劣化をサポートしています。これらの機能により、アプリケーションの可用性が包括的に保証されます。

複数 vSwitch へのデプロイメント

データセンターレベルの障害に対応するため、本番レベルの SAE アプリケーションには、複数の vSwitch を設定することを推奨します。アプリケーション作成時に複数の vSwitch を設定するか、アプリケーション作成後に vSwitch を追加できます。vSwitch を作成する際には、十分な数の IP アドレス(100 以上を推奨)を割り当てるようお願いします。IP アドレス数が不足していると、アプリケーションの作成または弾力的スケーリングが失敗する可能性があります。詳細については、「vSwitch の切り替え」をご参照ください。

複数の vSwitch を使用することで、SAE は企業が複数のゾーンにわたってリソースを自動的にスケールするのを支援します。リソースの分布を監視する必要はありません。SAE がリソースの全体的な可用性を保証します。たとえば、単一障害点またはゾーン障害が発生した場合、SAE は数秒以内に障害が発生したインスタンスを健全なノードまたは他のゾーンに移行します。

グレースフル起動およびシャットダウン

SAE でアプリケーションをデプロイすると、通常、まずスケールアウトし、その後スケールインするプロセスを経ます。ただし、トラフィックのグレースフル起動およびシャットダウンには、2 つの主要なビジネス課題があります。

  • 新しくスケールアウトしたインスタンスがトラフィックを処理する準備ができているかどうか。

  • 古いインスタンスをどのようにグレースフルに破棄するか。

SAE は Kubernetes を基盤としており、liveness プローブ(Liveness 構成)および readiness プローブ(Readiness 構成)という 2 つのヘルスチェック方法を提供します。これらの課題に対処するため、SAE は readiness プローブの設定をサポートしています。readiness プローブは、インスタンスが準備完了であるかどうかを定期的にチェックします。新しいインスタンスが準備完了になると、SAE はトラフィックをそのインスタンスに送信します。チェックが失敗した場合、SAE はトラフィックをそのインスタンスに送信しません。古いインスタンスを破棄する前に、まずトラフィックフローから除外されます。また、インスタンスの破棄前にシャットダウンスクリプトおよび待機時間を設定できます。詳細については、「ヘルスチェックの設定」をご参照ください。

liveness プローブも、インスタンスが起動しているかどうかを定期的にチェックします。チェックが失敗した場合、SAE はコンテナを自動的に再起動します。この機能は、例外的なシナリオにおける自動 O&M に有用ですが、障害のコンテキストが失われるため、原因の調査が不可能になる可能性があります。実際のシナリオに応じて、liveness プローブを設定するかどうかを判断できます。

readiness プローブまたは liveness プローブを設定するほか、マイクロサービスシナリオでは、サービスレジストリのキャッシュの問題を解決するために、マイクロサービスのグレースフルシャットダウンを設定する必要があります。詳細については、「グレースフル起動およびシャットダウンの設定」をご参照ください。本番環境では、自動スケーリングおよびロールバックアップグレードなどの機能を使用すると、サービスが一時的に利用不可となり、ビジネスモニタリングで多数のエラーが報告される可能性があります。これらの課題に対処するため、SAE はマイクロサービスのグレースフル起動の設定をサポートしています。詳細については、「グレースフル起動およびシャットダウンの設定」をご参照ください。

速度制限および劣化

高トラフィックシナリオでは、SAEMicroservices Engine (MSE) のトラフィック保護機能と統合しており、速度制限および劣化ルールを簡単に設定および管理できます。これにより、アプリケーションの可用性が保証されます。詳細については、「トラフィック保護」をご参照ください。

弾力的スケーリング(コスト削減および効率向上)

SAE は、手動スケーリング、スケジュールされたスケーリング、メトリックベースのスケーリング、ハイブリッドスケーリング、スケジュールされた起動および停止などの弾力的スケーリングポリシーをサポートしています。弾力的スケーリングは、クラウドネイティブアーキテクチャおよびアプリケーションの典型的な機能であり、インフラストラクチャコストの削減および O&M 効率の向上に役立ちます。

手動スケーリング

手動スケーリングは、手動 O&M シナリオに適しています。ECS の比較的複雑で遅いスケーリングプロセスと比較して、SAE のスケーリングはコンテナイメージに基づいており、高速です。詳細については、「手動スケーリング」をご参照ください。

スケジュールされたスケーリング

スケジュールされたスケーリングは、トラフィックが予測可能なシナリオに適しています。たとえば、飲食業界および教育業界では、毎日の朝および夕方に明確なビジネスピークがあります。そのため、異なる時間帯に異なる数のインスタンスを実行するように設定し、サーバーリソースを実際のサービストラフィックにできるだけ近づけることができます。詳細については、「Auto Scaling ポリシーの設定」をご参照ください。

メトリックベースのスケーリング

メトリックベースのスケーリングは、トラフィックが比較的予測できないシナリオに適しています。現在、CPU、MEM、TCP 接続、QPS、RT などのメトリックをサポートしています。詳細については、「Auto Scaling ポリシーの設定」をご参照ください。

ハイブリッド弾力的スケーリング

ハイブリッドスケーリングは、バーストトラフィックおよびスケジュールされたスケーリングの両方の要件があるシナリオ、たとえばインターネット、教育、飲食業界に適しています。これにより、既知の期間に対してインスタンス数をきめ細かく調整できます。

たとえば、平日には弾力的インスタンスの最大数を max に、最小数を min に設定できます。ただし、週末には min インスタンスを維持する必要がない場合、週末用に異なるインスタンス数を設定して、min の値を削減できます。詳細については、「Auto Scaling ポリシーの設定」をご参照ください。

スケジュールされた起動および停止

スケジュールされた起動および停止機能により、名前空間内のアプリケーションをスケジュールされた時間に一括で起動および停止できます。たとえば、開発環境またはテスト環境内のすべてのアプリケーションの起動および停止をスケジュールできます。1 日の 08:00 ~ 20:00 のみ開発およびテスト環境を使用し、それ以外の時間はアイドル状態であると仮定します。この場合、SAE でスケジュールされた起動および停止を設定してコストを削減できます。詳細については、「スケジュールされた起動および停止ルールの作成」をご参照ください。

実践チュートリアル

SAE は、さまざまなビジネス要件向けのベストプラクティスを提供しています。本トピックでは、弾力的スケーリング、ネットワーキング、ストレージ、および Alibaba Cloud データベースへのアプリケーションアクセスについて説明します。その他のベストプラクティスには、イメージ、アプリケーション高速化、JVM パラメーター設定などがあります。一般的なシナリオの詳細については、「ベストプラクティス」をご参照ください。