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

Serverless App Engine:最初のサーバーレスアプリケーションをデプロイする

最終更新日:May 07, 2026

コードまたはイメージを Serverless Application Engine (SAE) にアップロードすることで、アプリケーションをデプロイできます。SAE は基盤となるコンピューティングリソースを管理します。簡単な構成を行うだけで、トラフィックに基づく自動スケーリングを有効化し、複数のアベイラビリティゾーンにアプリケーションをデプロイできます。

ソリューション概要

このチュートリアルでは、マイクロサービスアプリケーションを一式デプロイし、サービス登録とディスカバリーを実装し、サービス間でメソッドを呼び出し、インターネットからアプリケーションにアクセスできるようにします。サンプルアプリケーションのアーキテクチャは次のとおりです。

このチュートリアルでは Java マイクロサービスアプリケーションを例として使用していますが、SAE は特定のプログラミング言語やアーキテクチャに限定されません静的 Web サイトフロントエンドとバックエンドが分離されたアプリケーションモノリシックアプリケーション、およびマイクロサービスアプリケーションなど、幅広いユースケースに対応しています。

このチュートリアルでは、次の操作を行います。

  1. アプリケーションのデプロイ:サンプルイメージを使用してプロバイダーおよびコンシューマーアプリケーションをデプロイします。SAE の組み込み Nacos を使用してサービス登録とディスカバリーを実装し、コンシューマーアプリケーションがプロバイダーアプリケーションのサービスを呼び出せるようにします。

  2. インターネットからのアプリケーションへのアクセス:コンシューマーアプリケーションにパブリックエンドポイントを設定し、アプリケーションにアクセスします。

前提条件

SAE の有効化と権限付与

Alibaba Cloud アカウントを使用して SAE サービスを有効化し、RAM ユーザーを使用して SAE 関連リソースを管理することを推奨します。

Alibaba Cloud アカウントで SAE を有効化する

SAE 製品ページにアクセスし、[Get Started] をクリックします。 Alibaba Cloud アカウントでログインし、画面の指示に従って SAE を有効化し、サービスリンクロールを作成します。

重要

SAE を有効化した後、SAE無料トライアルクォータ および 期間 を超えるリソースについては、従量課金 で課金されます。コストを節約するには、サブスクリプション パッケージを購入できます。

RAM ユーザーへの権限付与

Alibaba Cloud アカウントを使用して、RAM ユーザーに権限を付与し、SAE に必要な権限ポリシーをアタッチする必要があります。これにより、RAM ユーザーが SAE リソースを管理できるようになります。

操作手順

SAE はコンソールおよびsaectl ツール(kubectl 互換)など複数の方法をサポートしています。ご自身が使い慣れている方法を選択して、このチュートリアルを完了してください。

コンソール

1. アプリケーションのデプロイ

  1. プロバイダーアプリケーションのデプロイSAE コンソールにログインします。左側のナビゲーションウィンドウで、 を選択します。上部のナビゲーションバーで、アプリケーションのリージョンを選択します。このチュートリアルでは、中国 (杭州) を例として使用します。[Create Application] をクリックします。以下のパラメーターを構成し、他の項目はデフォルト値のままにしてください。[Advanced Settings] をスキップするために、[Create Application Now] をクリックします。

    がナビゲーションウィンドウに表示されていない場合は、 を選択してください。
    アプリケーションエディションの選択を求められた場合は、Standard Edition を選択してください。Lightweight Edition および Professional Edition は現在、招待制のベータテスト中です。 これらのエディションの違いは、このチュートリアルに影響しません。
    1. Application Name に任意の名前(例:provider)を入力します。

    2. Namespace TypeSystem-created に設定します。これにより、現在のリージョンのデフォルト名前空間にアプリケーションが作成され、VPC、vSwitch、セキュリティグループなどの必要なネットワークリソースが自動的にプロビジョニングされます。

    3. Deployment MethodDeploy Using Image に設定します。[Set Image] をクリックします。Demo Image タブで、Microservice Application - Provider を見つけ、Image Versionmicroservice-java-provider-v1.0 に設定し、[OK] をクリックします。

    4. Capacity Settings セクションで、Instance Specification および Number of Instances をカスタマイズします。これらの設定により、アプリケーションの初期インスタンス数と各インスタンスに割り当てられるコンピューティングリソースが決定されます。

  2. コンシューマーアプリケーションのデプロイ:コンシューマーアプリケーションをデプロイするには、前述の手順を繰り返し、以下のパラメーターを調整します。

    1. Application Name に任意の名前(例:consumer)を入力します。

    2. [Set Image] 時に、Microservice Application - Consumer を見つけ、Image Versionmicroservice-java-consumer-v1.0 に設定します。

  3. デプロイ結果の確認:アプリケーションのデプロイが完了するまで約 1 分お待ちください。

    1. Application List ページで作成されたアプリケーションを確認できます。アプリケーションをクリックすると、詳細ページに移動します。

    2. 左側のナビゲーションウィンドウで [Basic Information] を選択します。Instance List タブで、作成されたアプリケーションインスタンスを確認できます。

2. パブリックアクセスの有効化

インターネットからコンシューマーアプリケーションにアクセスするには、インターネット向け CLB インスタンスをバインドします。

  1. インターネット向け CLB インスタンスをコンシューマーアプリケーションにバインドする:コンシューマーアプリケーションの詳細ページに移動します。Application Information タブの Application Access Settings セクションで、[CLB-based Access] を選択します。[Add internet-facing CLB] をクリックし、以下のパラメーターを構成して、[OK] をクリックします。

    1. CLB Instance で、[Create CLB Instance] を選択します。

    2. HTTP Protocol タブで、HTTP Port80container port18082 に設定します。

  2. 結果の検証:SAE が CLB インスタンスを作成し、アプリケーションにバインドします。インスタンスが作成されると、コンソールにアプリケーションのパブリックエンドポイントが表示されます。

    1. ブラウザで http://<public_endpoint>/consumer-echo/hello にアクセスし、<public_endpoint> を実際の値に置き換えます。これにより、インターネットからアプリケーションにアクセスできることを確認できます。

    2. ページで、コンシューマーアプリケーションがプロバイダーアプリケーションを呼び出すトポロジーを確認できます。

3. リソースのクリーンアップ

このチュートリアルを完了したら、追加の課金を回避するために関連リソースをクリーンアップすることを推奨します。

  1. アプリケーションの削除:プロバイダーおよびコンシューマーアプリケーションの詳細ページに移動します。 を選択し、画面の指示に従ってアプリケーションを削除します。

    SAE が作成した CLB インスタンスは、アプリケーションを削除すると自動的にリリースされます。
  2. (オプション)ネットワークリソースの削除:デプロイ中に、SAE が自動的に VPC、vSwitch、およびセキュリティグループを作成しました。

    1. VPC の確認:左側のナビゲーションウィンドウで、 を選択します。[default] をクリックします。Basic Information ページで VPC を確認し、リンクをクリックして VPC 詳細ページに移動します。

    2. vSwitch およびセキュリティグループの確認:VPC の Resource Management タブで、各リソースのリンクをクリックして詳細ページに移動します。

    3. 各詳細ページでリソースを削除します。

saectl ツール

1. saectl のインストールと構成

2. アプリケーションのデプロイ

  1. リソース設定ファイルの作成:同じディレクトリ内に以下のファイルを作成します。:設定ファイル内の image: ...cn-hangzhou... を、ご利用のアプリケーションのデプロイリージョンに置き換えてください。

    1. deployment-provider.yaml はプロバイダーアプリケーションを構成します。

      apiVersion: apps/v1
      kind: Deployment
      metadata:
        annotations:
          sae.aliyun.com/new-sae-version: std # アプリケーションエディションを選択します。'std' は Standard Edition を示します。Lightweight および Professional エディションは招待制のベータテスト中です。この選択はチュートリアルに影響しません。
        name: provider # アプリケーション名はカスタマイズ可能です。
        namespace: default # システム作成のデフォルト名前空間を選択すると、VPC、vSwitch、セキュリティグループなどのネットワークリソースが自動的に作成・関連付けられます。
      spec:
        replicas: 2 # アプリケーションインスタンスの数。
        selector:
          matchLabels:
            sae.aliyun.com/app-name: provider # metadata で定義されたアプリケーション名と同じである必要があります。
        template:
          metadata:
            labels:
              sae.aliyun.com/app-name: provider # metadata で定義されたアプリケーション名と同じである必要があります。
          spec:
            containers:
            - name: main # コンテナ名は競合を避けるため 'main' にすることを推奨します。
              image: registry.cn-hangzhou.aliyuncs.com/sae-serverless-demo/sae-demo:microservice-java-provider-v1.0 # プロバイダーアプリケーションのサンプルイメージです。cn-hangzhou をご利用のデプロイリージョンに置き換えてください。
              resources: # 単一アプリケーションインスタンスの仕様です。'limits' と 'requests' は同じ構成にする必要があります。
                limits:
                  cpu: "2"
                  memory: 4Gi
                requests:
                  cpu: "2"
                  memory: 4Gi
      
    2. deployment-consumer.yaml はコンシューマーアプリケーションを構成します。

      apiVersion: apps/v1
      kind: Deployment
      metadata:
        annotations:
          sae.aliyun.com/new-sae-version: std # アプリケーションエディションを選択します。'std' は Standard Edition を示します。Lightweight および Professional エディションは招待制のベータテスト中です。この選択はチュートリアルに影響しません。
        name: consumer # アプリケーション名はカスタマイズ可能です。
        namespace: default # システム作成のデフォルト名前空間を選択すると、VPC、vSwitch、セキュリティグループなどのネットワークリソースが自動的に作成・関連付けられます。
      spec:
        replicas: 2 # アプリケーションインスタンスの数。
        selector:
          matchLabels:
            sae.aliyun.com/app-name: consumer # metadata で定義されたアプリケーション名と同じである必要があります。
        template:
          metadata:
            labels:
              sae.aliyun.com/app-name: consumer # metadata で定義されたアプリケーション名と同じである必要があります。
          spec:
            containers:
            - name: main # コンテナ名は競合を避けるため 'main' にすることを推奨します。
              image: registry.cn-hangzhou.aliyuncs.com/sae-serverless-demo/sae-demo:microservice-java-consumer-v1.0 # コンシューマーアプリケーションのサンプルイメージです。cn-hangzhou をご利用のデプロイリージョンに置き換えてください。
              resources: # 単一アプリケーションインスタンスの仕様です。'limits' と 'requests' は同じ構成にする必要があります。
                limits:
                  cpu: "2"
                  memory: 4Gi
                requests:
                  cpu: "2"
                  memory: 4Gi
      
  2. アプリケーションのデプロイ:設定ファイルがあるディレクトリで、saectl apply -f deployment-provider.yaml -f deployment-consumer.yaml を実行します。

  3. 結果の検証

    1. アプリケーションの確認saectl get deployments -n default を実行します。-n default フラグはデフォルト名前空間を照会します。出力内容:

      1. STATERUNNING の場合、アプリケーションは実行中です。状態が PUBLISHING の場合、アプリケーションはデプロイ中です。デプロイが完了するまでお待ちください。

      2. READY フィールドに表示される n/m は、準備完了インスタンス数 / 期待インスタンス数 を表します。

    2. アプリケーションインスタンスの確認saectl get pods -n default を実行します。出力内容:

      1. STATUSRUNNING の場合、インスタンス内のコンテナは正常に実行されています。ステータスが ContainerCreating の場合、コンテナは作成中です。完了までお待ちください。

      2. READY フィールドに表示される n/m は、準備完了コンテナ数 / コンテナ総数 を表します。

3. パブリックアクセスの有効化

インターネットからコンシューマーアプリケーションにアクセスするには、インターネット向け CLB インスタンスをバインドできます。

  1. リソース設定ファイルの作成Service を構成するための svc.yaml ファイルを作成します。この Service は、インターネット向け CLB をプロビジョニングすることで、コンシューマーアプリケーションをインターネットに公開します。

    apiVersion: v1
    kind: Service
    metadata:
      annotations:
        sae.aliyun.com/loadbalancer-address-type: internet # アドレスタイプ。'internet' はパブリック、'intranet' はプライベートを示します。
      name: internet-consumer # 固定フォーマット:${address-type}-${app-name}
    spec:
      ports:
      - name: port-80 # 固定フォーマット:port-${external-port}
        port: 80
        protocol: HTTP
        targetPort: 18082 # コンシューマーアプリケーションのコンテナポート。
      selector:
        sae.aliyun.com/app-name: consumer # アプリケーション名。
      type: LoadBalancer
    
  2. サービスのデプロイ:設定ファイルがあるディレクトリで、saectl apply -f svc.yaml を実行します。

  3. 結果の検証

    1. サービスの確認saectl get services -n default を実行します。出力内容:

      1. EXTERNAL-IP フィールドにアプリケーションのパブリック IP アドレスが表示されます。<pending> と表示されている場合、サービスは作成中です。完了までお待ちください。

      2. PORT(S) フィールドに、アプリケーション用に構成したアクセスポートが表示されます。

    2. インターネットからのアプリケーションへのアクセスcurl http://<public_endpoint>:<access_port>/consumer-echo/hello を実行し、<public_endpoint> および <access_port> を実際の値に置き換えます。出力には、コンシューマーアプリケーションがプロバイダーアプリケーションを呼び出してリクエストを処理していることが表示されます。

4. リソースのクリーンアップ

このチュートリアルを完了したら、追加の課金を回避するために関連リソースをクリーンアップすることを推奨します。

アプリケーションの削除saectl delete -f deployment-provider.yaml -f deployment-consumer.yaml を実行します。

SAE が作成した CLB インスタンスは、アプリケーションを削除すると自動的にリリースされます。

次のステップ