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

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

概要

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

THROUGHPUT = (ACTIVE_WORKLOADS × ROTATION_FREQUENCY) + NEW_WORKLOADS_PER_SECOND

次のように置き換えます。

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

ACTIVE_WORKLOADSACTIVE_WORKLOADS の値は、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 個の新しいワークロードが作成されます。
ROTATION_FREQUENCY 1/43200 証明書は 12 時間ごとにローテーションされます。

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

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

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

準備

必要なロケーションに 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 を使用したリソースのモニタリングをご覧ください。

次のステップ