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