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

デプロイパス

ここまでで、プラットフォームの構成(アーキテクチャ)、必要なインフラ(システム要件)、通信の流れ(ネットワーク)を確認しました。次は、どのデプロイモデルを選ぶかを決めます。

デプロイパスは 4 つあります。それぞれ、Kubernetes をどこで動かすか、インフラサービスをどう用意するか、そして何を自社で管理するかが異なります。

概要

パスKubernetesインフラサービス向いているケース
Platform as VMK3s(自動構成)単一 VM 上ですべて自動構成小規模顧客、デモ、PoC、評価環境
オンプレミスマシン自社サーバー上の任意の CNCF 準拠ディストリビューションすべてクラスタ内で self-hosted既存データセンターと Kubernetes 運用経験を持つ組織
プライベートクラウド (AWS)Amazon EKS(マネージド)多くを AWS マネージドサービスで構成AWS を利用している組織、または既存データセンターを持たない組織
プライベートクラウド (Azure)Azure AKS(マネージド)Azure マネージドとクラスタ内構成の混在Azure を利用している組織
推奨

既存のデータセンターや専任のインフラチームがない場合は、クラウドプロバイダー上へのデプロイを推奨します。クラウド管理型の Kubernetes とデータサービスにより、運用負荷を大きく下げられます。

現在もっともサポートが厚いクラウドパスは AWS です。 RDS、MSK、ElastiCache といったマネージドサービスの対応範囲が広く、Terraform の参照構成もあり、チーム内の導入実績も最も多い構成です。

Platform as VM

Platform as VM は、小規模顧客、デモ、評価環境向けのパスです。単一のデプロイスクリプトで、クリーンな AlmaLinux または RHEL 環境を、完全に動作する OpenLM Platform に変換します。Kubernetes やインフラの専門知識は不要です。

このスクリプトは、K3s のインストール、データベース(MariaDB、PostgreSQL、MongoDB)、Kafka、Redis、スキーマ初期化、プラットフォームサービスのデプロイまで自動化します。結果として、単一マシン上でそのまま利用できる環境が構築されます。

スクリプトが管理するもの: Kubernetes、すべてのデータベース、Kafka、Redis、MongoDB、スキーマ作成、Kafka トピック、プラットフォームサービスのすべて。

お客様が用意するもの: AlmaLinux 10.1 または RHEL 10.x の VM またはベアメタルサーバー、ドメイン名、TLS 証明書。

リソース最小(評価用)推奨
CPU4 コア8 コア以上
RAM32 GB64 GB
ストレージ100 GB SSD500 GB 以上の SSD
注意

このパスは、スケーラビリティよりもシンプルさを優先します。すべてのサービスが単一マシンを共有するため、処理できる負荷には現実的な上限があります。単一 VM の容量を超える場合は、下記のマルチノード構成への移行を検討してください。

詳細な要件は Platform as VM requirements を参照してください。
導入手順は Platform as VM deployment を参照してください。

オンプレミスマシン

オンプレミスパスでは、すべてをお客様が管理するベアメタルサーバーまたは仮想マシン上で動かします。Kubernetes とすべてのインフラサービスは自社ハードウェア上にインストールされます。

お客様が管理するもの: サーバー、OS、Kubernetes、データベース、Kafka、Redis、MongoDB、ネットワーク、証明書などすべて。

このパスでは、Kubernetes と Linux 運用の経験を持つチームが必要です。すべてのインフラサービスは、専用の infrastructure ノード上でクラスタ内実行されます。

サービス構成
SQL データベースMSSQL、または MariaDB/MySQL + PostgreSQL(クラスタ内)
Kafkaクラスタ内
Redisクラスタ内
MongoDBクラスタ内

詳細なハードウェア要件は On-premise machines requirements を参照してください。
導入手順は On-premise machines environment setup を参照してください。

プライベートクラウド (AWS)

AWS パスでは、Kubernetes に Amazon EKS を利用し、多くのインフラコンポーネントを AWS のマネージドサービスで構成します。自社の AWS アカウント内で完結させつつ、運用負荷を最も低く抑えられる構成です。

AWS が管理するもの: Kubernetes control plane、SQL Server(RDS)、Kafka(MSK)、Redis(ElastiCache)。

引き続きお客様が管理するもの: AWS アカウント、ネットワーク/VPC、EKS node groups、MongoDB(Atlas またはクラスタ内)。

サービス構成状態
SQL データベースAmazon RDS for SQL Serverサポート済み
KafkaAmazon MSKサポート済み
RedisAmazon ElastiCache for Redisサポート済み
MongoDBMongoDB Atlas またはクラスタ内サポート済み(DocumentDB は近日対応予定)

AWS 環境全体(VPC、EKS、RDS、MSK、ElastiCache、KMS、IAM)を infrastructure-as-code で構築するための Terraform 参照構成 が用意されています。

詳細なサイジングとコストは AWS infrastructure requirements を参照してください。
導入手順は AWS environment setup を参照してください。

プライベートクラウド (Azure)

Azure パスでは、Kubernetes に AKS を利用し、SQL とキャッシュにはマネージドサービスを利用します。Kafka と MongoDB はクラスタ内、またはサードパーティのマネージドサービスとして実行します。

Azure が管理するもの: Kubernetes control plane、SQL データベース(SQL Managed Instance)、Redis(Azure Cache)。

引き続きお客様が管理するもの: Azure subscription、ネットワーク/VNet、AKS node pools、Kafka、MongoDB。

サービス構成状態
SQL データベースAzure SQL Managed Instanceサポート済み
RedisAzure Cache for Redisサポート済み
KafkaConfluent Cloud またはクラスタ内Event Hubs の Kafka レイヤーは未サポート(時期未定)
MongoDBMongoDB Atlas またはクラスタ内Cosmos DB は近日対応予定

Kafka と MongoDB は、Azure subscription 経由で課金される marketplace 提供サービス(Confluent Cloud、MongoDB Atlas)として用意することも、付属の Helm チャートで Kubernetes クラスタ内にデプロイすることもできます。

詳細なサイジングは Azure infrastructure requirements を参照してください。
導入手順は Azure environment setup を参照してください。

SQL データベースの選択肢

デプロイパスにかかわらず、SQL レイヤーの構成方法は 2 つあります。

Option A - 単一 MSSQL インスタンス: 運用、identity、reporting のすべてを 1 つの SQL Server で構成します。最もシンプルな構成です。

Option B - MariaDB/MySQL + PostgreSQL: 運用・identity に MariaDB または MySQL を使い、reporting に PostgreSQL を使います。この分離がある理由は次のとおりです。

  • 運用系サービスは MariaDB、MySQL、MSSQL をサポートしている
  • reporting engine(Spark ETL)は MSSQL または PostgreSQL のみをサポートしている

既存のデータベース運用経験やライセンス条件に応じて選択してください。