サイトをオフラインにする

これは、クライアントリクエストを処理しないようにサイトをオフラインにする方法について説明します。

この手順を使用する場合

デプロイメントライフサイクル中に、メンテナンスやソフトウェアアップグレードのために、サイトの1つを一時的にオフラインにする必要がある場合があります。 メンテナンスが必要なサイトにユーザーリクエストがルーティングされないようにするには、サイトをロードバランサー構成から削除する必要があります。

手順

トラフィックがルーティングされないようにロードバランサーからサイトを削除するには、次の手順に従います。

グローバルアクセラレータ

  1. オンラインに保つサイトに関連付けられているネットワークロードバランサー(NLB)のARNを特定します。

    コマンド
    NAMESPACE= (1)
    REGION= (2)
    HOSTNAME=$(kubectl -n $NAMESPACE get svc accelerator-loadbalancer --template="{{range .status.loadBalancer.ingress}}{{.hostname}}{{end}}")
    aws elbv2 describe-load-balancers \
      --query "LoadBalancers[?DNSName=='${HOSTNAME}'].LoadBalancerArn" \
      --region ${REGION} \
      --output text
    1 Keycloakデプロイメントを含むKubernetes名前空間
    2 KubernetesクラスターをホストしているAWSリージョン
    出力
    arn:aws:elasticloadbalancing:eu-west-1:606671647913:loadbalancer/net/a49e56e51e16843b9a3bc686327c907b/9b786f80ed4eba3d
  2. アクセラレータエンドポイントグループを更新して、単一のサイトのみを含めるようにします。

    1. グローバルアクセラレータのエンドポイントグループ内の現在のエンドポイントをリストします。

      コマンド
      ACCELERATOR_NAME= (1)
      ACCELERATOR_ARN=$(aws globalaccelerator list-accelerators \
        --query "Accelerators[?Name=='${ACCELERATOR_NAME}'].AcceleratorArn" \
        --region us-west-2 \ (2)
        --output text
      )
      LISTENER_ARN=$(aws globalaccelerator list-listeners \
        --accelerator-arn ${ACCELERATOR_ARN} \
        --query "Listeners[*].ListenerArn" \
        --region us-west-2 \
        --output text
      )
      aws globalaccelerator list-endpoint-groups \
        --listener-arn ${LISTENER_ARN} \
        --region us-west-2
      1 更新するアクセラレータの名前
      2 AWSグローバルアクセラレータをクエリする場合、リージョンは常にus-west-2に設定する必要があります。
      出力
      {
          "EndpointGroups": [
              {
                  "EndpointGroupArn": "arn:aws:globalaccelerator::606671647913:accelerator/d280fc09-3057-4ab6-9330-6cbf1f450748/listener/8769072f/endpoint-group/a30b64ec1700",
                  "EndpointGroupRegion": "eu-west-1",
                  "EndpointDescriptions": [
                      {
                          "EndpointId": "arn:aws:elasticloadbalancing:eu-west-1:606671647913:loadbalancer/net/a49e56e51e16843b9a3bc686327c907b/9b786f80ed4eba3d",
                          "Weight": 128,
                          "HealthState": "HEALTHY",
                          "ClientIPPreservationEnabled": false
                      },
                      {
                          "EndpointId": "arn:aws:elasticloadbalancing:eu-west-1:606671647913:loadbalancer/net/a3c75f239541c4a6e9c48cf8d48d602f/5ba333e87019ccf0",
                          "Weight": 128,
                          "HealthState": "HEALTHY",
                          "ClientIPPreservationEnabled": false
                      }
                  ],
                  "TrafficDialPercentage": 100.0,
                  "HealthCheckPort": 443,
                  "HealthCheckProtocol": "TCP",
                  "HealthCheckIntervalSeconds": 30,
                  "ThresholdCount": 3
              }
          ]
      }
    2. 手順1で取得したNLBのみを含めるようにエンドポイントグループを更新します。

      コマンド
      aws globalaccelerator update-endpoint-group \
        --endpoint-group-arn arn:aws:globalaccelerator::606671647913:accelerator/d280fc09-3057-4ab6-9330-6cbf1f450748/listener/8769072f/endpoint-group/a30b64ec1700 \
        --region us-west-2 \
        --endpoint-configurations '
        [
          {
              "EndpointId": "arn:aws:elasticloadbalancing:eu-west-1:606671647913:loadbalancer/net/a49e56e51e16843b9a3bc686327c907b/9b786f80ed4eba3d",
              "Weight": 128,
              "ClientIPPreservationEnabled": false
          }
        ]
      '
このページについて