環境について

環境は、API プロキシを実行するための分離コンテキストまたは「サンドボックス」を提供します。 1 つの組織に複数の環境を作成できます。 詳細については、環境と環境グループについてをご覧ください。

次のコードは、複数の環境が定義されている構成をオーバーライドする例を示しています。環境 prodtest のホスト エイリアスが異なることに注意してください。

namespace: my-namespace
org: my-organization
...
envs:
  - name: test
    serviceAccountPaths:
      synchronizer: "your_keypath/synchronizer-manager-service-account.json
      udca: "your_keypath/analytic-agent-service-account.json

  - name: prod
    serviceAccountPaths:
      synchronizer: "your_keypath/synchronizer-manager-service-account.json
      udca: "your_keypath/analytic-agent-service-account.json
...
  • routingRules を環境にマッピングする virtualhosts プロパティを追加します。
    virtualhosts:
      - name: default
        hostAliases: ["api.example.com"]
        sslCertPath: ./certs/fullchain.pem
        sslKeyPath: ./certs/privkey.pem
        routingRules:
          - env: test
    virtualhosts:
      - name: external
        hostAliases: ["apiprod.example.com"]
        sslCertPath: ./certs/fullchain.pem
        sslKeyPath: ./certs/privkey.pem
        routingRules:
          - env: prod

    /foo1 というベースパスを持つプロキシが環境 test にデプロイされていると仮定します。そのプロキシは次のように呼び出すことができます。

    curl -k https://api.example.com/foo1

    この呼び出しが Ingress に到着すると、Ingress は呼び出しリクエストを処理する test 環境の Message Processor(MP)に呼び出しを送信します。

    同様に、foo1prod 環境にもデプロイされている場合は、ホスト エイリアス apiprod.mydomain.net に対して次のようなプロキシ リクエストを発行できます。

    curl -k https://apiprod.example.com/foo1

    この呼び出しは、Ingress によって当該ホストの MP にルーティングされます。

    アンチパターン: すべてのプロキシを 1 つのハイブリッド環境にデプロイする。

    ベスト プラクティス: 複数の環境を作成し、各環境に限られた数のプロキシをデプロイする。特定の API プロキシのベースパスをルーティングする環境を指定するルーティング ルールを作成できます。詳細については、仮想ホストの構成をご覧ください。

    プロキシ デプロイメントの数を制限する

    ハイブリッドの場合、複数の環境で同じ仮想ホストを共有できるということは、特定の環境へのプロキシ デプロイメントの管理方法を慎重に検討する必要があることを意味します。ハイブリッドでは、複数の環境を作成して、それぞれに限られた数のプロキシをデプロイするベスト プラクティスをおすすめします。

    環境にはプロキシをいくつデプロイすべきですか?この質問に対する決まった答えはありません。ただし、次の表では、各環境にデプロイするプロキシの数を制限することが推奨される理由と、プロキシ デプロイメントの管理で考慮すべきことに関する一般的なガイダンスをまとめています。

    考慮すべき課題 説明
    Message Processor の起動時間 Message Processor(MP)が起動するまでの時間とその MP にデプロイされるプロキシの数には直接的な相関関係があります。自動スケーリング Kubernetes 環境では、起動時間の増加が問題になることがあります。MP にデプロイされるプロキシが多いほど、その MP のスケーリングや再作成が必要な場合の MP の起動時間が長くなります。
    スケーリングのパフォーマンス 1 つの環境に複数のプロキシがデプロイされ、プロキシの 1 つが大量のトラフィックを受信するために頻繁に自動スケーリングされる場合は、その環境内のすべてのプロキシが一緒にスケーリングされます。複数のプロキシをスケーリングする際、高トラフィックのプロキシが 1 つでもあると、パフォーマンスが低下することがあります。
    ノイジー ネイバー 同じ環境に複数のプロキシがデプロイされた状態で、プロキシが 1 つでもクラッシュすると、MP の再起動中にその環境内のすべてのプロキシが停止します。環境にデプロイするプロキシの数を制限することにより、1 つのプロキシがクラッシュした場合の影響を最小限に抑えられます。

    環境構成のリファレンス

    環境構成要素の完全な一覧については、構成プロパティ リファレンスenvs をご覧ください。

    環境の操作

    構成の詳細については、以下のトピックをご覧ください。