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

Microservices Engine:MSE クラウドネイティブゲートウェイをエグレスゲートウェイとして設定

最終更新日:Jun 23, 2026

エグレスゲートウェイは、内部ネットワークを外部ネットワークに接続するエッジゲートウェイです。ネットワークトラフィックを制御し、リモートアクセスと通信を可能にします。MSE クラウドネイティブゲートウェイをエグレスゲートウェイとして使用することで、お使いの Container Service for Kubernetes (ACK) クラスターに、安定性、効率性、安全性に優れたネットワークエグレスサービスを提供できます。これにより、エグレストラフィックの管理とセキュリティコントロールの実装が可能になります。

MSE クラウドネイティブゲートウェイのメリット

  • MSE クラウドネイティブゲートウェイは、独立してデプロイおよび管理されるゲートウェイを提供します。ACK クラスターから分離されているため、より高い安定性が保証されます。

  • MSE クラウドネイティブゲートウェイは、IP 許可リストと拒否リスト、トラフィックスロットリング、負荷分散、TLS オフロード、トラフィックミラーリング、ヘッダー制御など、レイヤー 7 の HTTP ガバナンス機能を提供します。

  • ACK クラスター内のすべての Pod でパブリックネットワークアクセスを有効にする必要はありません。代わりに、MSE クラウドネイティブゲートウェイの vSwitch に SNAT を設定することで、ゲートウェイのみにパブリックアクセスを有効にします。これにより、攻撃対象領域が減少し、セキュリティが強化されます。

デプロイアーキテクチャ

image.png

操作手順

手順1:MSE Ingress Controller のインストール

既存の Container Service for Kubernetes (ACK) クラスターまたはACK Serverless クラスターに MSE Ingress Controller をインストールするか、新しいクラスターを作成する際にインストールします。詳細については、「MSE Ingress Controller コンポーネントの管理」をご参照ください。

手順2:MseIngressConfig リソースの作成

MseIngressConfig は、MSE Ingress Controller によって提供される Custom Resource Definition (CRD) です。MseIngressConfig リソースを作成して、MSE マネージドゲートウェイインスタンスを作成または関連付けることができます。詳細については、「MSE クラウドネイティブゲートウェイインスタンスの作成」をご参照ください。

ゲートウェイを作成する際は、内部向けのクラシックロードバランサー (CLB) を作成するだけで済みます。以下に設定例を示します。

apiVersion: mse.alibabacloud.com/v1alpha1
kind: MseIngressConfig
metadata:
  name: egress-gateway
spec:
  name: egress-gateway
  common:
    instance:
      spec: 2c4g
      replicas: 3
    network:
      vSwitches:
        - "vsw-xxxx" # ゲートウェイがバインドされる vSwitch の ID。
      privateSLBSpec: slb.s2.small
説明

ACK クラスターまたはACK Serverless クラスターの作成時に [VPC の SNAT を設定] を選択しなかった場合、クラスターはインターネットにアクセスできません。パブリックアクセスを有効にするには、ゲートウェイに個別に SNAT を設定する必要があります。

パブリックネットワークアクセスには、NAT ゲートウェイの SNAT エントリが必要です。NAT ゲートウェイの作成については、「パブリック NAT ゲートウェイの SNAT 機能を使用したインターネットアクセス」をご参照ください。リンク先のドキュメントで、「手順3:SNAT エントリの作成」の指示に従ってください。SNAT エントリでは、[vSwitch] を選択し、MseIngressConfig の vSwitch ID を指定します。

手順3:ExternalName サービスの作成

Kubernetes の ExternalName サービスは、内部サービスを DNS 名にマッピングします。たとえば、Kubernetes クラスター内から Alibaba Cloud MSE の製品ページにアクセスするには、次の構成を使用できます。

apiVersion: v1
kind: Service
metadata:
  name: aliyun-svc-external
  namespace: default
spec:
  externalName: www.aliyun.com
  ports:
    - name: port1
      port: 80
      protocol: TCP
      targetPort: 80
    - name: port2
      port: 443
      protocol: TCP
      targetPort: 443
  type: ExternalName

手順4:ExternalName サービスのルーティング設定

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: mse-ingress
  namespace: default
spec:
  ingressClassName: mse
  rules:
    - host: www.aliyun.com  # ターゲットドメイン名。
      http:
        paths:
          - backend:
              service:
                name: aliyun-svc-external  # バックエンドの ExternalName サービス。
                port:
                  number: 80
            path: /product/aliware/mse  # バックエンドサービスへのアクセスパス。
            pathType: Prefix

上記の構成を mse-ingress.yaml として保存し、kubectl apply -f mse-ingress.yaml を実行します。次に、kubectl get ingress mse-ingress -o yaml を実行して Ingress リソースを表示し、MSE クラウドネイティブゲートウェイの CLB アドレスを取得します。以下に出力例を示します。

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  annotations:
    nginx.ingress.kubernetes.io/backend-protocol: HTTPS  # Alibaba Cloud サービスは HTTPS を強制するため必須です。ゲートウェイは HTTPS を使用してバックエンドサービスにルーティングする必要があります。
  name: mse-ingress
  namespace: default
spec:
  ingressClassName: mse
  rules:
    - host: www.aliyun.com
      http:
        paths:
          - backend:
              service:
                name: aliyun-svc-external
                port:
                  number: 443
            path: /product/aliware/mse  
            pathType: Prefix
status:
  loadBalancer:
    ingress:
      - ip: xx.xx.xx.xx  # これを MSE クラウドネイティブゲートウェイの CLB アドレスに置き換えます。

手順5:外部サービスへのアクセスの確認

curl http://www.aliyun.com/product/aliware/mse --resolve  www.aliyun.com:80:xx.xx.xx.xx
説明

xx.xx.xx.xx手順4で取得したゲートウェイの CLB の IP アドレスに置き換えてください。

関連ドキュメント

Ingress で他の高度なゲートウェイ機能を使用する方法については、「MSE Ingress の高度な使用方法」をご参照ください。