ScalarDL Ledger および ScalarDL Auditor 用の EKS クラスターを作成するためのガイドライン
このページは英語版のページが機械翻訳されたものです。英語版との間に矛盾または不一致がある場合は、英語版を正としてください。
このドキュメントでは、ScalarDL Ledger および ScalarDL Auditor のデプロイ用の Amazon Elastic Kubernetes Service (EKS) クラスターを作成するための要件と推奨事項について説明します。 ScalarDL Ledger と ScalarDL Auditor を EKS クラスターにデプロイする方法の詳細については、ScalarDL Ledger と ScalarDL Auditor を Amazon EKS にデプロイする を参照してください。
あなたが始める前に
EKS クラスターは、次の要件、推奨事項、およびプロジェクトの要件に基づいて作成する必要があります。 EKS クラスターの作成方法の詳細については、Amazon の公式ドキュメント Creating an Amazon EKS cluster を参照してください。
要件
ScalarDL Ledger と ScalarDL Auditor を展開する場合は、次のことを行う必要があります。
- Kubernetes バージョン 1.21 以降を使用して 2 つの EKS クラスターを作成します。
- ScalarDL Ledger 用の 1 つの EKS クラスター
- ScalarDL Auditor 用の 1 つの EKS クラスター
- Kubernetes のバージョンとプロジェクトの要件に基づいて EKS クラスターを構成します。
※ Amazon Virtual Private Cloud (VPC) は次のように設定します。
- EKS の VPC (Ledger 用) と EKS の VPC (Auditor 用) を VPC peering を使用して接続します。 これを行うには、VPC の作成時に EKS の VPC (Ledger 用) と EKS の VPC (Auditor 用) に異なる IP 範囲を指定する必要があります。
- ScalarDL (Auditor モード) が適切に動作するように Ledger と Auditor 間の接続を許可します。
- これらのネットワーク要件の詳細については、ScalarDL Auditor Mode のネットワーク ピアリングの構成 を参照してください。
ScalarDL でのビザンチン障害検出が適切に機能するには、ScalarDL Ledger および ScalarDL Auditor のデプロイメントと同じ EKS クラスターにアプリケーション ポッドをデプロイしないでください。
推奨事項 (オプション)
以下は、ScalarDL Ledger および ScalarDL Auditor を展開するための推奨事項の一部です。 これらの推奨事項は必須ではないため、ニーズに基づいてこれらの推奨事項を適用するかどうかを選択できます。
EKS クラスターごとに少なくとも 3 つのワーカーノードと 3 つのポッドを作成します
EKS クラスターの高可用性を確保するには、少なくとも 3 つのワーカーノードを使用し、ワーカーノード全体に少なくとも 3 つのポッドをデプロイする必要があります。 3 つの Pod をワーカーノードに分散させるための podAntiAffinity
の ScalarDL Ledger サンプル構成 と ScalarDL Auditor サンプル構成 を参照できます。
ワーカーノードを異なる availability zones (AZ) に配置すると、AZ の障害に耐えることができます。
ScalarDL Ledger および ScalarDL Auditor ノード グループのワーカーノードには 4vCPU / 8GB メモリ ノードを使用します。
商用ライセンスの観点から、ScalarDL Ledger または ScalarDL Auditor を実行する各ポッドのリソースは 2vCPU / 4GB メモリに制限されます。 ScalarDL Ledger および ScalarDL Auditor ポッドに加えて、Kubernetes は次のコンポーネントの一部を各ワーカーノードにデプロイできます。
- ScalarDL Ledger 用の EKS クラスター
- ScalarDL Ledger ポッド (2vCPU / 4GB)
- Envoy プロキシ
- 監視コンポーネント (
kube-prometheus-stack
などの監視コンポーネントをデプロイする場合) - Kubernetes コンポーネント
- ScalarDL Auditor 用の EKS クラスター
- ScalarDL Auditor ポッド (2vCPU / 4GB)
- Envoy プロキシ
- 監視コンポーネント (
kube-prometheus-stack
などの監視コンポーネントをデプロイする場合) - Kubernetes コンポーネント
これを念頭に置き、少なくとも 3 つのワーカーノードと 3 つのポッドを作成する で説明されているように、少なくとも 4vCPU / 8 GB のメモリ リソースを持つワーカーノードを使用し、可用性のために少なくとも 3 つのワーカーノードを使用する必要があります。 また、ビザンチン障害検出が適切に機能するには、ScalarDL Ledger および ScalarDL Auditor のデプロイメントと同じ EKS クラスターにアプリケーション ポッドをデプロイできないことを覚えておいてください。
ただし、実稼働環境としては、ノードあたり少なくとも 4vCPU / 8GB のメモリ リソースを持つ 3 つのノードが必要です。 システムのワークロードに応じて、EKS クラスターのリソース (ワーカーノードの数、ノードあたりの vCPU、ノードあたりのメモリ、ScalarDL Ledger ポッド、ScalarDL Auditor ポッドなど) も考慮する必要があります。 また、Horizontal Pod Autoscaling (HPA) などの機能を使用してポッドを自動的にスケーリングする予定の場合は、ワーカーノードのリソースを決定するときにワーカーノード上の最大ポッド数を考慮する必要があります。
EKS でクラスター オートスケーラーを構成する
Horizontal Pod Autoscaler を使用して ScalarDL Ledger または ScalarDL Auditor ポッドを自動的にスケーリングする場合は、EKS でクラスター オートスケーラーも構成する必要があります。 詳細については、Amazon の公式ドキュメント Autoscaling を参照してください。
さらに、クラスタ ー オートスケーラーを構成する場合は、スケーリング後にネットワークの問題なく EKS が動作できるように、十分な数の IP が存在することを確認するために、プレフィックス (/24
など) を付けて EKS 用の VPC にサブネットを作成する必要があります。
プライベート ネットワーク上に EKS クラスターを作成する
ScalarDL Ledger と ScalarDL Auditor はインターネット アクセス経由でユーザーに直接サービスを提供しないため、プライベート ネットワーク (VPC 内のプライベート サブネット) 上に EKS クラスターを作成する必要があります。 アプリケーションからプライベート ネットワーク経由で ScalarDL Ledger および ScalarDL Auditor にアクセスすることをお勧めします。
要件に基づいていくつかのセキュリティ機能を使用して接続を制限する
ScalarDL Ledger およ び ScalarDL Auditor で未使用の接続を制限する必要があります。 未使用の接続を制限するには、security groups や network access control lists など、AWS のいくつかのセキュリティ機能を使用できます。
ScalarDL Ledger および ScalarDL Auditor がデフォルトで使用する接続 (ポート) は次のとおりです。
- ScalarDL Ledger
- 50051/TCP (クライアントおよび ScalarDL Auditor からのリクエストを受け入れる)
- 50052/TCP (クライアントおよび ScalarDL Auditor からの特権リクエストを受け入れます)
- 50053/TCP (scalar-admin クライアント ツールからの一時停止および一時停止解除リクエストを受け入れます)
- 8080/TCP (監視リクエストを受け付ける)
- ScalarDL Auditor
- 40051/TCP (クライアントからのリクエストを受け付ける)
- 40052/TCP (クライアントからの特権リクエストを受け入れます)
- 40053/TCP (scalar-admin クライアント ツールからの一時停止および一時停止解除リクエストを受け入れます)
- 8080/TCP (監視リクエストを受け付ける)
- Scalar Envoy (ScalarDL Ledger および ScalarDL Auditor とともに使用)
- 50051/TCP (ScalarDL Ledger の負荷分散)
- 50052/TCP (ScalarDL Ledger の負荷分散)
- 40051/TCP (ScalarDL Auditor の負荷分散)
- 40052/TCP (ScalarDL Auditor の負荷分散)
- 9001/TCP (Scalar Envoy 自体の監視リクエストを受け入れます)
- 設定ファイル (それぞれ
ledger.properties
とauditor.properties
) で ScalarDL Ledger と ScalarDL Auditor のデフォルトのリスニング ポートを変更する場合は、設定したポートを使用して接続を許可する必要があります。 - EKS 自体が使用する接続も許可する必要があります。 Amazon EKS セキュリティグループの要件の詳細については、Amazon EKS security group requirements and considerations を参照してください。