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 個の新しいワークロードが作成されます。 |
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、Enterprise ティアの CA プールで 15 です。次の手順は、DevOps ティアの CA プールを対象としています。
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 を作成する必要があります。
root-2
という名前のルート CA を作成するには、次のgcloud
コマンドを使用します。gcloud privateca roots create root-2 --pool POOL_NAME --subject="CN=root-2,O=google"
root-3
という名前のルート CA を作成するには、次のgcloud
コマンドを使用します。gcloud privateca roots create root-3 --pool POOL_NAME --subject="CN=root-3,O=google"
root-4
という名前のルート CA を作成するには、次のgcloud
コマンドを使用します。gcloud privateca roots create root-4 --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 を使用したリソースのモニタリングをご覧ください。
次のステップ
- 割り当てと上限の詳細について学習する。