Cloudera on Cloud の CCM とは

# この記事について

以下のドキュメントを自分の理解のために翻訳しています。

https://docs.cloudera.com/management-console/cloud/connection-to-private-subnets/topics/mc-ccm-overview.html

最新情報はドキュメントを確認しましょう。

なお、読みやすさのために、原文にない見出しを適宜つけています。

# 翻訳

## 全体概要

Cloudera は プライベートサブネット上にあるデータレイク、データハブのクラスター、Data Services のワークロードクラスタ、オンプレミスのクラシックなクラスタと通信ができます。この通信は Cluster Connectivity Manager （CCM）によって行われます。CCMは AWS, Azure, CDP のデプロイメントで利用可能です。

:::note warn
web インターフェースで新たな AWS, Azure, GCP の環境を登録する際は、CCMはデフォルトで有効になっており、無効化するオプションは web インターフェース上にはありません。CCMは CLI で環境を登録した際も、デフォルトで有効になっています。
:::

CCMによって、 Cloudera のコントロールプレーンはパブリックIPを持たないクラスタとも通信をすることができます。通信はプライベートIPを通じて、内向きのネットワークアクセス許可ルールを必要とせずに行われますが、クラスタは Cloudera のコントロールプレーンへの外向きの通信を許可している必要があります。

CCMはお客様のワークロードクラスタと Cloudera のコントロールプレーン間の通信におけるセキュリティを強化します。

## CCMが必要な理由

Cloudera の環境はワークロードを稼働させるため、パブリック、プライベート、セミプライベートの環境をサポートしています。

パブリックネットワークでは、Cloudera のコントロールプレーンがワークロードクラスタのノードへの通信を開始します。
しかし、プライベートまたはセミプライベート環境では、サブネットやホストがプライベートである特性上、それができません。

そうした場合に、お客様のサブネットのネットワーク設定をシンプルにするためにCCMが必要となります。

## CCMの仕組み

CCMは逆向きのプロキシを使って、セキュアでプライベートなサブネットから Cloudera のコントロールプレーンへの通信を開始します。

CCMが有効になっていると、通信の向きが逆向きになり、プライベートワークロードは Cloudera のネットワークへの内向きのアクセスを必要としなくなります。

設定の際、セキュリティグループの設定はパブリックネットワークの設定ほど致命的にはなりません。

CCMを通じたすべての通信は、TLSで暗号化されています。

## データセキュリティ

データセキュリティの観点では、いかなるデータもメタデータもワークロードのサブネットから出ていくことはありません。

CCMは Cloudera のコントロールプレーンに制御信号、ログ、ハートビートを送ったり、様々なコンポーネントの健康状態について通信するために利用されます。

## エンドユーザーのアクセス

パブリックIPなしで環境をデプロイする場合、ダイレクトコネクトやVPNその他のネットワーク設定により、エンドユーザーがCloudera のエンドポイントに接続する経路が設定されている必要があります。バックグラウンドでは、Cloudera のコントロールプレーンがプライベートネットワークにデプロイされたエンティティと通信できる必要があります。

以下の図はCCMを通じた通信を受け持つ Cloudera のコンポーネントを示しています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/587845/0191e2bb-4d7c-4c07-bbc3-054cdc58e219.png)

## CCMの変遷（過去の経緯）

:::note
訳注：この記事の執筆時点（2025/3/11）以降に新たに利用を開始する場合は、すべてCCMのバージョンはすべてv2となります
:::

CCMは当初はCCMv1としてリリースされ、その後CCMv2がリリースされてv1に代わりました。

CCMv1はSSHプロトコルに基づくトンネルを作り接続を確立していましたが、CCMv2はHTTPSを利用した通信を行います。

### 利用されるCCMのバージョン（Cloudの場合）

Cloudera Runtime 7.2.6以降の環境を作成した場合は、CCMv2が使われます。7.2.6より前のランタイムバージョンでは、引き続きCCMv1が使われます。

### 利用されるCCMのバージョン（オンプレミスの場合）

新たに登録されるクラシック・クラスタはCCMv2を使いますが、以前に登録されたクラシッククラスタは引き続きCCMv1を使います。


## 接続イメージ図

### CCM を使わない場合の通信

以下の図は、CCMを使わない場合のお客様アカウントへの接続イメージです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/587845/87e17b6a-3f04-4e96-933f-cff37944971c.png)

### CCMv2を使った通信

CCMv2エージェントがFreeIPAのノードにデプロイされ、Cloudera のコントロールプレーンに対するHTTPS通信を開始します。

このコネクションが、その後もすべての通信に使われます。

データレイクおよび Cloudera データハブのインスタンスは、FreeIPAのノードにデプロイされたエージェントを通じてCloudera のコントロールプレーンからの通信を受け取ります。

これは以下の図で表されています。

CCMv2はクラシッククラスタもサポートします。

Cloudera Replication Manager を使って、最初にクラシッククラスタ登録を使ってクラスタを登録することで、データ移行やクラウドストレージとの同期を助けながら、オンプレミスのCDH、HDP、Cloudera Base オンプレミスのクラスタをプライベートIP経由でアクセス可能にすることもできます。

CCMv2が有効化されている場合、通信の向きが逆向きなので、環境は Cloudera のネットワークからの内向きのアクセスを必要としなくなります。

この設定では、内向きの通信はプライベートネットワークの中でだけ許可されるので、セキュリティグループの設定は前の図で説明したパブリックIPモードのときほどクリティカルではなくなります。

しかし、ネットワークをまたぐ場合は、アクセスを特定のプライベートUPの範囲だけに制限しておくことが役に立つでしょう。

以下の図はCCMv2を使った、お客様のアカウントへの接続を説明しています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/587845/247f1cef-3853-45d4-a7a2-a5cd3a3ec875.png)

## トークン認証を使ったCCMv2

## CCMv1

(割愛)

## サポート対象サービス

CCMv2がサポートされているサービスは以下のとおりです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/587845/8adf9b05-086d-4d66-af38-41922d20e238.png)

## 関連ドキュメント

:::note
訳注：関連文書も今後随時翻訳予定（時期未定）で、完了後リンクを随時貼っていきます。
:::

### CCMv2の外向き通信の方向

インターネットへのアクセスが制約された環境やプロキシを使った環境でCCMを利用する場合、以下の外向き通信を許可リストに加えていただく必要があります。

https://docs.cloudera.com/management-console/cloud/connection-to-private-subnets/topics/mc-outbound_network_access_destinations_for_ccm.html

### AWSにおけるプライベートVPCの設定

Cloudera 環境を作成する際、二つの選択肢があります。
Cloudera がプライベートネットワークとセキュリティグループを作成するか、ご自身のプライベートIPとセキュリティグループを使ってVPCをセットアップするかです。

いずれの場合も、CCMを有効にする必要があります。

https://docs.cloudera.com/management-console/cloud/connection-to-private-subnets/topics/mc-ccm-configure-vpc-with-private-ips.html

### Azure VNet をプライベートIPで設定する

パブリックIPなしで Cloudera の環境を作成する場合、二つの選択肢があります。Cloudera がプライベートネットワークとセキュリティグループを作成するか、ご自身のプライベートIPとセキュリティグループを使ってVNetをセットアップするかです。

いずれの場合も、CCMを有効にする必要があります。

https://docs.cloudera.com/management-console/cloud/connection-to-private-subnets/topics/mc-ccm-configure-vnet-with-private-ips.html

### GCP の VPC をプライベートIPで設定する

GCP環境をCloudera に登録する前に、プライベートIPでVPCネットワークを作成し、ファイアウォールルールを作成する必要があります。

https://docs.cloudera.com/management-console/cloud/connection-to-private-subnets/topics/mc-ccm-configure-vnet-with-private-ips.html

### Cloudera Manager のコンソールでCCMを有効化する

AWS, Azure, GCP の環境を web インターフェース経由で Cloudera に登録すると、CCMはデフォルトで有効かされており、無効化するオプションは web インターフェース上にはありません。CLIで環境を登録した場合も、CCMはデフォルトで有効化されています。

https://docs.cloudera.com/management-console/cloud/connection-to-private-subnets/topics/mc-enabling-ccm-for-data-hub.html

### CCMv1のトラブルシューティング

（割愛）

### CCMv2のトラブルシューティング

以下のページは、CCMv2 の接続ワークロードに関するよくある問題とトラブルシューティングの一覧です。

https://docs.cloudera.com/management-console/cloud/connection-to-private-subnets/topics/mc-troubleshooting_ccmv2.html

### Cloudera Data Warehouse とプライベートネットワーク

Cloudera Data Warehouse のサービスは、プライベートサブネットを使ったプライベートなデプロイをAWSに関してサポートしています。

https://docs.cloudera.com/management-console/cloud/connection-to-private-subnets/topics/mc-dwx-overview.html