メインコンテンツまでスキップ

環境セットアップ

Amazon EKS 上の OpenLM Platform 用に AWS インフラをプロビジョニングするには、Terraform を使うか、リソースを手動で作成します。各インフラサービスは、AWS マネージドサービスまたはクラスタ内のいずれかで実行します。

詳細なサイジングとサービス仕様は 要件 を参照してください。

インフラコンポーネント​

OpenLM Platform が必要とするのは各インフラサービスのエンドポイントだけなので、マネージドサービスの代わりにデプロイパッケージのチャートを使用できます。Kafka には Amazon MSK を使用し、使用できない場合は クラスタ内 Kafka を使用します。

AWS デプロイでは、次のサービスを使用します。

コンポーネントAWS サービス用途
KubernetesAmazon EKSコンテナオーケストレーション
SQL databaseAmazon RDS for SQL ServerIdentity、operational、reporting データ
Message brokerAmazon MSK(推奨)、またはクラスタ内の Kafkaイベントストリーミング(Kafka)
CacheAmazon ElastiCache for Valkeyキャッシュおよびセッションストレージ
MongoDBMongoDB 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_version1.34Kubernetes バージョン
eks_public_access_cidrs[]EKS API の public access を許可する CIDRs
db_enginesqlserver-seRDS エンジン(SQL Server Standard)
db_instance_classdb.m6i.xlargeRDS インスタンスサイズ
main_instance_typem6i.xlargeMain workload ノードのインスタンスタイプ
reporting_instance_typem6i.xlargeReporting ノードのインスタンスタイプ
infra_instance_typem6i.largeInfrastructure ノードのインスタンスタイプ
msk_kafka_version3.8.xKafka バージョン
msk_instance_typekafka.m5.largeMSK broker のインスタンスタイプ
cache_node_typecache.m6g.largeElastiCache ノードタイプ

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 groupInstance typeCountLabel
Infrastructurem6i.large1openlm.com/role=infrastructure-workload
Main workloadm6i.xlarge3openlm.com/role=main
Reportingm6i.xlarge3openlm.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 互換ブローカーはサポートされません。

  1. インフラ用の namespace を作成します。

    kubectl create namespace openlm-infrastructure
  2. values ファイルで、controller.persistence.storageClass に EBS の gp3 storage class を、controller.persistence.size に予定するストレージ容量を設定します。MSK broker と同じ容量、サイジングベースライン では 250 GB を確保してください。プラットフォームの Kafka トラフィックは軽く、OpenLM 自身の本番環境でも 1 MiB/s 未満なので、スループットではなく保持期間を基準に計画してください。Kafka をインフラ node group に配置するには、openlm.com/role=infrastructure-workload ラベルへのノードアフィニティを追加します。

  3. チャートをインストールします。

    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 をデプロイします。

次の手順​

インフラをプロビジョニングした後、次の手順を実行します。

  1. kubectl を EKS クラスタへ接続するよう設定
    aws eks update-kubeconfig --name openlm-eks --region eu-central-1
  2. 前提条件 チェックリストを完了
  3. プラットフォームのインストール に進む

ドキュメントチームは、大規模言語モデルを使ってこのページを下書きすることがあります。公開前に、テクニカルライターがすべてのページをレビューし、製品と照らし合わせて検証します。最終的な判断は人間が行います。