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 を決定するには、サービス メッシュ プロダクトのドキュメントを参照する必要があります。Anthos 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、Enterprise ティアの CA プールで 15 です。以下の手順は、DevOps 階層の CA プールを対象としています。

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

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

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

        gcloud privateca roots create root-4 --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 を使用してリソースをモニタリングするをご覧ください。

次のステップ