Amazon Web Services ブログ

Hosted Control Plane (HCP) を備えた Red Hat OpenShift Service on AWS (ROSA) を解説

この記事は Diving into Red Hat OpenShift Service on AWS (ROSA) with Hosted Control Planes (HCP) (記事公開日: 2024 年 1 月 22 日) を翻訳したものです。

はじめに

2015年に AWS で初めてリリースされて以来、Red Hat OpenShift は似たようなアーキテクチャを持ってきました。OpenShift 3 、 OpenShift 4 、自己管理の OpenShift Container Platform (OCP) か、マネージドサービスの ROSA かを問わず、お客様はこれまで自身の AWS アカウント内に存在するコントロールプレーンについて、関連するコストを相殺して投資対効果 (ROI) を最大化する方法を検討してきました。これに応えるべく Red Hat は OpenShift 向けに Hosted Control Plane (HCP) をリリースしました。

この記事では、OpenShift における Hosted Control Plane の利点に詳しく掘り下げます。最近の変更点に注目し、従来のアーキテクチャと比較します。そして、これらの変更がユーザーに与える利点を明らかにします。

翻訳の時点(2024年6月13日)で、アジアパシフィック (東京) とアジアパシフィック (大阪)を含む多くのリージョンで Hosted Control Plane を備えた ROSA をご利用いただけます。

ROSA classic のアーキテクチャ

OpenShift on AWS は、AWS とRed Hat OpenShift の高可用性モデルを組み合わせてきました。OpenShift コントロールプレーンと OpenShift API を提供する 3 つのコントロールプレーンノード、つまり Amazon Elastic Cloud Compute (Amazon EC2) インスタンスと、OpenShift ルーティングレイヤーとその他のクラスター関連機能を提供する 3 つのインフラストラクチャノードと、コンピューティングレイヤーであるワーカーノードがあります。これら全てがお客様のアカウントに存在し、複数のアベイラビリティーゾーン (AZ) に配置されます。ROSA はマネージドサービスであるため、Red Hat Site Reliability Engineering (SRE) チームがお客様のアカウントに存在する OpenShift 環境を AWS PrivateLink 経由でアクセスしてお客様の代わりに管理・メンテナンスします。

従来の OpenShift on AWS アーキテクチャ

従来の OpenShift on AWS アーキテクチャ図

ROSA を検討するお客様から尋ねられることの多い質問に、「他の AWS サービスの場合はコンピューティングノードのみですが、なぜ ROSA の場合はコントロールプレーンが私のアカウントにあるのですか?」「コントロールプレーンのリソースコストを削減するためのインセンティブプログラムとコスト管理オプションのベストプラクティスは何ですか?」「AZ 間のデータ転送コストの原因は何ですか?」があります。

ROSA の Hosted Control Plane (HCP)

Red Hat が発表した OpenShift の hosted control plane により、お客様は多くの利点を得ることができます。

Hosted Control Plane ではコントロールプレーンノードが他の AWS サービスと同じようにお客様のアカウントから Red Hat のサービスチームアカウントへと移動されます。これにより、Amazon EC2Amazon Elastic Block Store (Amazon EBS) といった、お客様のアカウントにおける AWS サービスのコストが削減されます。また、OpenShift の Kubernetes レイヤーにおける etcd データベースがコントロールプレーンノードに存在することから、高可用性のための etcd レプリケーションに関する AZ 間のデータ転送コストもお客様のアカウントから取り除かれます。

Red Hat Site Reliability Engineering (SRE) チームがサービスチームアカウントから OpenShift クラスターを直接管理・メンテナンスします。お客様のアカウントにある AWS PrivateLink エンドポイントは、ワーカーノードがサービスチームアカウントのコントロールプレーンに接続するために用いられます。

3つの OpenShift インフラストラクチャノードもまた、お客様のアカウントから除去され、そのサービスはコントロールプレーンノードかワーカーノードに移行されます。ただし、OpenShift ルーティングレイヤーはワーカーノードに移動されることに留意してください。

このアプローチにより、コントロールプレーンノードとインフラストラクチャノード、および etcd 関連の AZ 間データ転送に関する Amazon EC2 と Amazon EBS の AWS サービスコストが削減されます。Hosted Control Plane には、コントロールプレーンノードとワーカーノードが並列的にプロビジョニングされるため、プロビジョニング時間が短縮される利点もあります。

ROSA Hosted Control Plane の導入によるアーキテクチャの変化を示すGIF

HCP を備えた ROSA クラスターのデプロイ

既存の ROSA クラスターを Hosted Control Plane アーキテクチャへアップグレードまたは変換することはできません。HCP を備えた ROSA を活用するには新しいクラスターを作成する必要があります。

前提条件

デフォルト設定を使い、AWS Identity and Access Management (AWS IAM) リソースを自動作成すれば、HCP を備えた ROSA クラスターのデプロイは容易になります。ROSA CLI の rosa を使ってクラスターのデプロイを開始できます。HCP を備えた ROSA クラスターを rosa で作成する前に、アカウント全体のロールとポリシー、operator ロールを事前に準備しておく必要があります。

HCP を備えた ROSA クラスターを作成するために必要な重要なコンポーネントについて説明します。HCP を備えた ROSA クラスターを作成するには、次の項目が必要です。

  • 設定済の Virtual Private Cloud (VPC)
  • アカウント全体のロール
  • OpenID Connect (OIDC) の設定
  • Operator ロール

Virtual Private Cloud (VPC)

Hosted Control Plane は既存の Virtual Private Cloud (VPC) にデプロイする必要があります。ほとんどのお客様は、既存の VPC を何らかの Infrastructure as Code (IaC) の形式で管理しています。VPC は手動で作成したり、Terraform テンプレートを使って作成したりできます。Terraform はテンプレートを使ってさまざまなリソースを作成するためのツールです。VPC を Terraform テンプレートを使って構築する詳細なドキュメントはこちらです。

アカウント全体の STS ロールとポリシー

セキュリティに関して、ROSA の異なるコンポーネントにアタッチされる AWS IAM ポリシーに変更があります。最小特権の原則に沿って、より限定的な AWS IAM ポリシーの使用が進められています。アカウント全体のロールの作成を再実行する必要があり、各 OpenShift operator ごとにより細かいロールが新たに必要になるといった変更があります。

HCP を備えた ROSA クラスターでは、そのデプロイメント向けに特別に設計された重要な AWS IAM ロールを事前に準備する必要があります。クラスターの operator はこれら operator ロールを使ってクラスター操作を行うための一時的な権限を取得します。

HCP を備えた ROSA クラスターは AWS Security Token Service (AWS STS) による認証のみをサポートします。AWS STS は、ユーザーに対する一時的で権限の限られた認証情報を要求できるサービスです。

AWS PrivateLink

ROSA classic アーキテクチャでは、AWS PrivateLink によって Red Hat SRE チームがお客様に代わってOpenShift クラスターに接続して環境を管理できるようになっていました。HCP アーキテクチャでは Red Hat SRE チームがサービスアカウントからお客様の環境を管理し、AWS PrivateLink はワーカーノードがコントロールプレーンに接続するために使われます。

プロビジョニング

以下に示すコマンドを使ってアカウントロール、operator ロール、OpenID Connect の設定を作成し、クラスターをデプロイします。詳細については、ドキュメントの「デフォルトのオプションを使用した ROSA with HCP クラスターの作成」もしくは「Getting started with ROSA with HCP using the ROSA CLI in auto mode」を参照してください。

アカウント全体のロール: 次のコマンドを使って必要な AWS IAM アカウントロールとポリシーを作成します。

$ rosa create account-roles --force-policy-creation

OpenID Connect の設定: 次のコマンドを使って OIDC の設定と AWS リソースを作成します。

$ rosa create oidc-config --mode=auto --yes

operator ロール: 次のコマンドを使って operator ロールを作成します。

$ rosa create operator-roles --hosted-cp --prefix <prefix-name> --oidc-config-id <oidc-config-id>

クラスターのデプロイ: 次のコマンドのいずれかを使って HCP を備えた ROSA クラスターをデプロイします。

$ rosa create cluster --private --cluster-name=<cluster_name> --sts --mode=auto --hosted-cp --subnet-ids=<private-subnet-id>

$ export REGION=<region_name>
$ export ROSA_VERSION=<rosa_version>
$ rosa create cluster --cluster-name  <cluster_name>
--multi-az
--hosted-cp
--mode=auto
--sts
--region $REGION
--version $ROSA_VERSION
--enable-autoscaling
--min-replicas <minimum_replicas>
--max-replicas <maximum_replicas>
--compute-machine-type <instance_type>
--host-prefix <host_prefix>
--private
--subnet-ids <subnet_id_1>,<subnet_id_2>,<subnet_id_3>
--operator-roles-prefix <prefix-name>
--oidc-config-id <oidc-config-id>

例:

$ export REGION=us-west-2
$ export ROSA_VERSION=4.14.27

$ rosa create cluster --cluster-name my-cluster
--multi-az
--hosted-cp
--mode=auto
--sts
--region $REGION
--version $ROSA_VERSION
--enable-autoscaling
--min-replicas 3
--max-replicas 3
--compute-machine-type m5.2xlarge
--host-prefix 23
--private
--subnet-ids subnet-0aed73cfa77880167,subnet-07b78438a58648748,subnet-051e2679837a4cc42
--operator-roles-prefix rosa-hcp
--oidc-config-id 2bp1mhs3fcbhq1vi40u0mh9vh17f3fm8

クリーンアップ

ROSA クラスターと AWS STS リソースを削除する手順については、ドキュメントの「ROSA with HCP クラスターの削除」もしくは「Delete a cluster and AWS STS resources」を参照してください。

ROSA classic をご利用のお客様のための移行パス

現時点では、ROSA HCP クラスターをプロビジョニングし、その後アプリケーションワークロードを移行する必要があります。ROSA classic から ROSA HCP へのインプレースアップグレードはできません。移行を考えているお客様は、Red Hat Migration Toolkit for Containers の活用を検討してください。これはアップストリームの Konveyor プロジェクトに基づいています。

まとめ

この記事では、OpenShift における Hosted Control Plane の利点について解説しました。変更点に注目し、従来のアーキテクチャと比較しました。Hosted Control Plane (HCP) は OpenShift on AWS のデプロイと管理に新しい時代を切り開きます。この革新的な変更はコスト削減、運用の高可用性とセキュリティ強化、クラスターのプロビジョニングに要する時間の改善をもたらします。お客様のビジネスにおいて、HCP を備えた ROSA クラスターの新しい可能性と利点を検討することをお勧めします。

翻訳の時点(2024年6月13日)で、アジアパシフィック (東京) とアジアパシフィック (大阪)を含む多くのリージョンで HCP を備えた ROSA をご利用いただけます。

追加情報

翻訳はシニアパートナーソリューションアーキテクトの市川が担当しました。原文はこちらです。