Message Processor または Router のネットワーク到達性を有効または無効にする

サーバーの再起動やアップグレードなどのメンテナンス中は、サーバーのネットワーク到達性を無効にすることをおすすめします。ネットワーク到達性が無効になっている場合、トラフィックはサーバーに転送されません。たとえば、Message Processor で到達可能性が無効になっている場合、Router はその Message Processor にトラフィックを転送しません。

たとえば、Message Processor をアップグレードするには、次の手順を使用します。

  1. Message Processor で到達可能性を無効にします。
  2. Message Processor をアップグレードします。
  3. Message Processor で到達可能性を有効にします。

Message Processor でのネットワーク到達性の無効化/有効化

Message Processor でネットワーク到達性を無効にするには、Message Processor を停止します。

/opt/apigee/apigee-service/bin/apigee-service edge-message-processor stop

Message Processor は、シャットダウンする前に、保留中のメッセージを処理します。新しいリクエストは、使用可能な他の Message Processor に転送されます。

Message Processor を再起動するには、次のコマンドを使用します。

/opt/apigee/apigee-service/bin/apigee-service edge-message-processor start
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor wait_for_ready

Message Processor がメッセージを処理する準備が整うと、wait_for_ready コマンドは次のメッセージを返します。

Checking if message-processor is up: message-processor is up.

Router でのネットワーク到達性の無効化/有効化

本番環境では、通常、Edge Router の前にロードバランサを配置します。ロードバランサは、ルーターのポート 15999 をモニタリングして、ルートが使用可能であることを確認します。

次の URL を使用して、Router で HTTP または TCP ヘルスチェックを実行するようにロードバランサを構成します。

http://router_IP:15999/v1/servers/self/reachable

Router に到達可能な場合、この URL は HTTP 200 レスポンス コードを返します。

Router に到達できないようにするには、Router のポート 15999 をブロックします。ロードバランサがポート 15999 でルーターにアクセスできない場合、リクエストはルーターに転送されません。たとえば、Router ノードで次の iptables コマンドを使用してポートをブロックできます。

sudo iptables -A INPUT -i eth0 -p tcp --dport 15999 -j REJECT

後でルーターを使用できるようにするには、iptables をフラッシュします。

sudo iptables -F

iptables を使用してノード上の他のポートを管理している可能性があるため、iptables をフラッシュするか、iptables を使用してポート 15999 をブロックする場合は、その点を考慮する必要があります。他のルールに iptables を使用している場合は、-D オプションを使用して特定の変更を元に戻すことができます。

sudo iptables -D INPUT -i eth0 -p tcp --dport 15999 -j REJECT

ルーターのヘルスチェックを行う

ルーターでは、次のタイプのヘルスチェックを実行できます。

  • Liveness: コンポーネントを再起動できることをモニタリング サブシステムに通知するシグナル。次に例を示します。
    To check a router's liveness:
    http://router_IP:8081/v1/servers/self/up
    
    To check a load balancer's liveness:
    http://router_IP:15999/v1/servers/self/reachable
  • Readyness: ルーターが特定の環境に対するお客様のリクエストを処理できるかどうかを判断します。

    次に例を示します。

    To check both a router and MP pool's availability:
    http://router_IP:15999/{org}__{env}

    Router のステータスを取得するには、Router のポート 8081 にリクエストを送信します。

    curl -v http://router_IP:8081/v1/servers/self/up

    Router が稼働している場合、リクエストはレスポンスで「true」と HTTP 200 を返します。この呼び出しでは、Router が稼働しているかどうかのみがチェックされます。ロードバランサからのルーターの到達可能性の制御は、ポート 15999 によって決定されます。

    Message Processor のステータスを取得するには:

    curl http://Message_Processor_IP:8082/v1/servers/self/up