CA プールを使用した証明書の作成スループットの向上
このページでは、認証局(CA)プールを使用して証明書の作成レートを増やす方法について説明します。CA プールについては、CA プールの概要をご覧ください。
概要
証明書の作成スループットは秒間クエリ数(QPS)で測定されます。サービス メッシュでは、次の式を使用して証明書の作成スループットを概算できます。
THROUGHPUT = (ACTIVE_WORKLOADS × ROTATION_FREQUENCY) + NEW_WORKLOADS_PER_SECOND
以下を置き換えます。
- ACTIVE_WORKLOADS: 特定の時点で実行されているワークロードの合計数
- ROTATION_FREQUENCY: 証明書が 1 秒間にローテーションされる頻度
- NEW_WORKLOADS_PER_SECOND: 新しいワークロードが作成されるレート
ACTIVE_WORKLOADS と NEW_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 数と割り当ての詳細については、割り当てと上限をご覧ください。
手順
必要な QPS を達成するのに十分な CA を CA プール内に作成します。必要な CA の数は、DevOps ティアの CA プールで 4、エンタープライズ ティアの CA プールで 15 です。次の手順は、DevOps ティアの CA プールに関するものです。
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 を作成する必要があります。
root-2
という名前のルート CA を作成するには、次のgcloud
コマンドを使用します。gcloud privateca roots create root-2 \ --location LOCATION \ --pool POOL_NAME \ --subject="CN=root-2,O=google"
root-3
という名前のルート CA を作成するには、次のgcloud
コマンドを使用します。gcloud privateca roots create root-3 \ --location LOCATION \ --pool POOL_NAME \ --subject="CN=root-3,O=google"
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 です。
CA が
STAGED
状態のときに、証明書を作成してテストします。完了したら、CA を有効にします。CA の有効化については、CA を有効にするをご覧ください。CA のテストについては、CA をテストするをご覧ください。CA 間のロード バランシングに関する監査レポートを取得して、CA プールの正常性を確認します。理想的には、各 CA によって発行される証明書の数を均一にする必要があります。
Cloud Monitoring を使用すると、特定の期間に CA ごとに発行された証明書の数など、CA プールのロード バランシング指標をモニタリングできます。詳細については、Cloud Monitoring を使用してリソースをモニタリングするをご覧ください。
次のステップ
- 割り当てと上限の詳細について学習する。