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

ENS:Edge Node Service 上にインフラストラクチャ環境を構築する

最終更新日:Nov 19, 2025

このガイドでは、ENS エッジノード上にインフラストラクチャ環境をセットアップする方法について説明します。ENS エッジノード上に Virtual Private Cloud (VPC) と vSwitch を作成し、コンピューティングインスタンスを作成し、Edge Load Balancer (ELB) インスタンスを使用してトラフィックを分散し、SNAT ルールと Elastic IP Address (EIP) を使用してトラフィックをプロキシする方法を学びます。このデプロイメントソリューションは、Cloud Architect Design Tools (CADT) でも利用できます。

前提条件

  • Alibaba Cloud アカウントで本人確認が完了している必要があります。Alibaba Cloud 管理コンソールにログインし、[アカウントセンター] に移動して確認ステータスを確認できます。

手順

ENS をアクティブにする

サービスをアクティブにする

Edge Node Service - Alibaba Cloud のホームページに移動し、[今すぐ有効化] をクリックして情報を入力し、レビューのために送信します。アカウントマネージャーに連絡してサービスを有効化することもできます。

プリセールス設定

アカウントマネージャーに連絡して、必要なリソースとエッジゾーンを設定します。これにより、デプロイメントプロセス中の問題を防ぐことができます。

RAM 権限の設定

重要

Alibaba Cloud アカウントは、すべての API 操作に対するアクセス権限を持っています。API 呼び出しや日常の運用保守 (O&M) には、Resource Access Management (RAM) ユーザーを作成して使用することをお勧めします。

  1. RAM ユーザーを作成する

    1. Resource Access Management (RAM) コンソールにログインします。

    2. 左側のナビゲーションウィンドウで、[ID 管理] > [ユーザー] を選択します。

    3. [ユーザー] ページで、[ユーザーの作成] をクリックします。

    4. [ユーザーの作成] ページで、[ログイン名][表示名] を設定します。[アクセスモード][コンソールアクセス] に設定します。

    5. [OK] をクリックします。

      RAM ユーザーが作成されたら、ログイン名とパスワードを記録します。これらは、Alibaba Cloud OpenAPI Developer Portal にログインして API 操作を呼び出すために必要になります。

  2. RAM ユーザーに権限を付与します。

    1. RAM ユーザー一覧ページに移動します。

    2. 対象の RAM ユーザーを見つけ、[アクション] 列の [権限の追加] をクリックします。

    3. テキストボックスにキーワード ENS を入力してポリシーを検索します。AliyunENSFullAccessAliyunCADTFullAccess ポリシーを選択します。

  3. [承認の確認] をクリックして権限付与を完了します。

VPC と vSwitch を作成する

ネットワークプランに基づいて VPC と vSwitch を作成します。内部ネットワークの CIDR ブロックや vSwitch の設定などの構成を指定します。

  1. ENS コンソール にログインします。

  2. 左側のナビゲーションウィンドウで、[ネットワーク管理] > [ネットワーク] をクリックします。

  3. [ネットワーク] ページで、[ネットワークの作成] をクリックします。

    [ネットワークの作成] ページで、[ネットワーク][VSwitch] のパラメーターを設定します。

    image

    image

  4. 設定を確認したら、[作成] をクリックします。

    • [ネットワーク] ページで、作成したネットワークの [ステータス] を表示できます。

    • [vSwitch] ページで、作成した vSwitch の [ステータス] を表示できます。

ENS インスタンスを作成する

  1. ENS コンソール にログインします。

  2. 左側のナビゲーションウィンドウで、[コンピューティングとイメージ] > [インスタンス] をクリックします。

  3. [インスタンス] ページで、[インスタンスの作成] をクリックします。構成の詳細については、「インスタンスの作成」をご参照ください。

    説明

    インスタンスを作成する際は、作成したネットワークおよび vSwitch と同じリージョンにあることを確認してください。そのネットワークと vSwitch を選択します。

    image

  4. 支払いが完了すると、[インスタンス] ページでインスタンスを表示できます。

ELB インスタンスを使用したトラフィックの分散

  1. ELB インスタンスを作成します。

    説明

    ELB インスタンスを作成する際は、ENS インスタンスと同じリージョンにあることを確認してください。

    1. ENS コンソール にログインします。

    2. 左側のナビゲーションウィンドウで、[Edge Load Balancer] > [Classic Load Balancer] をクリックします。

    3. [Edge Load Balancer] ページで、[インスタンスの作成] をクリックします。

      image

    4. 情報を確認したら、[注文の確認] をクリックします。

  2. [Edge SLB インスタンス] ページで、作成した [Edge SLB インスタンス] を表示し、[Edge SLB インスタンス][実行中] 状態であることを確認します。

    image

  3. ELB インスタンスにバックエンドサーバーを追加します。

    1. [Edge Load Balancer] ページで、対象の ELB インスタンス を見つけ、[アクション] 列の [バックエンドサーバーの追加] をクリックします。

    2. [デフォルトサーバーグループ] ページで、[追加] をクリックします。情報を確認したら、[次へ] をクリックします。

    3. [重み] を設定し、[追加] をクリックします。

      説明

      重みが大きい ENS インスタンスは、より多くのアクセスリクエストを受信します。

      image

  4. エッジ EIPELB インスタンスに関連付けます。詳細については、「EIP の関連付け」をご参照ください。

    1. [エッジロードバランサー] ページで、[操作] 列の More > [パブリック IP アドレスの関連付け] をクリックします。

    2. 表示されるダイアログボックスで、作成した [エッジ EIP] を選択し、[OK] をクリックします。[エッジ EIP] を作成していない場合は、「エッジ EIP の作成と管理」をご参照ください。

      image

    3. ELB インスタンスのサービスアドレス列に [パブリック IP アドレス] が表示されている場合、エッジ EIP は正常に関連付けられています。

      image

  5. ELB インスタンスリスナーを設定します。パラメーターの詳細については、「リスナーの設定」をご参照ください。

    1. [Edge Load Balancer] ページで、[アクション] 列の [リスナー設定ウィザード] をクリックします。

    2. [リスナー] ページで、[リスナーの追加] をクリックします。

    3. [基本情報] ページで、設定を構成し、[次へ] をクリックします。

      image.png

    4. [ヘルスチェック] ページで、[ヘルスチェック] ルールを設定し、[次へ] をクリックします。

      image

    5. [確認] ページで、設定を確認し、[作成] をクリックします。

  6. ENS インスタンスが ELB インスタンスを介してインターネットからアクセスできることを確認します。

    1. Go 環境を準備します。

      1. システムパッケージリストを更新し、Go をインストールします。

        # Debian または Ubuntu ベースのシステムの場合は、パッケージリストを更新します。他のディストリビューションではスキップしてください。
        sudo apt-get update
        
        # パッケージマネージャを使用してインストールします。
        # Debian または Ubuntu ベースのシステムの場合:
        sudo apt-get install golang
        # Red Hat または CentOS ベースのシステムの場合:
        sudo yum install golang
      2. インストールを確認します。

        go version
        
        # 出力は次のようになります:
        go version go1.18.3 linux/amd64
      3. 環境変数を設定します。

        ~/.profile または ~/.bashrc ファイルを編集して、Go のパスを PATH 環境変数に追加します。

        echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.profile
        source ~/.profile
        
        # または
        echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.bashrc
        source ~/.bashrc
      4. 作業ディレクトリを作成します。

        Go プロジェクトをより適切に整理するために、作業ディレクトリを作成します。たとえば、~/go ディレクトリを作成します:

        mkdir -p ~/go/{bin,src,pkg}
        
        echo 'export GOPATH=~/go' >> ~/.profile
        echo 'export PATH=$PATH:$GOPATH/bin' >> ~/.profile
        source ~/.profile
        
        # または
        echo 'export GOPATH=~/go' >> ~/.bashrc
        echo 'export PATH=$PATH:$GOPATH/bin' >> ~/.bashrc
        source ~/.bashrc
    2. ENS インスタンスにシンプルな Web サーバーをデプロイします。ローカルポート 8080 でサービスにアクセスし、応答を受信できます。

      1. package main
        
        import (
            "fmt"
            "net/http"
        )
        
        func helloHandler(w http.ResponseWriter, r *http.Request) {
            fmt.Fprintf(w, "Hello\n") // Helloと出力
        }
        
        func main() {
            http.HandleFunc("/", helloHandler)
            fmt.Println("Starting server on :8080") // サーバーを :8080 で起動
            if err := http.ListenAndServe(":8080", nil); err != nil {
                fmt.Println(err)
            }
        }
        
      2. 次のコマンドを使用してコードをコンパイルし、バックグラウンドで実行します。

        go build -o webserver main.go
        nohup ./webserver &
      3. ローカルでポート 8080 にアクセスして、サービスが正しく実行されていることを確認します。

        curl http://127.0.0.1:8080/

        image

    3. ENS インスタンスに Nginx をデプロイし、Nginx の設定を変更します。

      1. たとえば、CentOS では、Nginx をインストールして起動します。

        sudo yum install epel-release
        sudo yum install nginx
        
        sudo systemctl start nginx

        nginx.conf ファイルを編集して、異なるサービスアドレス宛のトラフィックを異なるサービスポートに転送します。設定ファイルは通常、/etc/nginx/nginx.conf または /etc/nginx/sites-available/default にあります。

      2. 上記の設定に基づき、ELB インスタンスのリスナーポートは 80 で、バックエンドサーバーのリスナーポートは 80 です。

        image.png

      3. 次のコードセグメントを nginx.conf ファイルに挿入します。これにより、バックエンドサーバーは ELB インスタンスの EIP からのポート 80 へのリクエストをリッスンし、ローカルポート 8080 に転送するように設定されます。

        server {
            listen 80;  # ポート 80 でリッスン
            server_name your_domain_or_ip;  # これを実際のドメイン名または IP アドレスに置き換えます
        
            location / {
                proxy_pass http://127.0.0.1:8080;  # リクエストをローカルポート 8080 に転送
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Forwarded-Proto $scheme;
            }
        }
      4. 変更された設定の構文が正しいことを確認します。

        sudo nginx -t
        
        # 次の出力は、構文が正しいことを示します。
        nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
        nginx: configuration file /etc/nginx/nginx.conf test is successful
      5. Nginx を再起動して、更新された設定を適用します。

        sudo systemctl reload nginx 

    4. インターネットから、curl コマンドを使用して <EIP>:80 にアクセスし、サービスがアクセス可能であることを確認します。

      image.png

NAT Gateway を使用して ENS インスタンスがインターネットにアクセスできるようにする

  1. NAT Gateway を作成します。パラメーターの詳細については、「エッジ NAT Gateway インスタンスの作成と管理」をご参照ください。

    1. 左側のナビゲーションウィンドウで、[ネットワーク管理] > [NAT Gateway] をクリックします。

    2. [NAT Gateway] ページで、[NAT Gateway の作成] をクリックして、ELB インスタンスと同じエッジゾーンに NAT Gateway を作成します。

  2. エッジ EIP を NAT Gateway に関連付けます。この EIP は、SNAT ルールでインターネットにアクセスしたり、DNAT ルールでインターネットからのトラフィックを受信したりするために使用されます。

    1. エッジ EIP を NAT Gateway に関連付けます。

      1. [アクション] 列で、更多 をクリックし、[EIP の関連付け] を選択します。

      2. 表示されるダイアログボックスで、作成した [エッジ EIP] を選択し、[OK] をクリックします。

        image

        説明

        EIP を関連付ける前に、同じエッジゾーンに エッジ EIP を作成していることを確認してください。

    2. NAT ゲートウェイの SNAT ルールを設定します

      1. [アクション] 列で、更多 をクリックし、[SNAT エントリの作成] を選択します。

      2. [SNAT エントリの作成] ページで、パラメーターを設定し、[OK] をクリックします。

        image

    3. インターネットにアクセスできることを確認します。

      `dig` コマンドを使用して接続性を確認します:

      image.png

      説明

      ping コマンドを使用して接続性をテストしないでください。追加の設定がない場合、インターネットへの ping は失敗する可能性があります。これは、次の理由によります:

      • ENS セキュリティグループにはデフォルトのインバウンドルールがあります。インスタンスがセキュリティグループに関連付けられており、ICMP トラフィックを許可するインバウンドルールが追加されていない場合、ping 応答パケットはブロックされます。

      • ENS NAT Gateway は現在、ICMP プロトコルのセッション維持をサポートしていません。