環境セットアップ
Amazon EKS 上の OpenLM Platform 用に AWS インフラをプロビジョニングするには、Terraform を使うか、リソースを手動で作成します。各インフラサービスは、AWS マネージドサービスまたはクラスタ内のいずれかで実行します。
詳細なサイジングとサービス仕様は 要件 を参照してください。
インフラコンポーネント
OpenLM Platform が必要とするのは各インフラサービスのエンドポイントだけなので、マネージドサービスの代わりにデプロイパッケージのチャートを使用できます。Kafka には Amazon MSK を使用し、使用できない場合は クラスタ内 Kafka を使用します。
AWS デプロイでは、次のサービスを使用します。
| コンポーネント | AWS サービス | 用途 |
|---|---|---|
| Kubernetes | Amazon EKS | コンテナオーケストレーション |
| SQL database | Amazon RDS for SQL Server | Identity、operational、reporting データ |
| Message broker | Amazon MSK(推奨)、またはクラスタ内の Kafka | イベントストリーミング(Kafka) |
| Cache | Amazon ElastiCache for Valkey | キャッシュおよびセッションストレージ |
| MongoDB | MongoDB Atlas または self-hosted | ドキュメントストレージ(AWS DocumentDB は未サポート) |
Terraform リファレンス
完全な AWS インフラを構築するための Terraform 構成がリファレンスとして提供されています。この構成はデプロイパッケージに含まれており、入手するには OpenLM にお問い合わせください。この構成で構築されるリソースは次のとおりです。
- Networking: 3 つの availability zones にまたがる public / private subnets を持つ VPC、NAT gateway、S3 gateway endpoint
- EKS cluster: ノードラベル付き managed node groups、OIDC provider、EBS CSI driver、control plane logging
- RDS SQL Server: Multi-AZ、gp3 ストレージ、enhanced monitoring、Performance Insights
- MSK (Kafka): SASL/SCRAM 認証、TLS 暗号化、CloudWatch logging を備えた 3 brokers
- ElastiCache (Redis): 暗号化と認証を有効化した 3-node replication group
- Security: シークレット、ログ、保存データ向けの KMS customer-managed keys
この構成は常に MSK を作成します。Kafka をクラスタ内で実行する場合は、適用する前に MSK のリソースを削除してください。
この構成で作成されるノードグループには openlm.com/role=main-workload と openlm.com/role=reporting-workload のラベルが付与されますが、OpenLM Platform チャートのノードアフィニティはこれらのラベルと一致しません。構成を適用する前にラベルを openlm.com/role=main と openlm.com/role=spark に変更するか、ノードアフィニティ の説明に従ってノードアフィニティを無効にしてください。
Terraform 構成は出発点となるリファレンスです。適用前に、組織のセキュリティポリシー、命名規則、ネットワークトポロジーに合わせて確認・調整してください。
主な Terraform 変数
主な Terraform 変数を次の表に示します。
| 変数 | デフォルト | 説明 |
|---|---|---|
eks_version | 1.34 | Kubernetes バージョン |
eks_public_access_cidrs | [] | EKS API の public access を許可する CIDRs |
db_engine | sqlserver-se | RDS エンジン(SQL Server Standard) |
db_instance_class | db.m6i.xlarge | RDS インスタンスサイズ |
main_instance_type | m6i.xlarge | Main workload ノードのインスタンスタイプ |
reporting_instance_type | m6i.xlarge | Reporting ノードのインスタンスタイプ |
infra_instance_type | m6i.large | Infrastructure ノードのインスタンスタイプ |
msk_kafka_version | 3.8.x | Kafka バージョン |
msk_instance_type | kafka.m5.large | MSK broker のインスタンスタイプ |
cache_node_type | cache.m6g.large | ElastiCache ノードタイプ |
Terraform 構成の適用
次のコマンドを実行します。
# Initialize Terraform
terraform init
# Review the plan
terraform plan -var-file="production.tfvars"
# Apply
terraform apply -var-file="production.tfvars"
適用後、Terraform は Helm チャート設定に必要な接続情報を出力します。
- EKS cluster endpoint
- RDS SQL Server endpoint
- MSK bootstrap brokers (SASL/SCRAM)
- Redis primary と reader endpoints
すべての接続文字列をまとめた managed-connections.txt ファイルも生成されます。
手動構築
Terraform を使わない場合は、次のリソースを手動で構築してください。詳細仕様は インフラ要件 を参照してください。
Network
次のネットワークリソースを用意します。
- 少なくとも
/22の CIDR block を持つ VPC - ワークロード用の private subnets を 3 つ(各 availability zone に 1 つ)
- ロードバランサー用の public subnets を 3 つ
- Private subnets からの outbound internet 用 NAT gateway
EKS cluster
次の設定で EKS cluster を構成します。
- API endpoint で public / private access を有効化
- Public access は組織の CIDRs に制限
- Control plane logging(API、audit、authenticator、controller manager、scheduler)を有効化
- 永続ボリューム用に EBS CSI driver をインストール
Node groups
次の 3 つの managed node groups をラベル付きで作成します。
| Node group | Instance type | Count | Label |
|---|---|---|---|
| Infrastructure | m6i.large | 1 | openlm.com/role=infrastructure-workload |
| Main workload | m6i.xlarge | 3 | openlm.com/role=main |
| Reporting | m6i.xlarge | 3 | openlm.com/role=spark |
Managed services
RDS と ElastiCache を インフラ要件 に記載の構成で用意します。MSK は、Kafka をクラスタ内で実行しない場合にのみ用意します。Security groups が EKS cluster security group からの通信を許可していることを確認してください。
クラスタ内 Kafka
AWS の Kafka には Amazon MSK を使用してください。Amazon MSK を利用できない組織では、OpenLM がデプロイパッケージとともに提供する Kafka チャートをデプロイします。チャートには専用の values ファイルが付属します。プラットフォームはクラスタ内アドレスで Kafka に接続し(このリスナーに認証はありません)、他のパスと同様にインストール後にトピックを作成します。RedPanda などの Kafka 互換ブローカーはサポートされません。
-
インフラ用の namespace を作成します。
kubectl create namespace openlm-infrastructure -
values ファイルで、
controller.persistence.storageClassに EBS のgp3storage class を、controller.persistence.sizeに予定するストレージ容量を設定します。MSK broker と同じ容量、サイジングベースライン では 250 GB を確保してください。プラットフォームの Kafka トラフィックは軽く、OpenLM 自身の本番環境でも 1 MiB/s 未満なので、スループットではなく保持期間を基準に計画してください。Kafka をインフラ node group に配置するには、openlm.com/role=infrastructure-workloadラベルへのノードアフィニティを追加します。 -
チャートをインストールします。
helm install kafka kafka-<version>.tgz -f values.yaml -n openlm-infrastructure
プラットフォームの secret に設定する bootstrap endpoint は kafka.openlm-infrastructure.svc.cluster.local:9092 です。シークレットを作成する を参照してください。
MongoDB
AWS DocumentDB はサポートされません。次のいずれかを使用します。
- MongoDB Atlas: VPC peering で直接接続できるマネージドサービス。推奨です。
- Self-hosted in Kubernetes: Helm チャートを使ってクラスタ内に MongoDB をデプロイします。
次の手順
インフラをプロビジョニングした後、次の手順を実行します。
kubectlを EKS クラスタへ接続するよう設定aws eks update-kubeconfig --name openlm-eks --region eu-central-1- 前提条件 チェックリストを完了
- プラットフォームのインストール に進む
ドキュメントチームは、大規模言語モデルを使ってこのページを下書きすることがあります。公開前に、テクニカルライターがすべてのページをレビューし、製品と照らし合わせて検証します。最終的な判断は人間が行います。