重要
このページの日本語コンテンツは古くなっている可能性があります。最新の英語版コンテンツをご覧になるには、こちらをクリックしてください。
AWS PrivateLink¶
AWS PrivateLink は VPC から Confluent Cloud への一方向のセキュアな接続を実現し、データ漏えいに対する保護機能も備えています。セキュリティと簡易性を独自の形で兼ね備えた、人気の高いネットワークオプションです。
次の図に、ユーザーの VPC/アカウントと Confluent Cloud の VPC/アカウントを使用した AWS PrivateLink アーキテクチャの概要を示します。
前提条件¶
- AWS に PRIVATELINK タイプの Confluent Cloud ネットワーク (CCN)があること。ネットワークが存在しない場合、以下の「AWS での PRIVATELINK タイプのネットワークの作成」の手順に従ってください。
- Confluent Cloud で AWS PrivateLink を使用するには、DNS 解決、Confluent Cloud Schema Registry、Confluent CLI のために VPC でアウトバウンドインターネット接続を許可する必要があります。
- 権威サーバーへの DNS リクエストをプライベートホストゾーンに転送する必要があります。
- Confluent Cloud Schema Registry にはインターネット経由でアクセスできます。
- 新しい ksqlDB クラスターをプロビジョニングするにはインターネットアクセスが必要です。稼働を開始した ksqlDB クラスターには、AWS PrivateLink の接続を介して完全にアクセスできます。
- Confluent Cloud コントロールプレーンで認証を受けるには、Confluent CLI がインターネットにアクセスできる必要があります。
- Confluent Cloud Console components, like topic management, require additional configuration to function as they use cluster endpoints. To use all features of the Confluent Cloud Console with AWS PrivateLink, see Access Confluent Cloud Console with Private Networking.
警告
AWS PrivateLink 機能の制限については、以下の「制限」を参照してください。
AWS での PRIVATELINK タイプのネットワークの作成¶
AWS PrivateLink で専用クラスターを作成するには、まず必要なクラウドおよびリージョンで Confluent Cloud ネットワークを作成する必要があります。
- Confluent Cloud Console で、環境の Network management ページに移動します。
- これが環境内の最初のネットワークである場合は Create your first network を、環境に既存のネットワークがある場合は + Add Network をクリックします。
- Cloud Provider として AWS を選択し、必要に応じて地理的な場所を選択します。
- 接続タイプ PrivateLink を選択し、Continue をクリックします。
- Network Name を指定し、構成を確認して、Create Network をクリックします。
REST API リクエストの例を以下に示します。
HTTP POST リクエスト
POST https://api.confluent.cloud/networking/v1/networks
認証
「認証」を参照してください。
リクエストの詳細の指定
クラウド、リージョン、環境、接続のタイプの値と、任意で Confluent Cloud ネットワークの表示名、CIDR、ゾーンをリクエストの詳細として指定します。以下の属性を実際の値でアップデートしてください。
{
"spec": {
"display_name": "AWS-PL-CCN-1",
"cloud": "AWS",
"region": "us-west-1",
"connection_types": [
"PRIVATELINK"
],
"zones": [
"usw2-az1",
"usw2-az2",
"usw2-az3"
],
"environment":{
"id":"env-000000"
}
}
}
ほとんどの場合、Confluent Cloud ネットワークの作成にかかる時間は 15~20 分です。応答の Confluent Cloud ネットワーク ID をメモして、以降のコマンドで指定します。
Confluent Cloud ネットワークのプロビジョニングに成功したら、以下のいずれかの手順に従って Confluent Cloud ネットワークに専用クラスターを追加できます。
- Confluent Cloud Console: Confluent Cloud でのクラスターの作成
- クラスター管理 API: クラスターの作成
Confluent Cloud に AWS のアカウントを登録する¶
Confluent Cloud のクラスターへの AWS PrivateLink 接続を作成するには、使用する AWS アカウントの ID を登録する必要があります。これは、クラスターへの AWS PrivateLink 接続を、正当な組織のみが開始できるようにするためのセキュリティ対策です。登録された AWS アカウントに含まれていない VPC からの AWS PrivateLink 接続は、Confluent Cloud から承認されません。
複数の AWS アカウントを同一の Confluent Cloud クラスターに登録でき、登録済みの各 AWS アカウントで AWS PrivateLink 接続を複数の VPC から確立できます。
- Confluent Cloud Console の Network Management タブにあるネットワークリソースに移動し、+ PrivateLink をクリックします。
- AWS PrivateLink 接続を開始する VPC が含まれているアカウントを表す 12 桁の AWS アカウント番号 を入力します。
- VPC から Confluent Cloud クラスターへの AWS PrivateLink 接続を作成するために必要な VPC エンドポイントサービス名 をメモします。この URL は後でも入手できます。
- Save をクリックします。
HTTP POST リクエスト
POST https://api.confluent.cloud/networking/v1/private-link-accesses
認証
「認証」を参照してください。
リクエストの詳細の指定
Confluent Cloud ネットワーク ID、アカウント、環境の値と、任意で表示名をリクエストの詳細として指定します。以下の属性を実際の値でアップデートしてください。
{
"spec": {
"display_name": "AWS-PL-CCN-1",
"cloud": {
"kind": "AwsPrivateLinkAccess",
"account": "000000000000"
},
"environment":{
"id":"env-000000"
},
"network": {
"id":"n-00000"
}
Confluent Cloud Console で AWS PrivateLink 接続ステータスが "Pending" から "Active" に変わります。クラスターに接続する前に、VPC でプライベートエンドポイントも構成する必要があります。
Confluent Cloud への AWS PrivateLink 接続を作成する¶
ここで説明する手順に従うと、Confluent Cloud Console または REST API を使用して AWS の Confluent Cloud クラスターに対する AWS PrivateLink 接続を作成できます。
AWS アカウントで AWS PrivateLink の VPC エンドポイントをセットアップする¶
Confluent Cloud Console で接続ステータスが "Active" になったら、Confluent Cloud クラスターへの AWS PrivateLink 接続を行えるように、AWS マネジメントコンソールで VPC にプライベートエンドポイントを構成する必要があります。
注釈
Confluent recommends using a Terraform configuration for setting up Private Link endpoints. This configuration automates the manual steps described below.
- 前提条件
Confluent Cloud Console で Cluster Settings セクションの Confluent Cloud クラスターに関する次の情報と Confluent Cloud Network overview の Confluent Cloud ネットワークに関する次の情報を確認します。
- Kafka ブートストラップ(General タブ)
- アベイラビリティゾーンの ID(Networking タブ)
- VPC サービスエンドポイント名(Networking タブ)
- DNS ドメイン名(Networking タブ)
- ゾーン DNS サブドメイン名(Networking タブ)
サブネットのアベイラビリティを確認します。
Confluent Cloud のクラスターが作成される特定のゾーンと AWS PrivateLink 接続を開始するユーザーの VPC のゾーンを一致させると、最適な形で使用できます。これらのゾーンに、IP アドレスの割り当てに使用するユーザーの VPC のサブネットを設定する必要があります。これら以外のゾーンにサブネットを設定することもできます。この手順では AWS ゾーンの ID を使用する必要があります。Confluent Cloud クラスターの具体的なアベイラビリティゾーンは Confluent Cloud Console で確認できます。
注釈
アベイラビリティゾーンの名前(
us-west-2a
など)には AWS アカウント間で一貫性がないため、アベイラビリティゾーンの ID(usw2-az1 など)が使用される点に注意してください。DNS ホスト名と DNS 解決が有効になっていることを確認します。
- AWS マネジメントコンソールを開いて https://console.aws.amazon.com/vpc/home の VPC ダッシュボード に移動します。
- ナビゲーションメニューの VIRTUAL PRIVATE CLOUD の下にある VPC をクリックします。VPC ページが表示されます。
- VPC を選択し、アクション、DNS ホスト名の編集 の順にクリックします。DNS ホスト名の編集 ページが表示されます。
- DNS ホスト名 が有効になっていることを確認します。
- アクション をクリックしてから DNS 解決の編集 を選択します。DNS 解決の編集 ページが表示されます。
- DNS 解決 が有効になっていることを確認します。
VPC エンドポイントを作成します。
AWS マネジメントコンソールを開いて https://console.aws.amazon.com/vpc/home の VPC ダッシュボード に移動します。
ナビゲーションメニューの VIRTUAL PRIVATE CLOUD の下にある エンドポイント をクリックします。エンドポイント ページが表示されます。
エンドポイントの作成 をクリックします。エンドポイントの作成 ページが表示されます。
サービスカテゴリ で その他のエンドポイントサービス を選択します。
サービス設定 の サービス名 に Confluent Cloud の VPC のサービスエンドポイントの名前を入力します。これは Confluent Cloud Console で確認できます。
サービスの検証 をクリックします。エラーが表示された場合は、アカウントに PrivateLink 接続の作成が許可されていることを確認します。
VPC で、エンドポイントを作成する VPC を選択します。
エンドポイントの作成 をクリックします。
VPC エンドポイントが作成され、表示されます。後で使用できるように VPC エンドポイントの ID をコピーします。
Confluent Cloud Console の Networking タブにある Confluent Cloud クラスターのアベイラビリティゾーンを確認します。それらのゾーン内のサービスを選択します。各ゾーンに、必要なサブネットが選択されていることを確認します。Confluent Cloud Console に表示されているすべてのゾーンを追加しないと、除外されたゾーンでブローカーへの接続に問題が発生し、クラスターが使用不可になる可能性があります。
注釈
Confluent Cloud のシングルアベイラビリティゾーンにあるクラスターは、1 つのゾーンでサービスとサブネットを選択する必要があります。一方、Confluent Cloud のマルチアベイラビリティゾーンにあるクラスターは、3 つのゾーンでサービスとサブネットを選択する必要があります。
VPC エンドポイントのセキュリティグループを選択または作成します。
- 対象の送信元(VPC の CIDR)のポート
80
、443
、9092
のそれぞれについて、3 つのインバウンドルールを追加します。これらの 3 つのルールのすべてについて、Protocol はTCP
にする必要があります。 - ポート
80
は必須ではありませんが、必要に応じてhttps/443
へのリダイレクト専用として使用できます。
- 対象の送信元(VPC の CIDR)のポート
Confluent Cloud から承認されるまで待ちます。即座に承認されます(1 分未満)。承認されると、エンドポイントが "Pending" から "Active" に変わります。
AWS VPC エンドポイントを使用するように DNS レコードをセットアップする¶
サポートされているパターンで、接続が AWS PrivateLink を介して確立されるためには、DNS を変更する必要があります。任意の DNS プロバイダーを使用できます。AWS Route53(この例で使用しているもの)にする必要はありません。以下のように DNS をルーティングできる任意の DNS プロバイダーを使用可能です。
注釈
DNS ヘルパースクリプト を実行すると、VPC エンドポイントの DNS ゾーンレコードがわかります。
AWS 管理コンソールで AWS Route53 を使用して DNS をアップデートします。
プライベートホストゾーン を作成します。
- Create Hosted Zone をクリックします。
- Confluent Cloud DNS を Domain Name に貼り付けます。これは Confluent Cloud Console で確認できます。
- Type を Private Hosted Zone for Amazon VPC に変更します。
- VPC エンドポイントを追加した VPC ID を選択します。
- Create をクリックします。
以下のようにして、Confluent Cloud のシングルアベイラビリティゾーンにあるクラスターに DNS レコードをセットアップします。
前述のセットアップの VPC エンドポイント DNS 名マップを使用し、Create Record ボタンをクリックして次のレコードを以下の形式で作成します。
*.$domain CNAME “The lone zonal VPC Endpoint” TTL 60
その例を次に示します。
*.l92v4.us-west-2.aws.confluent.cloud CNAME vpce-09f9f4e9a86682eed-9gxp2f7v-us-west-2c.vpce-svc-04689782e9d70ee9e.us-west-2.vpce.amazonaws.com TTL 60
以下のようにして、Confluent Cloud のマルチアベイラビリティゾーンにあるクラスターに DNS レコードをセットアップします。
- 前述のセットアップの VPC エンドポイント DNS 名マップを使用し、レコードを作成 ボタン
をクリックして次のレコードを以下の形式で作成します。
*.$domain CNAME “All Zones VPC Endpoint” TTL 60
その例を次に示します。
*.l92v4.us-west-2.aws.confluent.cloud CNAME vpce-09f9f4e9a86682eed-9gxp2f7v.vpce-svc-04689782e9d70ee9e.us-west-2.vpce.amazonaws.com TTL 60
AWS が停止した場合に AWS Route53 の正常性の確認が確実に使用されるように、CNAME を使用します。
1 ゾーンにつき 1 レコードを以下の形式で作成します(これをすべてのゾーンについて繰り返します)。
*.$zoneid.$domain CNAME “Zonal VPC Endpoint” TTL 60
その例を次に示します。
*.usw2-az3.l92v4.us-west-2.aws.confluent.cloud. CNAME vpce-09f9f4e9a86682eed-9gxp2f7v-us-west-2a.vpce-svc-04689782e9d70ee9e.us-west-2.vpce.amazonaws.com TTL 60 *.usw2-az2.l92v4.us-west-2.aws.confluent.cloud. CNAME vpce-09f9f4e9a86682eed-9gxp2f7v-us-west-2c.vpce-svc-04689782e9d70ee9e.us-west-2.vpce.amazonaws.com TTL 60 *.usw2-az1.l92v4.us-west-2.aws.confluent.cloud. CNAME vpce-09f9f4e9a86682eed-9gxp2f7v-us-west-2b.vpce-svc-04689782e9d70ee9e.us-west-2.vpce.amazonaws.com TTL 60
Confluent Cloud への接続を確認する¶
VPC(または前の手順で DNS をセットアップした場所)内のインスタンスから以下を実行して、AWS PrivateLink を介した Kafka 接続が正常に機能していることを確認します。
クラスターのブートストラップ URL を環境変数に設定します。
export BOOTSTRAP=$<bootstrap-server-url>
Confluent Cloud Console に表示されるブートストラップ URL にはポート(
9092
)が含まれています。BOOTSTRAP
値にはホスト名全体を含める必要がありますが、ポートは含めません。これは、必要な値でopenssl s_client -connect <host>:<port>
コマンドを実行できるようにするためです。その例を次に示します。
export BOOTSTRAP=lkc-nkodz-0l6je.us-west-2.aws.confluent.cloud
クラスターへの接続をテストするには、
openssl s_client -connect <host>:<port>
コマンドを実行します。その際、<host>
値には$BOOTSTRAP
環境変数を、<port>
値には9092
を指定します。openssl s_client -connect $BOOTSTRAP:9092 -servername $BOOTSTRAP -verify_hostname $BOOTSTRAP </dev/null 2>/dev/null | grep -E 'Verify return code|BEGIN CERTIFICATE' | xargs
To run the
openssl s_client -connect
command, the-connect
option requires that you specify the host and the port number. For details, see the openssl s_client documentation.返された出力が
-----BEGIN CERTIFICATE----- Verify return code: 0 (ok)
であれば、ブートストラップへの接続を確認できたことになります。注釈
ネットワークセキュリティツールとファイアウォールをアップデートして接続を許可しなければならない場合があります。この手順を実行した後に接続に問題がある場合は、組織で使用されているネットワークセキュリティシステムを確認し、それらのシステムの構成に変更が必要かどうかを確認してください。それでも問題が解決しない場合は、デバッグ接続スクリプト を実行して出力結果を Confluent サポートに送り、PrivateLink のセットアップに関する支援を受けてください。
次に、Confluent Cloud CLI を使用して接続を確認します。
Confluent Cloud 認証情報を使用して Confluent CLI にサインインします。
confluent login
組織のクラスターをリスト表示します。
confluent kafka cluster list
テストする AWS PrivateLink が存在するクラスターを選択します。
confluent kafka cluster use ...
その例を次に示します。
confluent kafka cluster use lkc-a1b2c
クラスターでの認証に使用するクラスター API キーを作成します。
confluent api-key create --resource ... --description ...
その例を次に示します。
confluent api-key create --resource lkc-a1b2c --description "connectivity test"
前の手順で作成した API キーを選択します。
confluent api-key use ... --resource ...
その例を次に示します。
confluent api-key use WQDMCIQWLJDGYR5Q --resource lkc-a1b2c
テストトピックを作成します。
confluent kafka topic create test
テストトピックからのイベントの消費を開始します。
confluent kafka topic consume test
ターミナルのタブまたはウィンドウをもう 1 つ開きます。
プロデューサーを起動します。
confluent kafka topic produce test
プロデューサーのタブに任意の入力を行い、
Enter
キーを押します。プロデューサーを停止するには、Ctrl+D
キーまたはCtrl+C
キーを押します。消費を実行しているタブに、生成を実行しているタブで入力した内容が出力されます。
これで終了です。クラスターは、使用できる状態です。
制限¶
- アフリカ(ケープタウン)リージョンのアベイラビリティゾーン
af-south-1
は、Confluent Cloud の AWS PrivateLink クラスターではサポートされていません。代わりに、このリージョンではクラスターに VPC ピアリング を使用することができます。ピアリングを使用しない場合は、別のリージョンのクラスターで AWS PrivateLink を使用してください。 - Confluent Cloud の AWS PrivateLink クラスターにおける、AWS の
us-east-1
リージョンのアベイラビリティゾーンのサポート状況は以下のとおりです。- Supported availability zones:
use1-az1
,use1-az2
,use1-az4
,use1-az5
, anduse1-az6
- Unsupported availability zones:
use1-az3
- Supported availability zones:
- リージョン間の AWS PrivateLink 接続はサポートされていません。
- AWS PrivateLink は専用クラスターでのみ使用できます。
- 既存の Confluent Cloud クラスターを、AWS PrivateLink を使用するように変換することはできません。
- フルマネージド型 Confluent Cloud コネクターは、パブリック IP を使用してソースまたはシンクに接続できます。プライベート IP を使用したユーザーのネットワークのソースまたはシンクはサポートされていません。
- Confluent Cloud クラスターと AWS PrivateLink サービスの配置のためのアベイラビリティゾーンの選択は、サポートされていません。
- Confluent Cloud のマルチアベイラビリティゾーンにある AWS PrivateLink を使用する各クラスターは、3 つのアベイラビリティゾーンのサービスエンドポイントにプロビジョニングされます。アベイラビリティゾーンが 3 つ以上ある AWS リージョンでは、Confluent Cloud 配置ポリシーに基づいてアベイラビリティゾーンが選択されます。AWS PrivateLink を介して、Confluent Cloud のマルチアベイラビリティゾーンにあるクラスターへの接続を確保するには、以下のいずれかの方法を使用できます。
- リージョンのすべてのアベイラビリティゾーンに VPC のサブネットをプロビジョニングする
- PrivateLink サービスエンドポイントがプロビジョニングされる 3 つ以上のアベイラビリティゾーンに VPC のサブネットをプロビジョニングする。この情報は、Confluent Cloud クラスターがプロビジョニングされた後に Confluent Cloud Console の Cluster Settings ページの Networking タブに表示されます。
- 現在 3 つ以上のアベイラビリティゾーンがあるリージョン:
us-east-1
(北バージニア)とus-west-2
(オレゴン)
- Confluent Cloud のシングルアベイラビリティゾーンにある AWS PrivateLink を使用する各クラスターは、1 つのアベイラビリティゾーンのサービスエンドポイントにプロビジョニングされます。Confluent Cloud 配置ポリシーに基づいてアベイラビリティゾーンが選択されます。AWS PrivateLink を介して、Confluent Cloud のシングルアベイラビリティゾーンにあるクラスターへの接続を確保するには、以下のいずれかの方法を使用できます。
- リージョンのすべてのアベイラビリティゾーンに VPC のサブネットをプロビジョニングする
- PrivateLink サービスエンドポイントがプロビジョニングされるシングルアベイラビリティゾーンに VPC のサブネットをプロビジョニングする。この情報は、Confluent Cloud クラスターがプロビジョニングされた後に Confluent Cloud Console の Cluster Settings ページの Networking タブに表示されます。
- Confluent Cloud のマルチアベイラビリティゾーンにある AWS PrivateLink を使用する各クラスターは、3 つのアベイラビリティゾーンのサービスエンドポイントにプロビジョニングされます。アベイラビリティゾーンが 3 つ以上ある AWS リージョンでは、Confluent Cloud 配置ポリシーに基づいてアベイラビリティゾーンが選択されます。AWS PrivateLink を介して、Confluent Cloud のマルチアベイラビリティゾーンにあるクラスターへの接続を確保するには、以下のいずれかの方法を使用できます。
- 「前提条件」も参照してください。