CA プールを使用した証明書の作成スループットの向上

このページでは、認証局(CA)プールを使用して証明書の作成レートを増やす方法について説明します。CA プールについては、CA プールの概要をご覧ください。

概要

証明書の作成スループットは秒間クエリ数(QPS)で測定されます。サービス メッシュでは、次の式を使用して証明書の作成スループットを概算できます。

THROUGHPUT = (ACTIVE_WORKLOADS × ROTATION_FREQUENCY) + NEW_WORKLOADS_PER_SECOND

以下を置き換えます。

  • ACTIVE_WORKLOADS: 特定の時点で実行されているワークロードの合計数
  • ROTATION_FREQUENCY: 証明書が 1 秒間にローテーションされる頻度
  • NEW_WORKLOADS_PER_SECOND: 新しいワークロードが作成されるレート

ACTIVE_WORKLOADSNEW_WORKLOADS_PER_SECOND の値は、Google Cloud コンソールの Google Kubernetes Engine ダッシュボードで確認できます。サービス メッシュの ROTATION_FREQUENCY を決定するには、サービス メッシュ プロダクトのドキュメントを参照する必要があります。Cloud Service Mesh の ROTATION_FREQUENCY はデフォルトで 12 時間ごとに 1 回です。これは、1 秒あたりのローテーション頻度に変換すると 1/(12×60×60) または 1/43200 になります。

長時間実行ワークロードとエフェメラル ワークロードが少ない、比較的安定したクラスタの例について考えてみましょう。

変数名 説明
ACTIVE_WORKLOADS 10000 10,000 個のワークロードが常に実行されることが予想されます。
NEW_WORKLOADS_PER_SECOND 1 1 秒ごとに 1 つの新しいワークロードが作成されます。
ROTATION_FREQUENCY 1/43200 証明書は 12 時間ごとにローテーションされます。

証明書作成レートの計算式にこれらの値を代入すると、QPS 値は 1.23 になります。

スループット = (10,000 / 43,200) + 1 = 1.23 QPS

エフェメラル ワークロードが多く、有効期間が短いワークロードを持つ別のクラスタでは、NEW_WORKLOADS_PER_SECOND の値が高くなることがあります。ROTATION_FREQUENCY の値が大きいと、割合 (ACTIVE_WORKLOADS / ROTATION_FREQUENCY)の値が非常に小さくなり、NEW_WORKLOADS_PER_SECOND が式の中で最も重要な値になります。

準備

必要なロケーションに CA プールを設定します。ロケーションの完全なリストについては、ロケーションをご覧ください。

常に高いスループットで証明書を発行することが予想される場合は、DevOps ティアで CA プールを作成することをおすすめします。これにより、パフォーマンスが向上し、コストが削減されます。CA プール内の個々の CA には最大スループットがあり、任意のプロジェクトに対して達成可能な最大有効スループットがあります。たとえば、DevOps ティアの最大スループットが CA で 25 QPS、プロジェクトで 100 QPS の場合、CA プール内に 4 つの CA を作成して、最大 100 QPS の合計有効スループットを達成する必要があります。具体的な QPS 数と割り当ての詳細については、割り当てと上限をご覧ください。

手順

  1. 必要な QPS を達成するのに十分な CA を CA プール内に作成します。必要な CA の数は、DevOps ティアの CA プールで 4、エンタープライズ ティアの CA プールで 15 です。次の手順は、DevOps ティアの CA プールに関するものです。

    1. CA プールに root-1 という名前のルート CA を作成するには、次の gcloud コマンドを使用します。

       gcloud privateca roots create root-1 \
           --location LOCATION \
           --pool POOL_NAME \
           --subject="CN=root-1,O=google"
      

      この段階での CA プールの有効 QPS の合計は 25 QPS です。CA プールの有効 QPS の合計を 100 QPS に増やすには、CA プールにさらに 3 つの CA を作成する必要があります。

    2. root-2 という名前のルート CA を作成するには、次の gcloud コマンドを使用します。

        gcloud privateca roots create root-2 \
            --location LOCATION \
            --pool POOL_NAME \
            --subject="CN=root-2,O=google"
      
    3. root-3 という名前のルート CA を作成するには、次の gcloud コマンドを使用します。

        gcloud privateca roots create root-3 \
            --location LOCATION \
            --pool POOL_NAME \
            --subject="CN=root-3,O=google"
      
    4. root-4 という名前のルート CA を作成するには、次の gcloud コマンドを使用します。

        gcloud privateca roots create root-4 \
            --location LOCATION \
            --pool POOL_NAME \
            --subject="CN=root-4,O=google"
      

      この段階では、CA プールの有効 QPS の合計は 100 QPS です。

  2. CA が STAGED 状態のときに、証明書を作成してテストします。完了したら、CA を有効にします。CA の有効化については、CA を有効にするをご覧ください。CA のテストについては、CA をテストするをご覧ください。

  3. CA 間のロード バランシングに関する監査レポートを取得して、CA プールの正常性を確認します。理想的には、各 CA によって発行される証明書の数を均一にする必要があります。

    Cloud Monitoring を使用すると、特定の期間に CA ごとに発行された証明書の数など、CA プールのロード バランシング指標をモニタリングできます。詳細については、Cloud Monitoring を使用してリソースをモニタリングするをご覧ください。

次のステップ