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

環境セットアップ

このページでは、Amazon EKS と AWS マネージドサービスを使って OpenLM Platform の AWS インフラを構築する方法を説明します。

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

インフラコンポーネント

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

コンポーネントAWS サービス用途
KubernetesAmazon EKSコンテナオーケストレーション
SQL databaseAmazon RDS for SQL ServerIdentity、operational、reporting データ
Message brokerAmazon MSKイベントストリーミング(Kafka)
CacheAmazon ElastiCache for Redisキャッシュおよびセッションストレージ
MongoDBMongoDB Atlas または self-hostedドキュメントストレージ(AWS DocumentDB は未サポート)

Terraform リファレンス

完全な AWS インフラを構築するための Terraform 構成がリファレンスとして提供されています。これにより次が構築されます。

  • 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
注意

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 構成の適用

# Terraform を初期化
terraform init

# 実行計画を確認
terraform plan -var-file="production.tfvars"

# 適用
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 を使わない場合は、次のリソースを手動で構築してください。詳細仕様は Managed EKS infrastructure requirements を参照してください。

Network

  • 少なくとも /22 の CIDR block を持つ VPC
  • ワークロード用の private subnets を 3 つ(各 availability zone に 1 つ)
  • ロードバランサー用の public subnets を 3 つ
  • Private subnets からの outbound internet 用 NAT gateway

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-workload
Reportingm6i.xlarge3openlm.com/role=reporting-workload

Managed services

RDS、MSK、ElastiCache を 要件ページ に記載の構成で用意します。Security groups が EKS cluster security group からの通信を許可していることを確認してください。

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. プラットフォームのインストール に進む